How-To Guides

Alan Spesifik Yapay Zekayı Ustalaşmak: LoRA ile LLM'leri İnce Ayarlamak İçin Kılavuz

Büyük Dil Modelleri (LLM'ler) manzarası büyük ölçüde değişti. GPT-4 gibi özel modeller etkileyici genel yetenekler sunsa da, hukuk, tıp veya özel yazılım dokümantasyonu gibi belirli sektörler için gereken uzman bilgiyi genellikle karşılamazlar. Bu devasa modelleri sıfırdan yeniden eğitmek, çoğu organizasyon için hesaplama açısından çok maliyetlidir. İşte burada Düşük Sıralı Uyarlamalar (LoRA) devreye girer; geliştiricilerin Llama 3, Mistral veya Qwen gibi açık kaynaklı modelleri GPU bellek gereksinimlerini şişirmeden niş alanlara uyarlamasına olanak tanıyan, parametre verimli bir ince ayar (PEFT) çözümü sunar.

LoRA Avantajını Anlamak

Geleneksel ince ayar, önceden eğitilmiş bir modeldeki tüm parametrelerin güncellenmesini içerir. Billiyonlarca parametreye sahip bir model için bu, önemli miktarda VRAM gerektirir ve her alan uyarlaması için devasa bir model dosyası oluşturur. LoRA, Transformer'ın her katmanına eğitilebilir düşük sıralı ayrıştırma matrisleri ekleyerek bu ağırlık güncellemelerini yaklaşık olarak hesaplar. Terabaytlarca güncellenmiş ağırlık depalamak yerine, genellikle sadece birkaç yüz megabayt olan küçük uyarlama matrislerini depolarsınız. Bu yaklaşım yalnızca bellek kullanımını azaltmakla kalmaz, aynı zamanda eğitim sürelerini de önemli ölçüde hızlandırarak bireysel geliştiriciler ve orta ölçekli ekipler için erişilebilir hale getirir.

Çevrenizi Hazırlama

Koda dalmadan önce gerekli kütüphanelerin yüklü olduğundan emin olun. PyTorch, `transformers` ve `peft` (Parametre Verimli İnce Ayar) kütüphanelerine ihtiyacınız olacaktır. Verimli işleme için en az 24GB VRAM'e sahip bir GPU kullanmanız şiddetle tavsiye edilir; ancak bitsandbytes gibi teknikler daha küçük donanımlarda çalışmanıza olanak tanıyabilir.

Öncelikle, bir temel model yükleyelim ve LoRA yapılandırmasını uygulayalım. Aşağıda, modeli 8-bit nicelleme ile başlatmanın ve LoRA derecelerinin tanımlanmasının nasıl yapılacağını gösteren bir Python kodu örneği bulunmaktadır.

from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig
from peft import LoraConfig, get_peft_model
import torch

# Modeli doğrudan yükle
tokenizer = AutoTokenizer.from_pretrained("meta-llama/Llama-3-8b-instruct")

quantization_config = BitsAndBytesConfig(
    load_in_4bit=True,
    bnb_4bit_compute_dtype=torch.float16,
    bnb_4bit_quant_type="nf4",
    bnb_4bit_use_double_quant=True,
)

model = AutoModelForCausalLM.from_pretrained(
    "meta-llama/Llama-3-8b-instruct",
    device_map="auto",
    quantization_config=quantization_config,
    use_cache=False,
)

# LoRA yapılandırmasını tanımla
lora_config = LoraConfig(
    r=8, # Güncelleme matrisinin derecesi
    lora_alpha=32,
    target_modules=["q_proj", "k_proj", "v_proj", "o_proj"],
    lora_dropout=0.05,
    bias="none",
    task_type="CAUSAL_LM",
)

model = get_peft_model(model, lora_config)
model.print_trainable_parameters()

Alan Spesifik Veriyi Hazırlama

İnce ayarlı modelinizin kalitesi, veri setinizin kalitesine doğrudan bağlıdır. Alan spesifik görevler için, alanınızla ilgili soru-cevap çiftleri veya talimat izleme örneklerinden oluşan bir veri seti hazırlamalısınız. Örneğin, hukuki sözleşme analizi için ince ayar yapıyorsanız, veri setiniz hukuki maddeleri ve özetlerini içeren JSON satırları şeklinde olabilir. Verilerinizin temel modelle aynı tokenizer kullanılarak doğru şekilde tokenize edildiğinden emin olun. Değişken uzunluktaki dizileri verimli bir şekilde işlemek için `DataCollatorForSeqLen` kullanın.

Eğitim ve Değerlendirme

Eğitim döngüsünü yönetmek için `trl` kütüphanesinden `SFTTrainer`'ı kullanın. Bu eğitici, denetimli ince ayar sürecini basitleştirir. Temel ağırlıklar donatıldığı için öğrenme oranını düşük bir değere (örneğin, $2e-4$) ayarlayabilirsiniz. Küçük, alan spesifik veri setlerinde eğitim yaparken yaygın olan aşırı öğrenmeyi (overfitting) önlemek için doğrulama kaybını yakından izleyin.

Sonuç

LLM'leri LoRA ile ince ayarlamak, uzmanlaşmış yapay zeka yeteneklerine erişimi demokratikleştirir. Düşük sıralı uyarlamalardan yararlanarak geliştiriciler, kurumsal düzeyde altyapı gerektirmeden son derece doğru, alan spesifik asistanlar oluşturabilir. Açık kaynaklı modeller gelişmeye devam ettikçe, özel yapay zeka çözümleri için giriş bariyeri daha da düşecek ve her sektörde daha yenilikçi uygulamaların önü açılacaktır. Küçük başlayın, yüksek kaliteli veri hazırlayın ve iterasyon yapın—özel yapay zeka çözümünüz düşündüğünüzden daha yakında.
Share: