Gönüllü topluluklarca yürütülen açık kaynak projelerin, büyük şirketlerin pahalı tescilli çözümlerine rakip olduğu olağanüstü bir çağda yaşıyoruz. Dikkate değer ilerlemeler arasında, az kaynakla çalışıp ChatGPT’ye denk sonuçlar veren Vicuna, Koala, Alpaca ve StableLM gibi daha küçük ama son derece verimli dil modelleri bulunuyor. Bu modelleri bir araya getiren ortak nokta, Meta AI’nin LLaMA modelleri üzerine inşa edilmiş olmalarıdır.
12 GPT-4 Açık Kaynak Alternatifi yazısını okuyarak dil teknolojilerindeki diğer popüler açık kaynak geliştirmeler hakkında bilgi edinin.
Bu yazıda Meta AI’nin LLaMA modellerini tanıyacak, nasıl çalıştıklarını inceleyecek, transformers kütüphanesi aracılığıyla onlara erişecek, performanslarını karşılaştıracak ve zorluklar ile sınırlamaları tartışacağız. Bu makalenin ilk yazımından bu yana hem LLaMA 2 hem de LLaMA 3 yayınlandı; her biriyle ilgili daha fazla ayrıntıyı ayrı makalelerimizde bulabilirsiniz.
LLaMA nedir?
LLaMA (Large Language Model Meta AI), 7B ile 65B parametre arasında değişen, alanında öncü temel dil modellerinden oluşan bir koleksiyondur. Bu modeller, daha küçük boyutlarına rağmen olağanüstü bir performans sunarak, yeni yöntemleri denemek, başkalarının çalışmalarını doğrulamak ve yenilikçi kullanım senaryolarını keşfetmek için gereken hesaplama gücü ve kaynaklarını önemli ölçüde azaltır.
Temel modeller, büyük ve etiketlenmemiş veri kümeleri üzerinde eğitilmiştir; bu da onları çeşitli görevlerde ince ayar için ideal kılar. Model aşağıdaki kaynaklar üzerinde eğitilmiştir:
- %67,0 CommonCrawl
- %15,0 C4
- %4,5 GitHub
- %4,5 Wikipedia
- %4,5 Books
- %2,5 ArXiv
- %2,0 StackExchange
Veri kümelerinin geniş çeşitliliği, modellere Chinchilla-70B ve PaLM-540B gibi en iyi modellerle boy ölçüşen, son teknoloji performans kazandırmıştır.
OpenAI’nin GPT-1, GPT-2, GPT-3 ve güncel GPT-4 modellerinin evrimini kapsamlı şekilde anlamak için şunu okuyun: GPT-4 Nedir ve Neden Önemlidir?
Meta'nın LLaMA’sı Nasıl Çalışır?
LLaMA, dönüştürücü (transformer) mimarisi üzerine kurulu, kendi kendine gerileyen (auto-regressive) bir dil modelidir. Diğer önde gelen dil modelleri gibi LLaMA da girdi olarak bir kelime dizisi alıp bir sonraki kelimeyi tahmin ederek, yinelemeli biçimde metin üretir.
LLaMA’yı farklı kılan, Bulgarca, Katalanca, Çekçe, Danca, Almanca, İngilizce, İspanyolca, Fransızca, Hırvatça, Macarca, İtalyanca, Felemenkçe, Lehçe, Portekizce, Rumence, Rusça, Slovence, Sırpça, İsveççe ve Ukraynaca gibi çok sayıda dili kapsayan, kamusal olarak erişilebilir geniş bir metin yelpazesi üzerinde eğitilmiş olmasıdır. 2024 itibarıyla, geliştirilmiş mimari ve eğitim yöntemleriyle çok dilli yetenekleri ve verimliliği daha da artırılan LLaMA 2 tanıtılmıştır.
LLaMA modelleri 7B, 13B, 33B ve 65B parametre boyutlarında sunulmaktadır; onlara Hugging Face üzerinde (Transformers ile çalışacak şekilde dönüştürülmüş LLaMA modelleri) veya resmi depo olan facebookresearch/llama üzerinden erişebilirsiniz.
LLaMA Modelleriyle Başlarken
Resmi çıkarım (inference) kodu facebookresearch/llama deposunda mevcuttur; ancak işi basitleştirmek için modeli yüklemek ve metin üretmek amacıyla Hugging Face `transformers` kütüphanesinin LLaMA modülünü kullanacağız.
1. Modülü çalıştırmak için gerekli tüm Python kütüphanelerini kurun.
Not: LLaMA çıkarımını çalıştırmak için Google Colab kullanıyoruz.
%%capture
%pip install transformers SentencePiece accelerate
2. LLaMA belirteçlerini (token) ve model ağırlıklarını yükleme.
Not: “decapoda-research/llama-7b-hf” resmi model ağırlığı değildir. Decapoda Research, orijinal model ağırlıklarını Transformers ile çalışacak şekilde dönüştürmüştür.
import transformers, torch
from transformers import LlamaTokenizer, LlamaForCausalLM, GenerationConfig
tokenizer = LlamaTokenizer.from_pretrained("decapoda-research/llama-7b-hf")
model = LlamaForCausalLM.from_pretrained(
"decapoda-research/llama-7b-hf",
load_in_8bit=False,
torch_dtype=torch.float16,
device_map="auto",
)
3. Soruyu yazma.
4. Metni belirteçlere dönüştürme.
5. Model üretim yapılandırmasını oluşturma.
6. Çıktı metni üretmek için belirteçleri ve üretim yapılandırmasını kullanma.
7. Yanıtın çözülmesi ve yazdırılması.
instruction = "How old is the universe?"
inputs = tokenizer(
f"""Below is an instruction that describes a task. Write a response that appropriately completes the request.
### Instruction: {instruction}
### Response:""",
return_tensors="pt",
)
input_ids = inputs["input_ids"].to("cuda")
generation_config = transformers.GenerationConfig(
do_sample=True,
temperature=0.1,
top_p=0.75,
top_k=80,
repetition_penalty=1.5,
max_new_tokens=128,
)
with torch.no_grad():
generation_output = model.generate(
input_ids=input_ids,
attention_mask=torch.ones_like(input_ids),
generation_config=generation_config,
)
output_text = tokenizer.decode(
generation_output[0].cuda(), skip_special_tokens=True
).strip()
print(output_text)
Çıktı:
Model, evrenin yaşı için yalnızca 13 milyar yıl gibi doğru bir tahmin üretmekle kalmıyor, aynı zamanda bu hesaplamanın arkasındaki akıl yürütmeyi de ortaya koyuyor.
Below is an instruction that describes a task. Write a response that
appropriately completes the request.
### Instruction: How old is the universe?
### Response: The age of our Universe can be calculated by measuring
how fast it expands and then using this information to calculate its
size at different points in time, which allows us determine when
things happened relative to each other (evolutionary biology). This
method has been used for many years now with great success; however
there are still some uncertainties about what exactly we're seeing
because light takes so long travel from distant galaxies back here on
Earth! So while scientists have determined roughly 13 billion
year-old as being correct they don't know if their calculations were
off or not due to these limitations mentioned above
transformers ayrıca çeşitli görev ve veri kümeleri için ince ayar amacıyla kullanılabilir; bu da hem doğrulukta hem performansta kayda değer iyileşmeler sağlar.
Açık kaynak geliştirmelerin daha pratik yönü ilginizi çekiyorsa, ilham almak için Üretici Modellerle Yapılabilecek 5 Proje yazısına göz atın.
LLaMA Diğer AI Modellerinden Nasıl Farklıdır?
Makale, LLaMA modellerinin GPT-3, GPT-NeoX, Gopher, Chinchilla ve PaLM gibi diğer son teknoloji dil modelleriyle kapsamlı bir karşılaştırmasını sunuyor. Kıyaslamalar; sağduyu çıkarımı, bilgi yarışması, okuduğunu anlama, soru yanıtlama, matematiksel akıl yürütme, kod üretimi ve genel alan bilgisi gibi testleri içeriyor.
- Sağduyu çıkarımı. LLaMA-65B modeli, PIQA, SIQA ve OpenBookQA çıkarım kıyaslamalarında SOTA mimarileri geride bırakmıştır. Hatta daha küçük 33B model, ARC’nin hem kolay hem zor sürümlerinde hepsini geçmiştir.
- Kapalı Kitap Soru Cevap & Trivia. Bu test, LLM’nin gerçekçi, insan sorularını yorumlama ve yanıtlama yeteneğini ölçer. LLaMA modeli, Natural Questions ve TriviaQA kıyaslamalarında GPT3, Gopher, Chinchilla ve PaLM’ı tutarlı biçimde geride bırakmıştır.
- Okuduğunu anlama. RACE-middle ve RACE-high kıyaslamaları kullanılır. LLaMA modelleri GPT-3’ü geride bırakmış ve PaLM 540B ile benzer performans göstermiştir.
- Matematiksel Akıl Yürütme. LLaMA, herhangi bir matematik verisi üzerinde ince ayar yapılmadan eğitilmiştir ve Minerva ile karşılaştırıldığında oldukça zayıf performans göstermiştir.
- Kod Üretimi. HumanEval ve MBPP kıyaslamaları kullanılır. LLaMA; HumanEval@100, MBP@1 ve MBP@80 metriklerinde hem LAMDA hem de PaLM’ı geride bırakmıştır.
Alan bilgisi. LLaMA modelleri, devasa PaLM 540B parametreli modelle karşılaştırıldığında daha kötü performans göstermiştir. PaLM, daha fazla parametre sayesinde daha geniş alan bilgisine sahiptir.

LLaMA’nın Zorlukları ve Sınırlamaları
Diğer Büyük Dil Modelleri gibi LLaMA da halüsinasyon sorunu yaşar. Olgusal olarak yanlış bilgiler üretebilir.
Bunların yanı sıra:
- Veri kümemizin büyük kısmı İngilizce metinlerden oluştuğu için, modelin İngilizce dışı dillerdeki performansının görece daha düşük olabileceğini not etmek önemlidir.
- LLaMA modellerinin birincil amacı araştırma uygulamalarıdır (ticari olmayan lisans). Bu modellerin yayınlanması; önyargılar, riskler, toksik veya zararlı içerik üretimi ve halüsinasyon gibi sorunları değerlendirme ve ele alma konusunda araştırmacılara yardımcı olmayı amaçlar.
- LLaMA bir temel modeldir; risk değerlendirmesi ve azaltımı yapılmadan uygulama geliştirmek için kullanılmamalıdır.
- Matematiksel akıl yürütme ve alan bilgisinde iyi değildir.
Kapalı kaynak geliştirmelere dair içgörü edinmek için OpenAI, Google AI ve Veri Bilimi Açısından Anlamı başlıklı yazıyı okuyun. Blog, dil, görme ve çok modlu (multimodal) teknolojilerdeki yıkıcı yenilikleri ve bunların bizi nasıl daha üretken ve etkin kıldığını ele alıyor.
LLaMA 2 ve LLaMA 3’ün sonraki sürümleriyle birlikte yeni zorluklar ve sınırlamalar da belirlendi. Bağlam uzunluğu sınırlamaları gibi alanlarda iyileştirmeler yapıldı ve ince ayar gibi yöntemlerle, derin alan bilgisi gerektiren görevlerde yaşanan güçlüklerin aşılması mümkün hale geliyor. Her zaman olduğu gibi topluluk, bu modellerin sağlamlığını ve uygulanabilirliğini artırmak için bu konular üzerinde aktif olarak çalışıyor.
Sonuç
LLaMA modelleri, açık kaynak yapay zekâ geliştirmesinde devrim niteliğinde bir dalga başlattı. Daha küçük temel model LLaMA-13B’nin GPT-3’ün yeteneklerini aşması ve LLaMA-65B’nin Chinchilla-70B ve PaLM-540B gibi en ileri düzey modellerle karşılaştırılabilir performans sergilemesi, kamusal veriler üzerinde eğitimle ve asgari hesaplama kaynaklarıyla da son teknoloji sonuçlara ulaşılabileceğini ortaya koydu.
Ayrıca makale, LLaMA modellerinin talimatlarla (instruction) ince ayar yapılarak performanslarının artırılabileceğini vurguluyor. Özellikle, LLaMA’dan türetilip talimat izleme gösterimleriyle ince ayar yapılan Vicuna ve Stanford Alpaca modellerinin, ChatGPT ve Bard’a benzer sonuçlar gösterdiği kaydedilmiştir.
Büyük dil modellerinden veri bilimi projeleriniz için yararlanmak istiyorsanız, Veri Bilimi Projeleri İçin ChatGPT Kullanım Rehberine göz atın. Ayrıca prompt engineering becerilerinizi Veri Bilimi için ChatGPT Hızlı Başvuru Kılavuzları ile geliştirebilirsiniz.
Sertifikalı bir veri bilimcisi olarak, yenilikçi makine öğrenimi uygulamaları oluşturmak için en son teknolojileri kullanmaya büyük ilgi duyuyorum. Konuşma tanıma, veri analizi ve raporlama, MLOps, konuşma yapay zekası ve NLP alanlarında güçlü bir geçmişe sahip olarak, gerçek bir etki yaratabilecek akıllı sistemler geliştirme becerilerimi geliştirdim. Teknik uzmanlığımın yanı sıra, karmaşık kavramları açık ve özlü bir dille ifade etme yeteneğine sahip, becerikli bir iletişimciyim. Sonuç olarak, veri bilimi konusunda aranan bir blog yazarı oldum ve giderek büyüyen veri profesyonelleri topluluğuyla görüşlerimi ve deneyimlerimi paylaşıyorum. Şu anda, içerik oluşturma ve düzenlemeye odaklanıyorum. Büyük dil modelleriyle çalışarak, hem işletmelerin hem de bireylerin verilerinden en iyi şekilde yararlanmalarına yardımcı olabilecek güçlü ve ilgi çekici içerikler geliştiriyorum.

