Ressourcen/Modelltraining/Was während des Trainings passiert

Methode

LoRA und Adapter (PEFT)

LoRA friert das Basismodell ein und trainiert zwei kleine Matrizen neben ausgewählten Schichten, deren Produkt zu den eingefrorenen Gewichten addiert wird. Es reduziert die trainierbaren Gewichte und den Speicherbedarf drastisch und erreicht bei guter Konfiguration die Leistung eines vollständigen Fine-Tunings auf typischen Fine-Tuning-Datensätzen.

Kapitel 66 Min. Lesezeit5 Quellen

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.

xEingabeWd × d · eingefroren 🔒Ar × dBd × rtrainierbar · Rang r (4–16)+hh = Wx + BAx
LoRA belässt die ursprüngliche Gewichtsmatrix W im eingefrorenen Zustand und lernt zwei schmale Matrizen daneben. Deren Produkt B·A hat dieselbe Form wie W, aber nur den Rang r, sodass ein 4096 × 4096 Layer (16,8 Mio. Gewichte) mit 2 × 4096 × 8 ≈ 65k trainierbaren Gewichten bei Rang 8 angepasst wird.

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.

Das LoRA-Update
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.
Zählen der Gewichte: eine Schicht, dann ein ganzes Modell
  1. Eine 4096 × 4096 Attention-Projektion: 16,8 Millionen Gewichte in W.
  2. 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.
  3. 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.
  4. 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.
  5. Der gespeicherte Adapter in 16-Bit ist etwa 80 MB groß, gegenüber 14 GB für eine vollständige Kopie des Modells.
  6. 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.
Vollständiges Fine-Tuning16-Bit + Adam≈ 112 GBLoRA16-Bit-Basis, eingefroren≈ 15 GBQLoRA4-Bit-Basis, eingefroren≈ 4–5 GBAdam + fp32-Kopieeingefrorene Gewichtetrainierbare GewichteGradientenOptimierer-Status
Ungefährer GPU-Speicherbedarf für das Fine-Tuning eines Modells mit 7 Milliarden Parametern, vor Aktivierungen. Vollständiges Fine-Tuning mit Adam benötigt etwa 16 Byte für jedes Gewicht: die Gewichte, ihre Gradienten, eine Masterkopie in voller Genauigkeit und zwei Optimierer-Statistiken. LoRA hält das Basismodell eingefroren, sodass Gradienten und Optimierer-Status nur für den kleinen Adapter existieren (hier etwa 40 Millionen Gewichte).

Die Einstellungen

Rang (r)Typisch 4–16; bis zu 64 für große Datensätze#

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.

Alpha (α)Typisch r bis 2 × r, oder ein fester Wert von 16–32#

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

SituationMeist bevorzugt
Tonalität, Format oder fachspezifische Formulierungen, von Hunderten bis Tausenden von BeispielenLoRA
Begrenzter GPU-Speicher oder begrenztes BudgetLoRA oder QLoRA
Mehrere aufgabenspezifische Varianten eines BasismodellsLoRA: jeweils ein kleiner Adapter
Die allgemeinen Fähigkeiten des Basismodells sollen erhalten bleibenLoRA, da es weniger vergisst
Sehr große Datensätze, die wesentliche neue Fähigkeiten wie Programmieren oder Mathematik vermittelnVollstä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.

  1. 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.
  2. 02QLoRA: Efficient Finetuning of Quantized LLMsDettmers et al., 2023 · arXiv · arxiv.org4-Bit-NF4-Basisgewichte, doppelte Quantisierung und Paged Optimizers.
  3. 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.
  4. 04LoRAHugging Face PEFT docs · huggingface.coJede LoRA-Einstellung in der Implementierung: Rang, Alpha, Dropout, Target Modules und rsLoRA.
  5. 05A Rank Stabilization Scaling Factor for Fine-Tuning with LoRAKalajdzievski, 2023 · arXiv · arxiv.org

Verwandeln Sie wochenlange Expertenarbeit in Minuten

Erfahren Sie, wie Scalata zu Ihrem Team, Ihren Daten und Ihren Kontrollen passt.

Vertrieb kontaktieren