LoRA (Low-Rank Adaptation) (Düşük Dereceli Adaptasyon)

Büyük modelleri küçük düşük rankli matrisler ekleyerek verimli biçimde ince ayarlayan parametre etkin teknik.

LoRA (Low-Rank Adaptation), milyarlarca parametreli büyük dil modellerini (LLM) veya görsel difüzyon modellerini son derece verimli biçimde ince ayarlayan (fine-tune) bir parametre etkin tekniktir. Orijinal ağırlık matrislerini dondurarak yalnızca küçük ek matrisler eğiten bu yaklaşım, tam ince ayara kıyasla eğitim için gereken GPU belleğini ve hesaplama süresini dramatik ölçüde azaltır. Bu sayede tüketici sınıfı donanımlar üzerinde büyük ölçekli model uyarlaması mümkün hale gelir. Tekniğin matematiksel temeli düşük ranklı matris ayrışımına dayanır. Ağırlık güncellemesi ΔW = A × B olarak ifade edilir; burada A (d×r) ve B (r×d) boyutlarındaki küçük matrisler yalnızca r rank boyutunu eğitir. Eğitim başında A Gaussian dağılımla, B ise sıfırla başlatılır; böylece başlangıçta LoRA katkısı sıfır olur ve taban modelin davranışı bozulmaz. Çıkarım sırasında eğitilen matrisler W + (α/r) × BA formülüyle taban modele eklenir; bu işlem ek gecikme yaratmaz ve ayrı adaptör dosyaları farklı görevler için kolayca değiştirilebilir. Varyantlar arasında QLoRA özellikle dikkat çekmektedir. Taban modeli 4-bit NF4 ile nicemlendirerek belleğe yükleyen bu yöntem, 65 milyar parametreli bir modeli tek bir 48 GB GPU'ya sığdırabilmektedir; LoRA adaptörleri ise tam hassasiyetle eğitilir. AdaLoRA her katmana önem skoruna göre dinamik rank atarken DoRA ağırlığı büyüklük ve yön bileşenlerine ayırarak tam ince ayara daha yakın davranış sergiler. rsLoRA yüksek rank değerlerinde kararlı eğitim için rank normalizasyonu uygular. LoRA+ ise A ve B matrislerine farklı öğrenme hızları atayarak yakınsama hızını artırır. Görsel üretim alanında LoRA, belirli sanatçı stillerini, karakter yüzlerini veya nesne tarzlarını 10-50 görüntüyle modele öğretmek için kullanılır. Civitai platformunda on binlerce topluluk LoRA'sı ücretsiz paylaşılmakta; A1111 ve ComfyUI gibi arayüzler bu ağırlıkları çalışma zamanında kolayca yüklemeyi desteklemektedir. FLUX.1 modeli için LoRA eğitimi artık Replicate ve Hugging Face üzerinden çevrimiçi de yapılabilmektedir. Hugging Face PEFT kütüphanesi birkaç satır kodla herhangi bir Transformer mimarisine LoRA eklemek için standart araç haline gelmiştir.

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.