LoRA (Low-Rank Adaptation) ist ein Verfahren, um große KI-Modelle anzupassen, ohne alle Gewichte neu zu trainieren. Stattdessen werden nur kleine Zusatzmatrizen mit niedrigem Rang gelernt — das spart enorm Speicher und Rechenzeit und ist heute der Standard für das Feintuning großer Sprachmodelle.
Warum LoRA?
Beim vollständigen Feintuning eines Modells wie GPT-3 mit 175 Milliarden Parametern müsste jede Gewichtsmatrix verändert und der komplette Zustand im Speicher gehalten werden. LoRA friert die ursprünglichen Gewichte ein und lernt für ausgewählte Matrizen (meist in den Aufmerksamkeits-Schichten des Transformers) eine niedrigrangige Erweiterung: Statt der vollen Matrix W wird nur ΔW = B·A trainiert, wobei B und A schmale Matrizen sind. Der Rang r ist dabei viel kleiner als die Modell-Dimension.
Wie funktioniert die Mathematik?
Für eine Gewichtsmatrix W der Dimension d×d lernt LoRA zwei kleine Matrizen A (r×d) und B (d×r) mit r deutlich kleiner als d. Der Forward-Pass rechnet h = W·x + (B·A)·x. Nach dem Training lässt sich die Erweiterung in W einklagen (W' = W + B·A) — dadurch entsteht keine zusätzliche Latenz beim Inferieren. Ein Skalierungsfaktor α steuert die Stärke der Anpassung.
Ergebnisse der LoRA-Veröffentlichung
- Vorgestellt von Edward Hu und Kollegen (Microsoft) im Juni 2021 (arXiv 2106.09685).
- Reduziert die trainierbaren Parameter um bis zu das 10.000-Fache und den GPU-Speicherbedarf um das Dreifache gegenüber vollem Feintuning.
- Erreicht auf Benchmark-Aufgaben eine mit dem vollständigen Feintuning vergleichbare oder bessere Qualität.
- Grundlage für die Beobachtung, dass Feintuning-Updates eine niedrige intrinsische Dimension haben.
Abgrenzung
LoRA ist eine Methode des parameter-effizienten Feintunings (PEFT). Die quantisierte Variante für besonders große Modelle heißt QLoRA. Anders als beim Prompt Tuning oder Prefix Tuning werden bei LoRA echte Modellgewichte (als niedrigrangige Ergänzung) trainiert.
Verwandte Grundlagen: Fine-Tuning, Training, Backpropagation, Gradient Descent.