Nasıl Çalışır? Düşük Rankli Matris Ayrışımı
LoRA ağırlık güncellemesini ΔW = A × B olarak faktörizeler; A (d×r) ve B (r×d) küçük matrisleri yalnızca r rank boyutunu gerektirir. Eğitim başında A Gaussian, B sıfır ile başlatılır; böylece eğitim başlangıcında LoRA katkısı sıfırdır. Çıkarım sırasında eğitilmiş ağırlıklar taban modele eklenerek (W + α/r × BA) gecikme eklenmeden çalışır. α (alpha) ölçek faktörü; yaygın seçim α = rank veya 2×rank.
LoRA Varyantları: QLoRA, DoRA, AdaLoRA
QLoRA: taban modeli 4-bit NF4 ile nicemler, adaptörleri tam hassasiyetle eğitir; 65B modeli 48GB GPU'ya sığdırır. AdaLoRA: her katmana önem skoruna göre dinamik rank atar; sabit bütçeyle LoRA'dan üstün. DoRA: ağırlığı büyüklük + yön bileşenlerine ayırır; tam fine-tuning'e daha yakın davranış. rsLoRA: yüksek rank'ta kararlı eğitim için rank normalizasyonu. LoRA+: A ve B matrislerine farklı öğrenme hızı uygular.
Rank, Alpha ve Hedef Modül Seçimi
Rank (r): 4-16 çoğu görev için iyi başlangıç; yüksek r daha fazla kapasite ama daha pahalı. Alpha (α): α = r veya 2×r yaygın seçim; etkin learning rate α/r oranına bağlı. Hedef modüller: standart seçim attention Q, K, V, O projeksiyonları; MLP ve embedding eklemek kaliteyi artırır. LoRA dropout 0.05-0.1 overfitting'i azaltır. Stable Diffusion'da: UNet cross-attention katmanları hedeflenir.
Görsel Üretimde LoRA
Stable Diffusion kullanıcıları LoRA ile belirli sanatçı stillerini, karakter yüzlerini veya nesne tarzlarını modele öğretebilir. Civitai platformunda onbinlerce topluluk LoRA'sı ücretsiz paylaşılıyor. Eğitim için 10-50 görüntü yeterli; A1111 ve ComfyUI arayüzleri LoRA ağırlıklarını çalışma zamanında yüklemeyi destekliyor. FLUX.1 modeli için LoRA eğitimi Replicate ve Hugging Face üzerinde çevrimiçi de yapılabiliyor.
LoRA Uygulama Stratejileri
Rank Seçimi
r=4-16 çoğu görev için yeterlidir; daha karmaşık görevler için r=32-64 düşünülmeli.
Hedef Modüller
Attention matrislerine (q_proj, v_proj) uygulamak genellikle FFN katmanlarından daha etkilidir.
Alpha Ayarı
alpha=2*r kuralı başlangıç için iyi bir kural; ince ayar sürecinde ölçeklemeyi dengeler.
QLoRA ile Bellek Tasarrufu
4-bit nicemleme ile LoRA birleştirilince 7B model tek tüketici GPU'da eğitilebilir.
Sık Sorulan Sorular
- check_circle LoRA ile tam fine-tuning arasındaki temel fark nedir? Tam fine-tuning tüm milyarlarca parametreyi günceller; LoRA yalnızca eklenen küçük A×B matrislerini eğitir. Parametre sayısı %90-99 azalır; tüketici GPU'sunda fine-tuning mümkün olur.
- check_circle QLoRA ne işe yarar ve LoRA'dan farkı nedir? QLoRA taban modeli 4-bit ile nicemleyerek belleğe yükler; LoRA adaptörlerini normal hassasiyette eğitir. 65B model gibi çok büyük modelleri tek GPU'ya sığdırmak için kritik; LoRA tek başına bu ölçeği destekleyemez.
- check_circle LoRA rank değeri nasıl seçilmeli? Görev karmaşıklığına göre değişir: basit tarz/format görevleri için r=4-8, karmaşık bilgi adaptasyonu için r=16-32 deneyimsel başlangıçtır. Düşük rank hızlı ama sınırlı; yüksek rank daha güçlü ama daha pahalı.
- check_circle Hugging Face PEFT ile LoRA nasıl uygulanır? from peft import get_peft_model, LoraConfig ile konfigürasyon tanımlanır; get_peft_model(model, config) ile adaptörler eklenir. Eğitim standart PyTorch döngüsüyle yapılır; model.save_pretrained() ile adaptör ağırlıkları kaydedilir.
- check_circle LoRA adaptörlerini birleştirmek (merge) mümkün mü? Evet; model.merge_and_unload() ile adaptör ağırlıkları taban modele kalıcı olarak gömülür. MergeKit aracı TIES veya DARE yöntemleriyle birden fazla LoRA adaptörünü tek modelde birleştirir.
- check_circle Stable Diffusion'da LoRA nasıl kullanılır? Civitai'den indirilen .safetensors dosyası A1111'de models/Lora klasörüne yerleştirilir; prompt'a <lora:model_name:weight> şeklinde eklenir. Ağırlık 0.5-1.0 arası tipik; çok yüksek değer görüntüyü aşırı stil baskısına sokar.