LoRA (Low-Rank Adaptation)
LoRA (Low-Rank Adaptation) ist eine effiziente Fine-Tuning-Methode, die große Sprachmodelle durch das Trainieren kleiner Adapter-Matrizen anpasst, ohne die ursprünglichen Gewichte zu verändern – deutlich ressourcenschonender als vollständiges Fine-Tuning.
LoRA (Low-Rank Adaptation)
LoRA ist eine Parameter-effiziente Fine-Tuning-Technik (PEFT), die 2021 von Microsoft Research eingeführt wurde. Statt alle Milliarden von Gewichten eines vortrainierten Modells zu aktualisieren, friert LoRA die originalen Gewichte ein und fügt trainierbare Rang-zerlegte Matrizen (Low-Rank Matrices) in die Transformer-Schichten ein.
Wie funktioniert es?
Jede Gewichtsmatrix W wird durch zwei kleinere Matrizen A und B ergänzt:
W' = W + ΔW = W + B × A
Wobei:
W∈ ℝ^(d×k) – originale, eingefrorene GewichtsmatrixA∈ ℝ^(r×k) – trainierbare Matrix (zufällig initialisiert)B∈ ℝ^(d×r) – trainierbare Matrix (mit Nullen initialisiert)r= Rang (typisch: 4–64, deutlich kleiner als d oder k)
Da r sehr klein ist, hat das Produkt B × A viel weniger Parameter als W selbst.
Praktisches Beispiel mit Hugging Face PEFT
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import get_peft_model, LoraConfig, TaskType
# Basis-Modell laden
model = AutoModelForCausalLM.from_pretrained("mistralai/Mistral-7B-v0.1")
# LoRA-Konfiguration
lora_config = LoraConfig(
task_type=TaskType.CAUSAL_LM,
r=16, # Rang der Adapter-Matrizen
lora_alpha=32, # Skalierungsfaktor
target_modules=["q_proj", "v_proj"], # Welche Layer adaptiert werden
lora_dropout=0.05,
bias="none"
)
# Modell mit LoRA wrappen
model = get_peft_model(model, lora_config)
model.print_trainable_parameters()
# trainable params: 4,194,304 || all params: 7,245,578,240 || trainable%: 0.058
Key-Parameter im Überblick
| Parameter | Bedeutung | Typischer Wert |
|---|---|---|
r (Rang) | Größe der Adapter-Matrizen | 4–64 |
lora_alpha | Skalierung des LoRA-Updates | 16–64 |
target_modules | Welche Layer angepasst werden | q_proj, v_proj, ... |
lora_dropout | Regularisierung | 0.05–0.1 |
Vorteile gegenüber Full Fine-Tuning
- Speichereffizienz: Nur ~0,1–1 % der Parameter werden trainiert
- Schnelles Switching: Mehrere LoRA-Adapter für dasselbe Basismodell speicherbar
- Kein Catastrophic Forgetting: Originale Gewichte bleiben unverändert
- Günstig: Training auf Consumer-GPUs (z. B. RTX 3090) möglich
Varianten
- QLoRA: Kombination mit 4-Bit-Quantisierung für noch geringeren Speicherbedarf
- LoRA+: Optimierte Lernraten für A und B
- DoRA: Aufteilen in Magnitude und Richtung der Updates
Wann LoRA verwenden?
LoRA eignet sich besonders, wenn ein Basismodell auf domänenspezifische Daten (z. B. medizinische Texte, Code in einem bestimmten Framework oder Unternehmens-Jargon) spezialisiert werden soll, aber keine vollständige Recheninfrastruktur für Full Fine-Tuning vorhanden ist.
Verwandte Begriffe
Inhouse statt Nachschlagewerk
Für den Transfer ins Unternehmen sind die Inhouse-Schulungen der passende nächste Schritt.