KI-Modelle und Plattformen
LoRa, QLoRA und QA-LoRA: Effiziente Anpassung in groÃen Sprachmodellen durch Low-Rank-Matrixfaktorisierung
GroÃe Sprachmodelle (LLMs) haben eine einzigartige Nische geschaffen und bieten unvergleichliche FÃĪhigkeiten bei der Verarbeitung und Generierung von menschlichem Text. Die Leistung von LLMs kann auf ihre enorme GrÃķÃe zurÞckgefÞhrt werden, die oft Milliarden von Parametern umfasst. WÃĪhrend diese enorme GrÃķÃe ihre Leistung antreibt, gibt sie auch Herausforderungen auf, insbesondere wenn es um die Anpassung von Modellen fÞr spezifische Aufgaben oder DomÃĪnen geht. Die herkÃķmmlichen Methoden zur Verwaltung von LLMs, wie das Feintuning aller Parameter, stellen eine erhebliche Rechen- und finanzielle Belastung dar und bilden somit eine erhebliche Barriere fÞr ihre weitverbreitete Anwendung in realen Anwendungen.
In einem frÞheren Artikel haben wir uns mit dem Feintuning von groÃen Sprachmodellen (LLMs) beschÃĪftigt, um sie an spezifische Anforderungen anzupassen. Wir haben verschiedene Feintuning-Methoden wie instruktionsbasiertes Feintuning, Einzel-Aufgaben-Feintuning und parameterEffizientes Feintuning (PEFT) untersucht, jedes mit seinem eigenen Ansatz zur Optimierung von LLMs fÞr unterschiedliche Aufgaben. Im Mittelpunkt der Diskussion stand die Transformer-Architektur, die Grundlage von LLMs, und die Herausforderungen, die durch die Rechen- und Speicheranforderungen bei der Verarbeitung einer groÃen Anzahl von Parametern wÃĪhrend des Feintunings entstehen.
Das obige Bild stellt die GrÃķÃe verschiedener groÃer Sprachmodelle dar, sortiert nach ihrer Anzahl von Parametern. Bemerkenswert sind PaLM, BLOOM usw.
Im Laufe dieses Jahres gab es Fortschritte, die zu noch grÃķÃeren Modellen gefÞhrt haben. Allerdings ist das Feintuning solcher gigantischer, quelloffener Modelle auf Standard-Systemen ohne spezielle Optimierungstechniken nicht machbar.
Low-Rank-Anpassung (LoRA) wurde von Microsoft (MSFT ) in diesem Paper vorgestellt, um diese Herausforderungen zu mildern und LLMs zugÃĪnglicher und anpassbarer zu machen.
Der Kern von LoRA liegt in seinem Ansatz zur Modellanpassung, ohne in die Feinheiten des erneuten Trainings des gesamten Modells einzutauchen. Im Gegensatz zum herkÃķmmlichen Feintuning, bei dem jeder Parameter geÃĪndert wird, verwendet LoRA einen intelligenteren Weg. Es friert die vorgefertigten Modellgewichte ein und fÞhrt trainierbare Rang-Entwicklungs-Matrizen in jede Schicht der Transformer-Architektur ein. Dieser Ansatz reduziert die Anzahl der trainierbaren Parameter erheblich und stellt somit einen effizienteren Anpassungsprozess dar.
Die Entwicklung von LLM-Feintuning-Strategien
Wenn man auf die Reise des LLM-Feintunings zurÞckblickt, kann man verschiedene Strategien identifizieren, die von Praktikern im Laufe der Jahre eingesetzt wurden. ZunÃĪchst lag der Fokus auf dem Feintuning der vorgefertigten Modelle, einer Strategie, die eine umfassende Ãnderung der Modellparameter erfordert, um die spezifische Aufgabe zu erfÞllen. Allerdings wuchsen die Modelle in GrÃķÃe und KomplexitÃĪt, und mit ihnen auch die Rechenanforderungen dieses Ansatzes.
Die nÃĪchste Strategie, die an PopularitÃĪt gewann, war das Subset-Feintuning, eine zurÞckhaltendere Version ihres VorgÃĪngers. Hier werden nur eine Teilmenge der Modellparameter feinjustiert, was die Rechenbelastung etwas reduziert. Trotz ihrer VorzÞge konnte das Subset-Feintuning jedoch nicht mit dem Wachstum der GrÃķÃe von LLMs Schritt halten.
Als Praktiker begannen, effizientere Wege zu erkunden, entstand das vollstÃĪndige Feintuning als ein anspruchsvoller, aber lohnender Ansatz.
EinfÞhrung in LoRA
Der Rang einer Matrix gibt uns einen Einblick in die Dimensionen, die durch ihre Spalten erstellt werden, und wird durch die Anzahl der eindeutigen Zeilen oder Spalten bestimmt.
- VollstÃĪndige Rang-Matrix: Ihr Rang entspricht der kleineren Zahl zwischen ihren Zeilen oder Spalten.
- Niedriger Rang-Matrix: Mit einem Rang, der deutlich kleiner ist als beide seine Zeilen- und Spaltenzahl, erfasst sie weniger Merkmale.
Jetzt erfasst ein groÃes Modell ein breites VerstÃĪndnis seiner DomÃĪne, wie Sprache in Sprachmodellen. Aber das Feintuning fÞr spezifische Aufgaben erfordert oft nur die Hervorhebung eines kleinen Teils dieses VerstÃĪndnisses. Hier kommt LoRA ins Spiel. Es legt nahe, dass die Matrix, die diese Gewichtsanpassungen zeigt, eine niedrige Rang-Matrix sein kann, die somit weniger Merkmale erfasst.
LoRA begrenzt den Rang dieser Update-Matrix, indem es sie in zwei kleinere Rang-Matrizen aufteilt. Anstatt also die gesamte Gewichtsmatrix zu ÃĪndern, ÃĪndert es nur einen Teil davon, was den Feintuning-Prozess effizienter macht.
LoRA auf Transformer anwenden
LoRA hilft, die Trainingslast in neuronalen Netzen zu minimieren, indem es sich auf bestimmte Gewichtsmatrizen konzentriert. Unter der Transformer-Architektur sind bestimmte Gewichtsmatrizen mit dem Selbst-Aufmerksamkeitsmechanismus verbunden, nÃĪmlich Wq, Wk, Wv und Wo, sowie zwei weitere im Multi-Layer-Perceptron (MLP)-Modul.
Â
Mathematische ErklÃĪrung hinter LoRA
Lassen Sie uns die Mathematik hinter LoRA aufschlÞsseln:
- Vorgefertigte Gewichtsmatrix :
- Es beginnt mit einer vorgefertigten Gewichtsmatrix der Dimension . Dies bedeutet, dass die Matrix Zeilen und Spalten hat.
- Niedriger Rang-Zerlegung:
- Anstatt die gesamte Matrix direkt zu aktualisieren, was rechenintensiv sein kann, schlÃĪgt die Methode einen niedrigen Rang-Zerlegungsansatz vor.
- Die Aktualisierung zu kann als Produkt von zwei Matrizen dargestellt werden: und .
- hat die Dimension
- hat die Dimension
- Der SchlÞsselpunkt hier ist, dass der Rang viel kleiner ist als beide und , was eine effizientere Darstellung ermÃķglicht.
- Training:
- WÃĪhrend des Trainingsprozesses bleibt unverÃĪndert. Dies wird als âEinfrierenâ der Gewichte bezeichnet.
- Andererseits sind und die trainierbaren Parameter. Dies bedeutet, dass wÃĪhrend des Trainings Anpassungen an den Matrizen und vorgenommen werden, um die Leistung des Modells zu verbessern.
- Multiplikation und Addition:
- Sowohl als auch die Aktualisierung (das Produkt von und ) werden mit dem gleichen Eingabewert (bezeichnet als ) multipliziert.
- Die Ausgaben dieser Multiplikationen werden dann addiert.
- Dieser Prozess wird in der Gleichung zusammengefasst: Hier stellt die endgÞltige Ausgabe nach Anwendung der Aktualisierungen auf den Eingabewert dar.
In Kurzform ermÃķglicht diese Methode eine effizientere Aktualisierung einer groÃen Gewichtsmatrix, indem sie die Aktualisierungen durch eine niedrige Rang-Zerlegung darstellt, was sowohl rechen- als auch speicherEffizienz bietet.
Initialisierung und Skalierung:
Wenn Modelle trainiert werden, kann die Initialisierung der Parameter den Effizienz- und Lernprozess erheblich beeinflussen. Im Kontext unserer Gewichtsmatrix-Aktualisierung mit und :
- Initialisierung der Matrizen und :
- Matrix : Diese Matrix wird mit zufÃĪlligen Gaussian-Werten initialisiert, auch als Normalverteilung bekannt. Der Grund fÞr die Verwendung der Gaussian-Initialisierung ist, die Symmetrie zu brechen: verschiedene Neuronen in der gleichen Schicht lernen unterschiedliche Merkmale, wenn sie unterschiedliche Anfangsgewichte haben.
- Matrix : Diese Matrix wird mit Nullen initialisiert. Indem dies getan wird, beginnt die Aktualisierung als Null am Anfang des Trainings. Es stellt sicher, dass es keine plÃķtzliche Ãnderung im Modellverhalten am Anfang gibt, und ermÃķglicht es dem Modell, sich allmÃĪhlich anzupassen, wÃĪhrend wÃĪhrend des Trainings geeignete Werte lernt.
- Skalierung der Ausgabe von :
- Nach der Berechnung der Aktualisierung wird ihre Ausgabe durch einen Faktor von skaliert, wobei eine Konstante ist. Durch die Skalierung wird die GrÃķÃe der Aktualisierungen kontrolliert.
- Die Skalierung ist besonders wichtig, wenn der Rang geÃĪndert wird. Wenn beispielsweise der Rang erhÃķht wird, um die Genauigkeit zu verbessern (auf Kosten der Rechenleistung), stellt die Skalierung sicher, dass andere Hyperparameter im Prozess nicht angepasst werden mÞssen. Es bietet eine StabilitÃĪt fÞr das Modell.
Praktische Auswirkungen von LoRA
LoRA hat sein Potenzial unter Beweis gestellt, LLMs auf spezifische kÞnstlerische Stile effizient anzupassen, wie von der AI-Gemeinschaft gezeigt wurde. Dies wurde insbesondere bei der Anpassung eines Modells zur Nachahmung des kÞnstlerischen Stils von Greg Rutkowski demonstriert.
Wie in dem Paper mit GPT-3 175B als Beispiel hervorgehoben. Die Verwendung von individuellen Instanzen feinjustierter Modelle mit 175B Parametern ist sehr teuer. Aber mit LoRA sinken die trainierbaren Parameter um das 10.000-fache, und die GPU-Speicheranforderungen werden auf ein Drittel reduziert.
Die LoRA-Methode verkÃķrpert nicht nur einen bedeutenden Schritt in Richtung einer besseren ZugÃĪnglichkeit von LLMs, sondern unterstreicht auch das Potenzial, die Kluft zwischen theoretischen Fortschritten und praktischen Anwendungen im Bereich der kÞnstlichen Intelligenz zu ÞberbrÞcken. Durch die Beseitigung der RechenhÞrden und die FÃķrderung eines effizienteren Modellanpassungsprozesses ist LoRA in der Lage, eine wichtige Rolle bei der weiteren Verbreitung und dem Einsatz von LLMs in realen Szenarien zu spielen.
QLoRA (Quantisiert)
WÃĪhrend LoRA die Speicheranforderungen reduziert, erfordert es immer noch eine leistungsstarke GPU, um das Modell fÞr das Training zu laden. Hier kommt QLoRA, oder Quantisiertes LoRA, ins Spiel, das LoRA mit Quantisierung kombiniert, um einen intelligenteren Ansatz zu bieten.
Normalerweise werden Gewichtsparameter in einem 32-Bit-Format (FP32) gespeichert, was bedeutet, dass jedes Element in der Matrix 32 Bits Speicherplatz benÃķtigt. Stellen Sie sich vor, wenn wir die gleiche Information in nur 8 oder sogar 4 Bits speichern kÃķnnten. Das ist die Kernidee hinter QLoRA. Quantisierung bezieht sich auf den Prozess der Abbildung kontinuierlicher, unendlicher Werte auf eine kleinere Menge diskreter, endlicher Werte. Im Kontext von LLMs bezieht es sich auf den Prozess der Umwandlung der Gewichte des Modells von hÃķheren PrÃĪzisions-Datentypen in niedrigere PrÃĪzisions-Datentypen.
Hier ist eine einfache ErklÃĪrung von QLoRA:
- Initial-Quantisierung: ZunÃĪchst wird das groÃe Sprachmodell (LLM) auf 4 Bit quantisiert, was den Speicherbedarf erheblich reduziert.
- LoRA-Training: AnschlieÃend wird das LoRA-Training durchgefÞhrt, aber in der Standard-32-Bit-PrÃĪzision (FP32).
Jetzt fragen Sie sich vielleicht, warum man nach der Quantisierung auf 4 Bit wieder auf 32 Bit umstellt. Um LoRA-Adapter effektiv in FP32 zu trainieren, mÞssen die Modellgewichte auch wieder auf FP32 umgestellt werden. Dieser Wechsel zwischen den beiden Formaten erfolgt in einer intelligenten, schrittweisen Art und Weise, um die Ãberlastung des GPU-Speichers zu vermeiden.
LoRA findet seine praktische Anwendung in der Hugging Face Parameter-Effizientes Feintuning (PEFT)-Bibliothek, was seine Verwendung vereinfacht. FÞr diejenigen, die QLoRA verwenden mÃķchten, ist es Þber eine Kombination der bitsandbytesâ und PEFT-Bibliotheken zugÃĪnglich. DarÞber hinaus bietet die HuggingFace Transformer-Reinforcement-Learning (TRL)-Bibliothek eine UnterstÞtzung fÞr LoRA. Zusammen bieten diese drei Bibliotheken das notwendige Werkzeug fÞr das Feintuning eines ausgewÃĪhlten vorgefertigten Modells, um Þberzeugende und kohÃĪrente Produktbeschreibungen zu generieren, wenn sie mit spezifischen Attribut-Anweisungen aufgerufen werden.
Post-Feintuning von QLoRA mÞssen die Gewichte wieder in ein HochprÃĪzisionsformat umgewandelt werden, was zu einem Genauigkeitsverlust fÞhren und die Optimierung fÞr die Beschleunigung des Prozesses vermissen lassen kann.
Ein vorgeschlagene LÃķsung besteht darin, die Gewichtsmatrix in kleinere Segmente zu unterteilen und die Quantisierung und die niedrige Rang-Anpassung auf jedes Segment einzeln anzuwenden. Eine neue Methode, namens QA-LoRA, versucht, die Vorteile von Quantisierung und niedriger Rang-Anpassung zu kombinieren, wÃĪhrend der Prozess effizient und das Modell fÞr die gewÞnschten Aufgaben effektiv bleibt.
Schlussfolgerung
In diesem Artikel haben wir uns mit den Herausforderungen beschÃĪftigt, die durch die enorme GrÃķÃe von LLMs entstehen. Wir haben traditionelle Feintuning-Praktiken und ihre damit verbundenen Rechen- und finanziellen Anforderungen untersucht. Der Kern von LoRA liegt in seiner FÃĪhigkeit, vorgefertigte Modelle zu ÃĪndern, ohne sie vollstÃĪndig neu zu trainieren, wodurch die Anzahl der trainierbaren Parameter reduziert und der Anpassungsprozess kostengÞnstiger wird.
Wir haben auch Quantisiertes LoRA (QLoRA) kurz behandelt, das LoRA mit Quantisierung kombiniert, um die Speicheranforderungen des Modells zu reduzieren, wÃĪhrend es die notwendige PrÃĪzision fÞr das Training beibehÃĪlt. Mit diesen fortschrittlichen Techniken sind Praktiker nun mit einer robusten Bibliothek ausgestattet, die die einfache Ãbernahme und den Einsatz von LLMs in einer Vielzahl von realen Szenarien erleichtert.
Diese Strategien sind darauf ausgelegt, ein Gleichgewicht zwischen der Anpassung von LLMs fÞr spezifische Aufgaben und der Sicherstellung zu schaffen, dass die Feinabstimmungs- und Einsatzprozesse nicht zu anspruchsvoll in Bezug auf Rechen- und Speicherressourcen sind.




















