LoRA Neden Gereklidir?
GPT-4 veya Llama gibi büyük dil modellerini belirli bir göreve uyarlamak için tüm ağırlıkları güncellemek (full fine-tuning) pratik değildir: 70B parametreli bir model için yüzlerce GB GPU belleği ve günlerce eğitim süresi gerekebilir. LoRA bu sorunu kökten çözer: tüm ağırlıklar dondurulur, yalnızca küçük düşük sıralı adaptör matrisleri eğitilir. Bu sayede eğitilmesi gereken parametre sayısı dramatik biçimde azalır ve tek bir tüketici GPU'suyla bile güçlü LLM'leri özelleştirmek mümkün hale gelir.
Matematiksel Temel: Düşük Sıralı Ayrıştırma
LoRA, ağırlık güncellemesinin ΔW = A × B şeklinde iki küçük matrisin çarpımıyla yaklaşık olarak ifade edilebildiği hipotezine dayanır. Örneğin d×d boyutlu orijinal matris için A (d×r) ve B (r×d) matrisleri kullanılır; r << d koşulu düşük sıralı olmayı tanımlar. Eğitim sırasında orijinal W₀ dondurulur; yalnızca A ve B gradyan hesaplar. Çıkarım (inference) sırasında W₀ + ΔW birleştirmesi yapılır ve ek hesaplama yükü ortadan kalkar. Rank değeri r genellikle 4–64 arasında seçilir; küçük r daha az parametre ama daha kaba uyarlama anlamına gelir.
QLoRA: Dört-Bit Niceleme ile Verimlilik
QLoRA (Quantized LoRA), 2023 yılında Dettmers ve ark. tarafından tanıtılan ve LoRA'yı 4-bit NF4 (NormalFloat4) nicelemeyle birleştiren bir yaklaşımdır. Bu kombinasyon 65B parametreli modellerin tek bir 48 GB VRAM'li GPU'da, hatta 70B modellerin RTX 4090 üzerinde ince ayar yapılmasını mümkün kılmıştır. QLoRA üç teknik yenilik içerir: NF4 niceleme, çift niceleme (double quantization) ve sayfalı optimize edici (paged optimizer). Tüketici donanımında LLM ince ayarını demokratize eden QLoRA, Türk NLP araştırmacıları arasında da hızla benimsendi.
LoRA Parametreleri ve Yapılandırma
LoRA uygulamasında üç kritik hiper parametre vardır. Rank (r): Düşük sıralı matrisin boyutu; r=8 veya r=16 iyi başlangıç noktalarıdır. Büyük r daha fazla parametre demektir ama overfitting riskini artırır. Alfa (α): Ölçekleme faktörü; genellikle α=r veya α=2r olarak ayarlanır. Hedef modüller: LoRA adaptörlerinin hangi katmanlara uygulanacağı; Transformer'larda q_proj, v_proj (attention katmanları) en yaygın hedeflerdir, ancak tüm lineer katmanlara uygulamak da mümkündür. Dropout oranı aşırı öğrenme riskini azaltır.
Araçlar ve Ekosistem
Hugging Face PEFT kütüphanesi LoRA, QLoRA, Prefix Tuning ve IA3 gibi PEFT yöntemlerini tek API altında sunar; birkaç satır kodla transformers kütüphanesiyle entegrasyon sağlanır. Axolotl, LLaMA-Factory ve Unsloth açık kaynak eğitim çerçeveleri LoRA ve QLoRA eğitimini yapılandırılmış YAML dosyalarıyla yönetir. Civitai ve Hugging Face Hub, görüntü üretme modellerine özel LoRA adaptörlerinin paylaşım platformu olarak öne çıkar. Stable Diffusion ve FLUX gibi diffusion modellerinde LoRA, belirli stil, karakter veya konsept öğretmek için standart yöntem haline gelmiştir.
LoRA ve Tam İnce Ayar Karşılaştırması
Tam ince ayar (full fine-tuning), tüm model parametrelerini günceller; en yüksek performansı sunar ancak büyük GPU belleği ve uzun eğitim süresi gerektirir. LoRA eğitilmesi gereken parametre sayısını yüzde bire kadar indirger; performans kaybı genellikle minimumdur. Görev değiştirme esnekliği LoRA'nın en büyük avantajıdır: tek bir temel model üzerinde birden fazla LoRA adaptörü tutulabilir ve görev geçişi milisaniyeler içinde yapılabilir. Tam ince ayar ise model ağırlıklarını kalıcı değiştirir; çok görevli senaryolarda ayrı model kopyaları gerektirir ve depolama maliyeti dramatik biçimde artar.
Sık Sorulan Sorular
LoRA nedir? Low-Rank Adaptation; büyük dil modellerini tüm ağırlıkları güncellemeden, küçük düşük sıralı matrisler ekleyerek verimli biçimde ince ayarlayan parametre-verimli yöntemdir.
QLoRA ile LoRA arasındaki fark nedir? QLoRA, LoRA'yı 4-bit NF4 nicelemeyle birleştirir; bellek gereksinimini daha da azaltarak tüketici GPU'larında 70B model eğitimini mümkün kılar.
Rank (r) değeri nasıl seçilir? r=8 veya r=16 iyi başlangıç noktasıdır. Veri seti küçükse küçük r (aşırı öğrenme önleme); görev çok karmaşıksa büyük r seçilir.
LoRA hangi katmanlara uygulanır? Genellikle Transformer attention katmanları (q_proj, v_proj, k_proj, o_proj); bazen FFN katmanları da eklenir. Tüm lineer katmanlara uygulamak performansı artırabilir.
LoRA adaptörlerini nasıl paylaşırım? Hugging Face Hub üzerinde PEFT formatında yüklenebilir; temel model değişmeden yalnızca küçük adaptör dosyası (birkaç MB) paylaşılır.