Was es ist
PEFT (Parameter-Efficient Fine-Tuning) ist eine Familie von Methoden, die ein Modell anpassen, indem sie eine kleine Anzahl neuer Gewichte trainieren, während die ursprünglichen eingefroren bleiben. LoRA (Low-Rank Adaptation), 2021 von Hu et al. eingeführt, ist die am weitesten verbreitete Methode. Sie beruht auf einer Beobachtung: Die Änderung, die das Fine-Tuning an einer großen Gewichtsmatrix vornehmen muss, lässt sich mit weitaus weniger Zahlen beschreiben als die Matrix selbst. Mathematisch ausgedrückt hat die Änderung einen niedrigen Rang.
Wie es funktioniert
Nehmen wir eine lineare Schicht mit der Gewichtsmatrix W der Form d × k. Vollständiges Fine-Tuning würde eine Änderung ΔW derselben Form erlernen: d × k neue Zahlen. LoRA hingegen erlernt diese Änderung als Produkt zweier schmaler Matrizen. A (r × k) komprimiert die Eingabe der Schicht auf r Zahlen, und B (d × r) expandiert sie wieder. Der Rang r ist klein, typischerweise 4–64, während d und k in die Tausende gehen.
h = W·x + (α / r) · B·A·x
W : d × k frozen
A : r × k trainable, random at the start
B : d × r trainable, zero at the start → B·A = 0 at step 0
trainable weights per adapted layer = r × (d + k)- Initialisierung. A beginnt zufällig und B beginnt bei null, sodass B·A = 0 ist und das angepasste Modell bei Schritt 0 exakt dem Basismodell entspricht. Das Training verändert es schrittweise.
- Skalierung. Die Ausgabe des Adapters wird mit Alpha ÷ r multipliziert. Dies hält die Größe seines Effekts in etwa stabil, wenn sich r ändert, sodass die Lernrate nicht für jeden Rang neu abgestimmt werden muss. Eine Variante, das rangstabilisierte LoRA (rsLoRA), teilt stattdessen durch die Quadratwurzel von r, was sich bei hohen Rängen besser verhält.
- Zusammenführung. Nach dem Training kann B·A ausmultipliziert und zu W addiert werden. Das zusammengeführte Modell hat die ursprüngliche Form und läuft mit der ursprünglichen Geschwindigkeit, ohne zusätzliche Latenz. Alternativ wird der Adapter als kleine separate Datei aufbewahrt und über das Basismodell geladen, wodurch ein Basismodell mehrere Adapter bedienen kann.
- Eine 4096 × 4096 Attention-Projektion: 16,8 Millionen Gewichte in W.
- LoRA mit Rang 8: A ist 8 × 4096 und B ist 4096 × 8, also 2 × 4096 × 8 = 65.536 trainierbare Gewichte, 0,4 % der Schicht.
- Ein 7B-Modell im Llama-Stil mit Rang 16 auf allen linearen Schichten (vier Attention- und drei MLP-Projektionen in jeder der 32 Schichten): etwa 40 Millionen trainierbare Gewichte, rund 0,6 % des Modells.
- Trainingsspeicher: Diese 40 Millionen Gewichte benötigen etwa 0,6 GB für Gradienten und den AdamW-Status, gegenüber etwa 112 GB für ein vollständiges Fine-Tuning aller 7 Milliarden.
- Der gespeicherte Adapter in 16-Bit ist etwa 80 MB groß, gegenüber 14 GB für eine vollständige Kopie des Modells.
- Im ursprünglichen Paper zu GPT-3 175B reduzierte LoRA die trainierbaren Parameter um das bis zu 10.000-Fache und den GPU-Speicher um etwa das 3-Fache im Vergleich zu einem vollständigen Fine-Tuning mit Adam.
Die Einstellungen
Die innere Dimension von A und B und somit die Kapazität des Adapters: wie viele unabhängige Änderungsrichtungen er in jeder Schicht erlernen kann. Die trainierbaren Gewichte wachsen proportional zu r. Niedrige Ränge reichen für Tonalität, Stil und Format aus; größere, wissensintensive Datensätze profitieren von höheren Werten. Sobald der Adapter über ausreichend Kapazität für die Daten verfügt, verursacht ein höherer Rang zusätzliche Kosten, ohne die Ergebnisse zu verbessern. Einige Anbieter bezeichnen dies als Adaptergröße.
Ein Skalierungsfaktor: Die Ausgabe des Adapters wird mit Alpha ÷ r multipliziert. Ein größeres Alpha verleiht jedem Update mehr Gewicht, ähnlich wie eine höhere Lernrate. Daher fixieren viele Setups Alpha und passen stattdessen die Lernrate an. Übliche Konventionen sind Alpha gleich r, Alpha gleich 2 × r oder ein fester Wert wie 16 oder 32. Wählen Sie eine Konvention und behalten Sie diese bei: Wenn Sie r ändern, während Alpha fixiert bleibt, ändert sich auch die Skalierung.
- Target Modules entscheiden, welche Schichten einen Adapter erhalten. Das ursprüngliche Paper passte nur die Attention-Query- und Value-Projektionen an. Spätere Arbeiten, einschließlich QLoRA und einer Studie von Thinking Machines aus dem Jahr 2025, ergaben, dass die Anpassung aller linearen Schichten, insbesondere der MLP-Schichten (Feed-Forward), erforderlich ist, um die Leistung eines vollständigen Fine-Tunings zu erreichen. Bibliotheken bieten in der Regel eine Option für „alle linearen Schichten“ an.
- LoRA Dropout setzt während des Trainings zufällig einen Teil der Adapter-Eingabe auf null – ein leichter Schutz gegen Overfitting bei kleinen Datensätzen. Übliche Werte liegen zwischen 0 und 0,1.
- Lernrate. LoRA benötigt in der Regel eine höhere Lernrate als vollständiges Fine-Tuning: etwa zehnmal höher in der Studie von Thinking Machines, die zudem herausfand, dass sich die optimale Rate über verschiedene Ränge hinweg kaum ändert.
- Batch-Größe. Dieselbe Studie ergab, dass LoRA sehr große Batches schlechter toleriert als vollständiges Fine-Tuning, weshalb moderate Batch-Größen die sicherere Wahl sind.
QLoRA: Adapter auf einer 4-Bit-Basis
QLoRA (Dettmers et al., 2023) trainiert gewöhnliche 16-Bit-LoRA-Adapter, speichert das eingefrorene Basismodell jedoch in einem 4-Bit-Format, das für normalverteilte Gewichte entwickelt wurde (NF4). Es fügt eine doppelte Quantisierung hinzu, die die Quantisierungskonstanten selbst komprimiert, sowie Paged Optimizers, die Speicherspitzen abfangen. In dem Paper wurde ein Modell mit 65 Milliarden Parametern auf einer einzigen 48-GB-GPU feingetunt, wobei die Aufgabenleistung des 16-Bit-Fine-Tunings erhalten blieb. Der Kompromiss ist die Geschwindigkeit: Die 4-Bit-Gewichte werden im laufenden Betrieb entpackt, sodass jeder Schritt etwas langsamer ist.
Wann LoRA die richtige Wahl ist
| Situation | Meist bevorzugt |
|---|---|
| Tonalität, Format oder fachspezifische Formulierungen, von Hunderten bis Tausenden von Beispielen | LoRA |
| Begrenzter GPU-Speicher oder begrenztes Budget | LoRA oder QLoRA |
| Mehrere aufgabenspezifische Varianten eines Basismodells | LoRA: jeweils ein kleiner Adapter |
| Die allgemeinen Fähigkeiten des Basismodells sollen erhalten bleiben | LoRA, da es weniger vergisst |
| Sehr große Datensätze, die wesentliche neue Fähigkeiten wie Programmieren oder Mathematik vermitteln | Vollständiges Fine-Tuning erzielt möglicherweise einen größeren Lerneffekt |
Häufige Fehler
- Nur die Attention-Schichten anzupassen. Bei den meisten Fine-Tuning-Daten liefert dies schlechtere Ergebnisse als Adapter auf allen linearen Schichten, einschließlich des MLP.
- Die Wiederverwendung einer Lernrate für vollständiges Fine-Tuning. LoRA benötigt in der Regel eine etwa zehnmal höhere Lernrate, da es sonst kaum lernt.
- Den Rang zu ändern, während Alpha unverändert bleibt, ohne zu bemerken, dass sich dadurch auch Alpha ÷ r und somit die effektive Schrittweite geändert haben.
- Zu erwarten, dass ein höherer Rang einen kleinen oder inkonsistenten Datensatz rettet. Kapazität hilft nicht, wenn die Beispiele kein klares Muster aufweisen.
- Einen Adapter auf ein anderes Basismodell oder eine andere Version davon zu laden als das, auf dem er trainiert wurde.
Quellen und weiterführende Literatur
Externe Quellen werden in einem neuen Tab geöffnet.
- 01LoRA: Low-Rank Adaptation of Large Language ModelsHu et al., 2021 · arXiv · arxiv.orgDas ursprüngliche Paper: die Low-Rank-Idee, die Skalierung Alpha ÷ r und die GPT-3-Ergebnisse.
- 02QLoRA: Efficient Finetuning of Quantized LLMsDettmers et al., 2023 · arXiv · arxiv.org4-Bit-NF4-Basisgewichte, doppelte Quantisierung und Paged Optimizers.
- 03LoRA Without RegretThinking Machines Lab, 2025 · thinkingmachines.aiWann LoRA mit vollständigem Fine-Tuning gleichzieht, warum alle Schichten wichtig sind und die 10×-Lernraten-Regel.
- 04LoRAHugging Face PEFT docs · huggingface.coJede LoRA-Einstellung in der Implementierung: Rang, Alpha, Dropout, Target Modules und rsLoRA.
- 05A Rank Stabilization Scaling Factor for Fine-Tuning with LoRAKalajdzievski, 2023 · arXiv · arxiv.org