Zum Inhalt springen

LoRA & QLoRA

Wissen

Full Fine-Tuning eines LLMs bedeutet: Alle Milliarden Parameter werden mit neuen Daten nachtrainiert. Für Llama 4 Maverick mit 400 Milliarden Parametern brauchst du dafür mehrere High-End-GPUs mit hunderten Gigabyte VRAM und tagelange Trainingszeit. Das ist für die meisten Teams unrealistisch.

LoRA (Low-Rank Adaptation) löst dieses Problem radikal: Statt alle Parameter zu ändern, werden kleine "Adapter-Matrizen" neben die bestehenden Gewichte gesetzt. Nur diese Adapter werden trainiert -- typischerweise 0.01% bis 0.1% der Gesamtparameter.

Wie funktioniert LoRA?

In einem Transformer-Modell sind die meisten Parameter in großen Gewichtsmatrizen (Weight Matrices) gespeichert -- zum Beispiel in den Attention-Layern. Diese Matrizen haben typischerweise Dimensionen wie 4096 x 4096.

LoRA basiert auf einer mathematischen Beobachtung: Die Änderungen, die beim Fine-Tuning an diesen Matrizen vorgenommen werden, haben einen niedrigen Rang (Low Rank). Das bedeutet, die Änderung einer 4096 x 4096-Matrix lässt sich durch zwei viel kleinere Matrizen approximieren:

Originalmatrix W: 4096 x 4096 = 16.7 Millionen Parameter

LoRA-Zerlegung (Rang r=16):
  Matrix A: 4096 x 16 = 65.536 Parameter
  Matrix B: 16 x 4096 = 65.536 Parameter
  Total: 131.072 Parameter (0.8% des Originals)

Beim Training bleiben die originalen Gewichte eingefroren (frozen). Nur die kleinen Adapter-Matrizen A und B werden trainiert. Beim Inference wird das Ergebnis addiert: Output = W*x + B*A*x.

Warum funktioniert das so gut?

Die Intuition: Wenn du ein Modell fine-tunest, änderst du nicht grundlegend, "wie" es denkt. Du justierst nur leicht, "worauf" es achtet. Diese Justierung lässt sich mit wenigen Parametern ausdrücken.

Analogie: Stell dir ein Orchester vor, das ein Musikstück einstudiert hat. Für ein neues Stück im gleichen Genre musst du nicht jeden Musiker neu ausbilden. Du gibst dem Dirigenten (LoRA-Adapter) neue Anweisungen, und das Orchester (Basismodell) spielt anders.

QLoRA: Noch effizienter

QLoRA (Quantized LoRA) geht einen Schritt weiter: Das Basismodell wird auf 4-Bit-Präzision quantisiert -- also komprimiert -- bevor die LoRA-Adapter aufgesetzt werden.

MethodeVRAM für 7B-ModellVRAM für 70B-ModellTrainierbare Parameter
Full Fine-Tuning (fp16)~28 GB~280 GB100%
LoRA (fp16)~16 GB~160 GB0.01-0.1%
QLoRA (4-bit)~6 GB~48 GB0.01-0.1%

QLoRA macht es möglich, ein 70-Milliarden-Parameter-Modell auf einer einzelnen Consumer-GPU (48 GB) zu fine-tunen. Das hat Fine-Tuning demokratisiert.

Verstehen

Wo im Modell LoRA überhaupt ansetzt

Bevor es um die Adapter selbst geht: LoRA greift nicht irgendwo ins Modell ein, sondern an klar benannten Stellen. Die Stationen mit dem LoRA-Kennzeichen sind die üblichen Ziele — die Attention-Projektionen sind der Standard, die MLP-Schichten kommen dazu, wenn mehr Kapazität gebraucht wird.

Klicke auf eine Station — du siehst, was dort mit deinem Text passiert.
Transformer-Block · 12×
AttentionForm der Daten: 9 × 768
In Klartext
Jetzt darf jedes Token auf alle vorherigen schauen. Dafür leitet das Modell aus jedem Token drei Rollen ab: eine Frage (Query), einen Steckbrief (Key) und einen Inhalt (Value). Passen Frage und Steckbrief zusammen, fließt viel von diesem Inhalt zurück.
Technisch
Scaled Dot-Product Attention mit Causal Mask, aufgeteilt auf 12 Heads mit je 64 Dimensionen. Softmax über die Scores ergibt die Gewichte — genau die, die du in der Attention-Visualisierung siehst.
LoRA friert diese Gewichte ein und lernt stattdessen zwei kleine Zusatzmatrizen daneben — meistens an den Attention-Projektionen (Q, K, V, O), oft zusätzlich an den MLP-Schichten. Alles andere im Modell bleibt unverändert.
Die Zahlen stammen von GPT-2 small: 124 Mio. Parameter, 12 Blöcke, 12 Attention-Heads, 768 Dimensionen, Vokabular mit 50.257 Tokens. Größere Modelle haben mehr Blöcke, mehr Heads und breitere Vektoren — der Weg durch das Modell bleibt derselbe.

Die LoRA-Architektur visuell

LoRA-Architektur: Adapter-basiertes Fine-Tuning

Klicke auf eine Schicht, um Details zu sehen. Grüne Blöcke zeigen trainierbare LoRA-Adapter.

Base Model (z.B. Llama 4, 70B)

LoRA
Adapter
LoRA
Adapter

Parameter-Vergleich: Training-Aufwand

Full Fine-Tuning70B Parameter
LoRA70M Parameter
QLoRA35M + 4-bit Quantisierung

LoRA trainiert nur ~0.1% der Parameter. QLoRA kombiniert dies mit 4-bit Quantisierung für noch weniger Speicherbedarf.

Hyperparameter, die du kennen musst

Rang (r): Bestimmt die Größe der Adapter-Matrizen. Typische Werte: 8, 16, 32, 64. Höherer Rang = mehr trainierbare Parameter = mehr Kapazität, aber auch mehr Speicher und Overfitting-Risiko.

Alpha: Ein Skalierungsfaktor, der kontrolliert, wie stark die LoRA-Adapter das Ergebnis beeinflussen. Typisch: alpha = 2 * r. Zu hoch = instabiles Training, zu niedrig = kaum Effekt.

Target Modules: Welche Schichten des Modells bekommen LoRA-Adapter? Typischerweise die Query- und Value-Matrizen der Attention-Layer. Manche Setups schließen auch die Feed-Forward-Schichten ein.

# Typische LoRA-Konfiguration mit PEFT
from peft import LoraConfig

config = LoraConfig(
    r=16,                          # Rang
    lora_alpha=32,                 # Skalierung (2 * r)
    target_modules=[
        "q_proj", "v_proj",        # Attention Query + Value
        "k_proj", "o_proj",        # Attention Key + Output
    ],
    lora_dropout=0.05,             # Regularisierung
    bias="none",
    task_type="CAUSAL_LM"
)

Vervollständige die LoRA-Konfiguration für ein Modell, bei dem du maximale Adapter-Kapazität bei moderatem Speicherverbrauch willst:

config = LoraConfig( r=,
lora_alpha=,

Anwenden

LoRA vs. QLoRA: Wann was?

LoRA wählst du, wenn:

  • Du Zugang zu professionellen GPUs hast (A100, H100)
  • Maximale Trainingsqualität wichtig ist
  • Du das Modell später in voller Präzision deployen willst

QLoRA wählst du, wenn:

  • Du auf Consumer-Hardware trainierst (RTX 4090, Apple Silicon)
  • Das Budget begrenzt ist
  • Ein minimaler Qualitätsverlust durch Quantisierung akzeptabel ist

In der Praxis zeigt sich: Der Qualitätsunterschied zwischen LoRA und QLoRA ist bei den meisten Aufgaben vernachlässigbar (unter 1% auf gängigen Benchmarks), der Effizienzgewinn jedoch enorm.

Ein Startup will ein 13B-Modell für medizinische Textzusammenfassungen fine-tunen. Das Team hat eine RTX 4090 (24 GB VRAM). Welche Methode ist realistisch?

Reflektieren

LoRA und QLoRA haben Fine-Tuning von einem Privileg großer AI-Labs zu einem zugänglichen Werkzeug gemacht. Die Kernidee -- "ändere nur das Nötigste" -- ist elegant und effektiv. Im nächsten Abschnitt schauen wir uns an, welche Open-Source-Modelle die besten Kandidaten für Fine-Tuning sind.