LoRA
Low-Rank Adaptation (düşük ranklı uyarlama)
- Okunuşu
- lora
Kısaca
LoRA, büyük modellere ucuzca ince ayar yapma yöntemidir: ağırlıklar dondurulur, yalnızca eklenen küçük matrisler eğitilir; yeni beceri birkaç megabayta sığar.
LoRA nedir?
Büyük bir dil modeline ince ayar yapmak normalde milyarlarca ağırlığının tamamını günceller; bu da çok fazla GPU belleği ister ve her görev için modelin tam bir kopyasını üretir. Microsoft araştırmacılarının 2021'de tanıttığı LoRA, özgün ağırlıkları dondurur ve bazı katmanların yanına küçük, düşük ranklı bir matris çifti ekler; yalnızca bunlar eğitilir.
Onu ucuz yapan "düşük ranklı" olmasıdır. LoRA, büyük bir ağırlık matrisine tam bir güncelleme öğrenmek yerine, çarpımı o güncellemeye yaklaşan iki ince matris öğrenir. Özgün makalede bu, GPT-3 için eğitilen parametre sayısını yaklaşık 10.000 kat azalttı. Eğitilen adaptör çok küçüktür, gerektiğinde temel modelin üzerine yüklenebilir ve birkaç adaptör aynı temel modeli paylaşabilir.
LoRA, parametre açısından verimli ince ayarın (PEFT) en yaygın biçimidir. Popüler bir türü olan QLoRA, dondurulmuş temel modeli 4 bit hassasiyetle de saklar; böylece oldukça büyük modellere tek bir GPU'da ince ayar yapılabilir. Açık modelleri bir alana, bir yazım üslubuna ya da bir çıktı biçimine uyarlamak ve görüntü üretim modellerini özelleştirmek için yaygın olarak kullanılır.
Önemli noktalar
- LoRA, özgün ağırlıklar donmuş kalırken eklenen küçük matrisleri eğiterek bir modele ince ayar yapar.
- Tam ince ayardan çok daha az bellek ister ve küçük bir adaptör dosyası üretir.
- Adaptörler, paylaşılan tek bir temel modelin üzerinde değiştirilebilir.
- QLoRA, eğitimi tek bir GPU'ya sığdırmak için LoRA'yı 4 bitlik bir temel modelle birleştirir.
Örnek
from peft import LoraConfig, get_peft_model
from transformers import AutoModelForCausalLM
model = AutoModelForCausalLM.from_pretrained("meta-llama/Llama-3.2-1B")
config = LoraConfig(
r=8, # rank of the added matrices
lora_alpha=16,
target_modules=["q_proj", "v_proj"], # attention layers to adapt
lora_dropout=0.05,
task_type="CAUSAL_LM",
)
model = get_peft_model(model, config)
model.print_trainable_parameters() # only a small share of the weights will trainSık sorulan sorular
LoRA, tam ince ayar kadar iyi mi?
Çoğu uyarlama görevinde maliyetin çok küçük bir kısmıyla buna yaklaşır. Modelin gerçekten çok fazla yeni bilgi öğrenmesi gerektiğinde tam ince ayar hâlâ daha iyi olabilir; ama üslup, biçim ve alan uyarlaması için LoRA genellikle yeterlidir.
LoRA ile RAG arasındaki fark nedir?
LoRA, küçük bir adaptör eğiterek modelin davranışını değiştirir; RAG ise modeli değiştirmez ve soru anında ona ilgili belgeleri verir. RAG sık değişen bilgilere, LoRA tutarlı bir üslup, biçim ya da beceri öğretmeye uygundur.
İlgili sayfalar
- Fine-tuningYapay Zekâ ve Makine Öğrenmesi, s. 21Fine-tuning, önceden eğitilmiş bir makine öğrenmesi modelini tek bir göreve uyarlamak için daha küçük ve özel bir veri kümesiyle ek olarak eğitme sürecidir.
- QuantizationYapay Zekâ ve Makine Öğrenmesi, s. 37Quantization, parametreleri 16 yerine 8 ya da 4 gibi daha az bitle saklayarak bir yapay zekâ modelini küçülten, inference'ı hızlandırıp ucuzlatan tekniktir.
- Model ParametreleriYapay Zekâ ve Makine Öğrenmesi, s. 33Model parametreleri, bir makine öğrenmesi modelinin eğitimde öğrendiği ve girdileri çıktılara dönüştürmek için kullandığı ağırlık ve sapma gibi iç sayılardır.
- LLMYapay Zekâ ve Makine Öğrenmesi, s. 28LLM, çok büyük metin yığınlarıyla eğitilmiş ve bir sonraki en olası metin parçasını tekrar tekrar tahmin ederek dil üreten bir makine öğrenmesi modelidir.
- TransformerYapay Zekâ ve Makine Öğrenmesi, s. 45Transformer, bir dizideki her token'ın diğerleriyle ilişkisini attention ile tartan ve çoğu modern LLM'e güç veren bir sinir ağı mimarisidir.
- Eğitim VerisiYapay Zekâ ve Makine Öğrenmesi, s. 17Eğitim verisi, bir makine öğrenmesi modelinin öğrendiği örnekler kümesidir; kalitesi, boyutu ve kapsamı modelin ne kadar iyi çalışacağını büyük ölçüde belirler.
- RAGYapay Zekâ ve Makine Öğrenmesi, s. 38RAG, bir LLM'in soru anında getirilen ilgili belgelere dayanarak yanıt vermesini sağlayan ve yanıtları güncel, özel verilere dayandıran bir tekniktir.
- Derin ÖğrenmeYapay Zekâ ve Makine Öğrenmesi, s. 14Derin öğrenme, görüntü ve metin gibi ham verilerden karmaşık örüntüleri öğrenmek için çok katmanlı sinir ağları kullanan bir makine öğrenmesi alt kümesidir.
Kaynaklar
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin