Zum Inhalt

LoRA

LoRA (Low-Rank Adaptation) ist eine effiziente Fine-Tuning-Methode, die nur einen Bruchteil der Parameter trainiert – und trotzdem exzellente Ergebnisse liefert.


Die Idee

Statt die riesige Weight-Matrix \(W\) zu ändern, trainieren wir zwei kleine Matrizen \(A\) und \(B\):

\[ W' = W + BA \]
  • \(W\): Original-Gewichte (eingefroren)
  • \(B\): \(d \times r\) Matrix (trainiert)
  • \(A\): \(r \times k\) Matrix (trainiert)
  • \(r\): Rank (typisch 8-64, viel kleiner als \(d\))

Warum funktioniert das?

Die Änderungen beim Fine-Tuning haben oft niedrigen Rang – sie liegen in einem kleinen Unterraum. LoRA nutzt das aus.


Vorteile

Aspekt Full Fine-Tuning LoRA
Trainierbare Parameter 100% 0.1-1%
VRAM-Bedarf Sehr hoch Gering
Trainingszeit Lang Kurz
Adapter-Größe Volle Modellgröße ~MBs

QLoRA

QLoRA kombiniert LoRA mit Quantisierung: - Basis-Modell in 4-Bit laden - LoRA-Adapter in FP16 trainieren - → 65B Modell Fine-Tuning auf 24GB GPU!

from peft import LoraConfig, get_peft_model

config = LoraConfig(
    r=16,                  # Rank
    lora_alpha=32,         # Skalierungsfaktor
    target_modules=["q_proj", "v_proj"],
    lora_dropout=0.05,
)

model = get_peft_model(base_model, config)

Siehe auch

  • Fine-Tuning – Der Kontext
  • Quantisierung – Kombination mit QLoRA
  • Parameter – Was trainiert wird