Bu ders şunları kapsayacaktır:
- İki ana Meta aile modelini keşfetmek - Llama 3.1 ve Llama 3.2
- Her model için kullanım durumları ve senaryolarını anlamak
- Her modelin benzersiz özelliklerini göstermek için kod örneği
Bu derste, Meta ailesinden veya "Llama Sürüsü"nden 2 modeli keşfedeceğiz - Llama 3.1 ve Llama 3.2.
Bu modeller farklı varyantlarda gelir ve GitHub Model pazar yerinde mevcuttur. AI modelleriyle prototip oluşturmak için GitHub Modellerini kullanma hakkında daha fazla bilgi burada.
Model Varyantları:
- Llama 3.1 - 70B Instruct
- Llama 3.1 - 405B Instruct
- Llama 3.2 - 11B Vision Instruct
- Llama 3.2 - 90B Vision Instruct
Not: Llama 3 de GitHub Modellerinde mevcuttur ancak bu ders kapsamında ele alınmayacaktır
405 Milyar Parametre ile Llama 3.1, açık kaynak LLM kategorisine girer.
Model, daha önceki Llama 3 sürümüne göre şunları sunan bir yükseltmedir:
- Daha büyük bağlam penceresi - 8k token vs 128k token
- Daha büyük Maksimum Çıktı Tokeni - 2048 vs 4096
- Daha iyi Çok Dilli Destek - eğitim token sayısındaki artış sayesinde
Bunlar, Llama 3.1’in GenAI uygulamaları geliştirilirken daha karmaşık kullanım durumlarını ele almasını sağlar, bunlar arasında:
- Yerel Fonksiyon Çağrısı - LLM iş akışı dışındaki harici araçları ve fonksiyonları çağırabilme yeteneği
- Daha İyi RAG Performansı - daha yüksek bağlam penceresi nedeniyle
- Sentetik Veri Üretimi - ince ayar gibi görevler için etkili veri oluşturabilme yeteneği
Llama 3.1, fonksiyon veya araç çağrılarında daha etkili olacak şekilde ince ayar yapılmıştır. Ayrıca modelin, kullanıcının istemine bağlı olarak kullanılmaları gerektiğini belirleyebildiği iki yerleşik aracı vardır. Bu araçlar şunlardır:
- Brave Search - Web araması yaparak hava durumu gibi güncel bilgileri almak için kullanılabilir
- Wolfram Alpha - Daha karmaşık matematiksel hesaplamalar için kullanılabilir, böylece kendi fonksiyonlarınızı yazmanız gerekmez.
Kendi özel araçlarınızı da oluşturabilir ve LLM’nin çağırmasını sağlayabilirsiniz.
Aşağıdaki kod örneğinde:
- Sistemde kullanılabilir araçları (brave_search, wolfram_alpha) tanımlıyoruz.
- Belirli bir şehirde hava durumu hakkında kullanıcı istemi gönderiyoruz.
- LLM, Brave Search aracına şu şekilde bir çağrı yaparak cevap verecektir
<|python_tag|>brave_search.call(query="Stockholm weather")
Not: Bu örnek yalnızca araç çağrısı yapar; sonuçları almak isterseniz, Brave API sayfasında ücretsiz bir hesap oluşturmanız ve fonksiyonu tanımlamanız gerekecektir.
import os
from azure.ai.inference import ChatCompletionsClient
from azure.ai.inference.models import AssistantMessage, SystemMessage, UserMessage
from azure.core.credentials import AzureKeyCredential
token = os.environ["GITHUB_TOKEN"]
endpoint = "https://models.inference.ai.azure.com"
model_name = "meta-llama-3.1-405b-instruct"
client = ChatCompletionsClient(
endpoint=endpoint,
credential=AzureKeyCredential(token),
)
tool_prompt=f"""
<|begin_of_text|><|start_header_id|>system<|end_header_id|>
Environment: ipython
Tools: brave_search, wolfram_alpha
Cutting Knowledge Date: December 2023
Today Date: 23 July 2024
You are a helpful assistant<|eot_id|>
"""
messages = [
SystemMessage(content=tool_prompt),
UserMessage(content="What is the weather in Stockholm?"),
]
response = client.complete(messages=messages, model=model_name)
print(response.choices[0].message.content)Bir LLM olmasına rağmen, Llama 3.1’in bir sınırlaması çok modlu olmamasıdır. Yani, görüntüler gibi farklı türde girdileri istem olarak kullanamama ve yanıt verememe durumu. Bu yetenek Llama 3.2’nin temel özelliklerinden biridir. Ayrıca bu özellikler şunları içerir:
- Çok modluluk - hem metin hem de görüntü istemlerini değerlendirebilme
- Küçük ve Orta boy varyantlar (11B ve 90B) - esnek dağıtım seçenekleri sağlıyor
- Sadece metin varyantları (1B ve 3B) - modelin uç / mobil cihazlarda dağıtılmasına ve düşük gecikme sağlamasına olanak tanır
Çok modlu destek, açık kaynak modeller dünyasında büyük bir adımdır. Aşağıdaki kod örneği, hem bir görüntü hem de metin istemi alarak Llama 3.2 90B’den görüntü analizi alır.
import os
from azure.ai.inference import ChatCompletionsClient
from azure.ai.inference.models import (
SystemMessage,
UserMessage,
TextContentItem,
ImageContentItem,
ImageUrl,
ImageDetailLevel,
)
from azure.core.credentials import AzureKeyCredential
token = os.environ["GITHUB_TOKEN"]
endpoint = "https://models.inference.ai.azure.com"
model_name = "Llama-3.2-90B-Vision-Instruct"
client = ChatCompletionsClient(
endpoint=endpoint,
credential=AzureKeyCredential(token),
)
response = client.complete(
messages=[
SystemMessage(
content="You are a helpful assistant that describes images in details."
),
UserMessage(
content=[
TextContentItem(text="What's in this image?"),
ImageContentItem(
image_url=ImageUrl.load(
image_file="sample.jpg",
image_format="jpg",
detail=ImageDetailLevel.LOW)
),
],
),
],
model=model_name,
)
print(response.choices[0].message.content)Bu dersi tamamladıktan sonra, Generative AI bilgi seviyenizi artırmak için Generative AI Öğrenme koleksiyonumuzu inceleyin!
Feragatname:
Bu belge, AI çeviri servisi Co-op Translator kullanılarak çevrilmiştir. Doğruluk için çaba göstersek de, otomatik çevirilerin hatalar veya yanlışlıklar içerebileceğini lütfen unutmayınız. Orijinal belge, kendi ana dilinde yetkili kaynak olarak kabul edilmelidir. Kritik bilgiler için profesyonel insan çevirisi tavsiye edilir. Bu çevirinin kullanımı sonucunda ortaya çıkabilecek herhangi bir yanlış anlama veya yorumlama nedeniyle sorumluluk kabul edilmemektedir.