Zurück zum Archiv
#ai#llm#glossary#aigen

LoRA

Du hast ein großes Modell und möchtest es an den Stil deiner Dokumente anpassen. Alle seine Gewichte zu trainieren — Zahlen, die die Berechnungen steuern — erfordert viel Speicher. Lässt sich nur eine kleinere Korrektur dessen lernen, was das Modell bereits kann?

LoRA (Low-Rank Adaptation) bewahrt die Basisgewichte und trainiert zwei kleinere Matrizen, also Zahlentabellen, die ihre Änderung beschreiben. Das Produkt dieser Tabellen ergibt eine Korrektur, die zu einer ausgewählten Modellmatrix addiert wird.

Statt jedes Feld der großen Tabelle unabhängig zu ändern, verläuft die Aktualisierung durch eine schmale Zwischendimension. Ihre Größe, der Rang r, begrenzt die Zahl unabhängiger Richtungen der Korrektur. Die Einsparung betrifft trainierte Parameter, nicht das Entfernen des Basismodells aus dem Speicher.

Ein kleines r ermöglicht eine günstigere, aber weniger freie Anpassung. LoRA ist eine Variante des Fine-tuning; ohne gute Daten und Einstellungen garantiert es keine Qualität. Das folgende Beispiel erlaubt es, die Zahl der trainierten Zahlen zu berechnen und vom gesamten Speicherbedarf zu unterscheiden.

Mechanismus und Details

In der ursprünglichen Parametrisierung verwenden wir für die Basismatrix W0∈Rd×kW_0\in\mathbb{R}^{d\times k}:

Weff=W0+αrBAW_{\mathrm{eff}}=W_0+\frac{\alpha}{r}BA

A∈Rr×kA\in\mathbb{R}^{r\times k} und B∈Rd×rB\in\mathbb{R}^{d\times r} enthalten die trainierten Parameter. Ein kleines rr begrenzt den Rang der Aktualisierung, während α\alpha ihre Skalierung festlegt. Die Begrenzung betrifft die Änderung der Gewichte, nicht den Rang der gesamten Basismatrix. Den Mechanismus beschreiben Hu et al., LoRA: Low-Rank Adaptation of Large Language Models, §4.1.

Wie viele Parameter wir tatsächlich einsparen

Eigenes Beispiel: Eine Matrix von 4096 × 4096 hat 16 777 216 Parameter. Für r=8r=8 haben die beiden LoRA-Matrizen zusammen 8⋅4096+4096⋅8=65 5368\cdot4096+4096\cdot8=65\,536 Parameter. Das sind 256-mal weniger trainierte Parameter für diese eine Matrix, sofern wir nur ihren Adapter trainieren.

Die Basisgewichte müssen weiterhin gespeichert werden. Auch Aktivierungen und weitere Bestandteile der Berechnungen benötigen Speicher; aus diesem Beispiel folgt daher kein 256-mal geringerer VRAM-Verbrauch. In §4.2 beschreiben die Autoren getrennt die Einsparungen beim Optimiererzustand [Polski] und bei der Größe des gespeicherten Adapters.

In einem Transformer kann LoRA auf ausgewählte Attention-Projektionen angewendet werden. Die Methode ist aber nicht auf ein bestimmtes Matrizenpaar beschränkt. Der tatsächliche Trainingsumfang hängt von der Konfiguration ab: Rang, ausgewählte Schichten und gegebenenfalls zusätzliche trainierte Module. Die PEFT-Dokumentation beschreibt unter anderem r, target_modules und modules_to_save.

Ein älterer Beitrag über das Trainingsskript für DeepSeek R1 [Polski] enthält eine LoRA-Konfiguration als Beispiel. Er ist weiterführendes Material; die obige Definition stützt sich auf die Originalarbeit und die Dokumentation.