Xlera8

Flask ile Llama3'e Nasıl Erişilir?

Giriş

Yapay zeka dünyası, Llama3'ün piyasaya sürülmesiyle çok daha heyecanlı hale geldi! Meta tarafından yaratılan bu güçlü açık kaynak dil modeli, işleri sarsıyor. 3B ve 8B'nin önceden eğitilmiş ve talimatlara göre ayarlanmış çeşitleri bulunan Llama70, geniş bir uygulama yelpazesi sunar. Bu kılavuzda Llama3'ün yeteneklerini ve Llama3'e nasıl erişileceğini keşfedeceğiz. Cep şişesiÜretken Yapay Zekada devrim yaratma potansiyeline odaklanıyor.

Öğrenme hedefleri

  • Llama3'ün arkasındaki mimariyi ve eğitim metodolojilerini keşfederek yenilikçi ön eğitim verilerini ortaya çıkarın ve ince ayar olağanüstü performansını anlamak için gerekli teknikler.
  • Flask aracılığıyla Llama3'ün uygulamalı uygulamasını deneyimleyin, transformatörleri kullanarak metin oluşturma sanatında uzmanlaşın ve güvenlik testi ve ayarlamanın kritik yönleri hakkında bilgi edinin.
  • Llama3'ün gelişmiş doğruluğu, uyarlanabilirliği ve güçlü ölçeklenebilirliği dahil olmak üzere etkileyici yeteneklerini analiz ederken aynı zamanda sorumlu kullanım ve geliştirme için hayati önem taşıyan sınırlamalarını ve potansiyel risklerini de tanıyın.
  • Gerçek dünyadan örneklerle etkileşime geçin ve Llama3'ün kullanım örneklerini kullanarak, LlamaXNUMX'ün gücünden çeşitli uygulamalarda ve senaryolarda etkili bir şekilde yararlanmanıza olanak tanıyın ve böylece Üretken Yapay Zeka alanında tüm potansiyelini ortaya çıkarın.

Bu makale, Veri Bilimi Blogatonu.

İçindekiler

Llama3 Mimarisi ve Eğitimi

Llama3 optimize edilmiş bir transformatör mimarisinden yararlanan otomatik gerileyen bir dil modelidir. Evet, normal transformatör ama geliştirilmiş bir yaklaşımla. Ayarlanmış versiyonlar, insanların yardımseverlik ve güvenlik tercihlerine uyum sağlamak için denetimli ince ayar (SFT) ve insan geri bildirimiyle takviyeli öğrenmeyi (RLHF) kullanır. Model, sırasıyla 15B modeli için Mart 2023 ve 8B modeli için Aralık 2023 olmak üzere, kamuya açık kaynaklardan alınan 70 trilyon tokenin üzerinde veriden oluşan kapsamlı bir külliyat üzerinde önceden eğitildi. İnce ayar verileri, kamuya açık talimat veri kümelerinin yanı sıra 10 milyondan fazla insan açıklamalı örneği içerir.

Şişeli Llama3

Llama3 Etkileyici Yetenekler

Daha önce belirttiğimiz gibi, Llama3 optimize edilmiş bir transformatör tasarımına sahiptir ve hem önceden eğitilmiş hem de talimat ayarlı versiyonlarda 8B ve 70B parametreleri olmak üzere iki boyutta gelir. Modelin tokenizer’ı 128K token sözlüğüne sahiptir. Modelleri eğitmek için 8,192 jeton dizisi kullanıldı. Llama3'ün aşağıdaki konularda dikkate değer derecede yetenekli olduğu kanıtlanmıştır:

  • Gelişmiş doğruluk: Llama3, çeşitli doğal dil işleme görevlerinde gelişmiş performans göstermiştir.
  • Adaptasyon: Modelin farklı bağlamlara ve görevlere uyum sağlama yeteneği, onu geniş bir uygulama yelpazesi için ideal bir seçim haline getiriyor.
  • Sağlam ölçeklenebilirlik: Llama3'ün ölçeklenebilirliği, büyük hacimli verileri ve karmaşık görevleri kolaylıkla yönetmesine olanak tanır.
  • Kodlama Yetenekleri: Llama3'ün kodlama yeteneğinin, saniyede 250'den fazla token gibi inanılmaz bir rakamla dikkat çekici olduğu kabul ediliyor. Altın GPU'lar yerine LPU'ların verimliliği benzersizdir ve bu da onları büyük dil modellerini çalıştırmak için üstün bir seçim haline getirir.

Llama3'ün en önemli avantajı açık kaynak ve ücretsiz yapısıdır; bu da geliştiricilerin bütçeyi zorlamadan erişilebilir olmasını sağlar.

şişeli lama3

Llama3 Çeşitleri ve Özellikleri

Daha önce de belirtildiği gibi Llama3, her biri 8B ve 70B olmak üzere iki boyutta farklı kullanım durumlarına hitap eden iki ana model sunar:

  • Önceden eğitilmiş modeller: Doğal dil oluşturma görevleri için uygundur. Performans açısından biraz daha genel.
  • Talimat ayarlı modeller: Diyalog kullanım durumları için optimize edilmiştir ve sektör karşılaştırmalarında birçok açık kaynaklı sohbet modelinden daha iyi performans göstermektedir.

Llama3 Eğitim Verileri ve Karşılaştırmalar

Llama3, 15B modeli için Mart 2023 ve 8B modeli için Aralık 2023 olmak üzere 70 trilyondan fazla halka açık veriden oluşan kapsamlı bir külliyat üzerinde önceden eğitildi. İnce ayar verileri, kamuya açık talimat veri kümelerini ve 10 milyondan fazla insan açıklamalı örneği içerir (Bunu doğru duydunuz!). Model, MMLU, AGIEval English, CommonSenseQA ve daha fazlasını içeren standart otomatik kıyaslamalarda etkileyici sonuçlar elde etti.

llama3

Llama3 Kullanım Durumları ve Örnekler

Lama diğerleri gibi kullanılabilir Lama ailesi kullanımı da çok kolay hale getiren modeller. Temel olarak trafoyu takıp hızlandırmamız gerekiyor. Bu bölümde bir sarmalayıcı komut dosyası göreceğiz. Kod parçacıklarının tamamını ve GPU ile çalıştırılacak dizüstü bilgisayarı bulabilirsiniz. . Modelin davranışını test etmek için not defterini, şişe uygulamasını ve etkileşimli mod komut dosyasını ekledim. Llama3'ü ardışık düzen ile kullanmanın bir örneği:

Flask ile Llama3'e Nasıl Erişilir?

Şimdi Flask ile Llama3'e erişme adımlarını inceleyelim.

1. Adım: Python Ortamını Ayarlayın

Sanal bir ortam oluşturun (isteğe bağlı ancak önerilir):

$ python -m venv env
$ source env/bin/activate   # On Windows use `.envScriptsactivate`

Gerekli paketleri kurun:

Transformatör kuruyoruz ve hızlandırıyoruz ancak Llama3 yeni olduğu için direkt Git Hub'dan kurulum yaparak devam ediyoruz.

(env) $ pip install -q git+https://github.com/huggingface/transformers.git
(env) $ pip install -q flask transformers torch accelerate # datasets peft bitsandbytes

Adım2: Ana Başvuru Dosyasını Hazırlayın

Main.py adında yeni bir Python dosyası oluşturun. İçerisine aşağıdaki kodu yapıştırın.

from flask import Flask, request, jsonify
import transformers
import torch

app = Flask(__name__)

# Initialize the model and pipeline outside of the function to avoid unnecessary reloading
model_id = "meta-llama/Meta-Llama-3-8B-Instruct"
pipeline = transformers.pipeline(
    "text-generation",
    model=model_id,
    model_kwargs={"torch_dtype": torch.bfloat16},
    device_map="auto",
)


@app.route('/generate', methods=['POST'])
def generate():
    data = request.get_json()
    user_message = data.get('message')

    if not user_message:
        return jsonify({'error': 'No message provided.'}), 400

    # Create system message
    messages = [{"role": "system", "content": "You are a pirate chatbot who always responds in pirate speak!"}]

    # Add user message
    messages.append({"role": "user", "content": user_message})

    prompt = pipeline.tokenizer.apply_chat_template(
        messages,
        tokenize=False,
        add_generation_prompt=True
    )

    terminators = [
        pipeline.tokenizer.eos_token_id,
        pipeline.tokenizer.convert_tokens_to_ids("<|eot_id|>")
    ]

    outputs = pipeline(
        prompt,
        max_new_tokens=256,
        eos_token_id=terminators,
        do_sample=True,
        temperature=0.6,
        top_p=0.9,
    )

    generated_text = outputs[0]['generated_text'][len(prompt):].strip()
    response = {
        'message': generated_text
    }

    return jsonify(response), 200


if __name__ == '__main__':
    app.run(debug=True)

Yukarıdaki kod bir Flask web sunucusunu tek bir rotayla başlatır, /oluşturKullanıcı mesajlarının alınmasından, işlenmesinden ve yapay zeka tarafından oluşturulan yanıtların döndürülmesinden sorumludur.

Adım 3: Flask Uygulamasını Çalıştırın

Aşağıdaki komutu yürüterek Flask uygulamasını çalıştırın:

(env) $ export FLASK_APP=main.py
(env) $ flask run --port=5000

Şimdi Flask uygulamasının şu adreste çalışıyor olması gerekir: http://localhost:5000. API'yi Postman veya CURL gibi araçlarla test edebilir, hatta basit bir HTML ön uç sayfası yazabilirsiniz.

Transformers AutoModelForCausalLM Kullanarak Etkileşimli Mod

Modeli Jupyter Notebook'ta etkileşimli olarak sorgulamak için bunu bir hücreye yapıştırın ve çalıştırın:

import requests
import sys
sys.path.insert(0,'..')
import torch

from transformers import AutoTokenizer, AutoModelForCausalLM

MODEL_NAME ='meta-llama/Meta-Llama-3-8B-Instruct'

class InteractivePirateChatbot:
    def __init__(self):
        self._tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME, padding_side='left')
        self._tokenizer.pad_token = self._tokenizer.eos_token
        self._model = AutoModelForCausalLM.from_pretrained(MODEL_NAME, torch_dtype=torch.bfloat16, device_map="auto", offload_buffers=True)
        
    def _prepare_inputs(self, messages):
        try:
            inputs = self._tokenizer([message['content'] for message in messages], padding='longest', truncation=True, max_length=512, return_tensors='pt')
            input_ids = inputs.input_ids.to(self._model.device)
            attention_mask = inputs.attention_mask.to(self._model.device)
            return {'input_ids': input_ids, 'attention_mask': attention_mask}
        except Exception as e:
            print(f"Error preparing inputs: {e}")
            return None

    def ask(self, question):
        try:
            messages = [
                {"role": "system", "content": "You are a pirate chatbot who always responds in pirate speak!"},
                {"role": "user", "content": question}
            ]

            prepared_data = self._prepare_inputs(messages)
            if prepared_data is None:
                print("Error preparing inputs. Skipping...")
                return

            output = self._model.generate(**prepared_data, max_length=512, num_beams=5, early_stopping=True)

            answer = self._tokenizer.decode(output[0], skip_special_tokens=True)
            print("Pirate:", answer)
        except Exception as e:
            print(f"Error generating response: {e}")

generator = InteractivePirateChatbot()
while True:
    question = input("User: ")
    generator.ask(question)

Yukarıdaki kod hızlı bir şekilde etkileşim kurmanıza ve modelin nasıl çalıştığını görmenize olanak sağlayacaktır. Kodun tamamını bulun okuyun.

User: "Who are you?"

Pirate: "Arrrr, me hearty! Me name be Captain Chat, the scurviest pirate chatbot to ever sail the Seven Seas! I be here to swab yer decks with me clever responses and me trusty parrot, Polly, perched on me shoulder. So hoist the colors, me matey, and let's set sail fer a swashbucklin' good time!"

Modelin nasıl çalıştığını gördüğümüze göre, bazı güvenlik ve sorumluluk kılavuzlarına bakalım.

Sorumluluk ve Güvenlik

Meta, sorumlu yapay zeka gelişimini sağlamak için en iyi güvenlik uygulamalarını uygulamak, Meta Llama Guard 2 ve Code Shield korumaları gibi kaynakları sağlamak ve Sorumlu Kullanım Kılavuzunu güncellemek de dahil olmak üzere bir dizi adım attı. Geliştiricilerin, bu koruma önlemlerini kendi ihtiyaçlarına göre ayarlamaları ve dağıtmaları, kendi özel kullanım durumları ve hedef kitleleri için uyum ve yararlılığın faydalarını tartmaları teşvik edilmektedir. Tüm bu bağlantılar Llama3 için Hugginface deposunda mevcuttur.

Etik Hususlar ve Sınırlamalar

Llama3 güçlü bir araç olsa da sınırlamalarını ve potansiyel risklerini kabul etmek önemlidir. Model, kullanıcı istemlerine yanlış, önyargılı veya itiraz edilebilir yanıtlar üretebilir. Bu nedenle geliştiricilerin, modelin kendi özel uygulamalarına göre uyarlanmış güvenlik testleri ve ayarlamaları yapması gerekir. Meta, Mor Llama çözümlerinin iş akışlarına dahil edilmesini, özellikle de giriş ve çıkış istemlerini filtrelemek için temel bir model sağlayan ve model düzeyinde güvenliğin üzerine sistem düzeyinde güvenliği katmanlayan Llama Guard'ı önerir.

Sonuç

Meta, Meta tarafından hazırlanmış güçlü bir açık kaynak dil modeli olan Llama3'ün tanıtımıyla yapay zeka manzarasını yeniden şekillendirdi. Hem 8B hem de 70B'nin önceden eğitilmiş ve talimat ayarlı versiyonlarının mevcut olmasıyla Llama3, yenilik için çok sayıda olasılık sunar. Bu kılavuz, Llama3'ün yeteneklerinin ve Flask ile Llama3'e nasıl erişilebileceğinin derinlemesine bir incelemesini sunarak, onun Üretken Yapay Zekayı yeniden tanımlama potansiyelini vurguladı.

Önemli Noktalar

  • Meta, hem 3B hem de 8B'nin önceden eğitilmiş ve talimat ayarlı versiyonlarında mevcut olan güçlü bir açık kaynaklı dil modeli olan Llama70'ü geliştirdi.
  • Llama3, gelişmiş doğruluk, uyarlanabilirlik ve sağlam ölçeklenebilirlik gibi etkileyici yetenekler sergilemiştir.
  • Modelin açık kaynak olması ve tamamen ücretsiz olması, geliştiricilerin ve düşük bütçeli araştırmacıların erişimine açık olmasını sağlıyor.
  • Kullanıcılar, Llama3'ü transformatörlerle birlikte kullanabilir, boru hattı soyutlamasından veya created() işleviyle Otomatik sınıflardan yararlanabilir.
  • Llama3 ve Flask, geliştiricilerin Üretken Yapay Zeka'da yeni ufuklar keşfetmesine olanak tanıyor, sohbet robotları ve içerik üretimi gibi yenilikçi çözümleri teşvik ediyor ve insan-makine etkileşiminin sınırlarını zorluyor.

Sık Sorulan Sorular

S1. Lama3 nedir?

A. Meta, hem 3B hem de 8B'nin önceden eğitilmiş ve talimat ayarlı versiyonlarında bulunan güçlü bir açık kaynak dil modeli olan Llama70'ü geliştirdi.

Q2. Llama3'ün temel özellikleri nelerdir?

A. Llama3, gelişmiş doğruluk, uyarlanabilirlik ve sağlam ölçeklenebilirlik dahil olmak üzere etkileyici yetenekler göstermiştir. Araştırmalar ve testler, her bir çözümün kullanıcının ihtiyaçlarına göre hassas şekilde ayarlanmasını sağlayarak, daha alakalı ve bağlama duyarlı yanıtlar sunduğunu göstermiştir.

S3. Llama3 açık kaynaklı ve ücretsiz mi ve Llama3'ü ticari amaçlarla kullanabilir miyim?

C. Evet, Llama3 açık kaynaklıdır ve tamamen ücretsizdir; bu da geliştiricilerin bütçeyi zorlamadan erişilebilir olmasını sağlar. Llama3 açık kaynaklı olmasına ve ticari amaçlarla kullanılması ücretsiz olmasına rağmen. Ancak geçerli düzenlemelere uygunluğu sağlamak için lisanslama hüküm ve koşullarını incelemenizi öneririz.

S4. Özel kullanım durumum için Llama3'te ince ayar yapabilir miyim?

C.Evet, Llama3'e hiperparametreler ve eğitim verileri ayarlanarak belirli kullanım durumları için ince ayar yapılabilir. Bu, modelin belirli görevler ve veri kümeleri üzerindeki performansını artırmaya yardımcı olabilir.

S5. Llama3, BERT ve RoBERTa gibi diğer dil modelleriyle nasıl karşılaştırılır?

Daha büyük bir veri kümesi üzerinde eğitilmiş daha gelişmiş bir dil modeli olan A. Llama3, çeşitli doğal dil işleme görevlerinde BERT ve RoBERTa'dan daha iyi performans gösterir.

Bu makalede gösterilen medya Analytics Vidhya'ya ait değildir ve Yazarın takdirine bağlı olarak kullanılır.

Bizimle sohbet

Merhaba! Size nasıl yardım edebilirim?