Açık Kaynaklı Llama 3 Modeli Nasıl Fine-Tune Edilir?

müfettiş

Moderatör
Katılım
20 Ocak 2024
Mesajlar
325
Tepkime puanı
1
Puanları
18
Meta’nın Llama 3 modelini piyasaya sürmesi, açık kaynaklı yapay zeka dünyasında bir dönüm noktası oldu. Llama 3, devasa veri setleriyle eğitilmiş genel yetenekli bir model olsa da, belirli bir sektörün terminolojisine (hukuk, tıp), özel bir yazım diline veya kurum içi veri setlerine uyum sağlaması için Fine-Tuning (İnce Ayar) işlemine ihtiyaç duyar.


1. Fine-Tuning Nedir ve Neden Gereklidir?​

Fine-tuning, önceden eğitilmiş (pre-trained) bir modelin ağırlıklarını, daha küçük ve spesifik bir veri seti üzerinde güncelleyerek belirli görevlerdeki performansını artırma sürecidir. Llama 3 özelinde ince ayar şu durumlarda gereklidir:

  • Alan Uzmanlığı: Modelin tıbbi teşhis koyma veya hukuki metin analizi gibi niş alanlarda profesyonelleşmesi.
  • Ses Tonu ve Stil: Şirketinizin marka dilini veya belirli bir karakterin konuşma tarzını taklit etmesi.
  • Format Uyumluluğu: Çıktıların her zaman belirli bir JSON yapısında veya programlama dilinde olması.

2. Temel Kavramlar: Full Fine-Tuning vs. PEFT (LoRA)​

Geleneksel olarak bir modeli tamamen eğitmek (Full Fine-Tuning), milyarlarca parametrenin tamamını güncellemeyi gerektirir. Bu işlem devasa GPU belleği (VRAM) ve bütçe ister. Günümüzde ise daha verimli yöntemler öne çıkmaktadır:

A. LoRA (Low-Rank Adaptation)​

LoRA, modelin ana ağırlıklarını dondurur ve araya küçük, eğitilebilir matrisler ekler. Bu sayede eğitilmesi gereken parametre sayısı %90'dan fazla azalır.

B. QLoRA (Quantized LoRA)​

QLoRA, LoRA tekniğini bir adım ileri taşıyarak modeli 4-bit kuantize eder (sıkıştırır). Bu, Llama 3 (8B) gibi bir modeli standart bir tüketici ekran kartında (örn: RTX 3090 veya 4090) bile eğitmeyi mümkün kılar.


3. Hazırlık Aşaması: Donanım ve Yazılım Gereksinimleri​

Llama 3'ün 8B (8 milyar parametre) versiyonu için minimum gereksinimler şunlardır:

  • GPU: En az 24 GB VRAM (RTX 3090/4090, A10 veya A100).
  • RAM: 32 GB+ Sistem belleği.
  • Kütüphaneler: transformers, peft, bitsandbytes, trl ve accelerate.
  • Veri Seti: JSONL formatında hazırlanmış, kaliteli soru-cevap veya talimat çiftleri.

4. Adım Adım Llama 3 Fine-Tuning Süreci​

Adım 1: Veri Setini Hazırlama​

Fine-tuning işleminin en kritik adımı veri kalitesidir. Verileriniz genellikle şu formatta olmalıdır:

Kod:
{"instruction": "Türkiye'nin başkenti neresidir?", "output": "Türkiye'nin başkenti Ankara'dır."}

Adım 2: Modelin Yüklenmesi (Kuantize Ederek)​

Modeli 4-bit olarak yüklemek bellekten tasarruf sağlar. Hugging Face kütüphanesi ile bu işlem oldukça basittir:


Kod:
from transformers import AutoModelForCausalLM, BitsAndBytesConfig

bnb_config = BitsAndBytesConfig(
    load_in_4bit=True,
    bnb_4bit_quant_type="nf4",
    bnb_4bit_compute_dtype="float16"
)

model = AutoModelForCausalLM.from_pretrained(
    "meta-llama/Meta-Llama-3-8B",
    quantization_config=bnb_config,
    device_map="auto"
)

Adım 3: LoRA Yapılandırması​

Modelin hangi katmanlarını eğiteceğimizi belirliyoruz. Genellikle "target_modules" olarak q_proj, v_proj gibi dikkat (attention) katmanları seçilir.

Adım 4: Eğitim (Training)​

Hugging Face'in SFTTrainer (Supervised Fine-tuning Trainer) sınıfı, süreci yönetmek için en ideal araçtır. Eğitim sırasında "Learning Rate" (Öğrenme Oranı) ve "Batch Size" gibi hiperparametreler dikkatle ayarlanmalıdır.


5. Eğitim Sonrası: Değerlendirme ve Merge İşlemi​

Eğitim bittiğinde elimizde bir "Adapter" (Adaptör) dosyası olur. Bu dosya tek başına çalışmaz; ana Llama 3 modeliyle birleştirilmesi (merge) gerekir.

  1. Doğrulama: Modelin eğitim sırasında görmediği sorulara verdiği yanıtları test edin.
  2. Merging: peft kütüphanesini kullanarak adaptör ağırlıklarını ana modelin içine "enjekte" edin.
  3. Kaydetme: Artık elinizde size özel, fine-tune edilmiş tam bir model var.

6. Sık Yapılan Hatalar ve İpuçları​

  • Overfitting (Aşırı Öğrenme): Veri setiniz çok küçükse ve eğitim süresi (epoch) çok uzunsa, model sadece verileri ezberler ve yaratıcılığını kaybeder.
  • Unutma Efekti (Catastrophic Forgetting): Model yeni bilgileri öğrenirken eski genel bilgilerini unutabilir. Bunu önlemek için veri setine bir miktar genel bilgi içeren veri ekleyin.
  • Yanlış Prompt Formatı: Llama 3'ün kendine has bir mesaj formatı (<|begin_of_text|><|start_header_id|>user<|end_header_id|>...) vardır. Eğitim verilerinizin bu formata uygun olduğundan emin olun.

7. Sonuç: Kendi Yapay Zekanızı İnşa Etmek​

Llama 3 gibi güçlü bir modeli fine-tune etmek, artık sadece büyük teknoloji şirketlerinin tekelinde değil. QLoRA gibi teknikler sayesinde, birkaç yüz dolarlık bir bulut GPU kiralamasıyla veya kendi iş istasyonunuzla, dünyanın en zeki açık kaynaklı modellerinden birini kendi uzmanlığınızla donatabilirsiniz.
 
Geri
Üst