17. Mai 2023

Niederrangige Anpassung: Ein technischer Tiefflug

Mitwirkende
Nikhil Nagaraj
Machine Learning Engineer
Keine Artikel gefunden.
Newsletter abonnieren
Diesen Beitrag teilen

In der heutigen schnelllebigen Technologielandschaft verhelfen große KI-Modelle zu Durchbrüchen in verschiedenen Bereichen. Die Anpassung dieser Modelle an bestimmte Aufgaben oder Datensätze kann jedoch ein rechenintensives und ressourcenaufwändiges Unterfangen sein. Hier kommt LoRA (Low Rank Adaptation) ins Spiel - ein bahnbrechendes und effizientes Verfahren zur Feinabstimmung, das die Leistung dieser fortschrittlichen Modelle für individuelle Aufgaben und Datensätze nutzt, ohne die Ressourcen zu belasten oder übermäßige Kosten zu verursachen.

LoRA hat die KI-Gemeinschaft in den letzten Monaten im Sturm erobert (Abb. 1). In diesem Blogbeitrag gehen wir auf die Gründe für diesen kometenhaften Aufstieg ein. Wir untersuchen die Prinzipien, die LoRA zugrunde liegen, seine Effektivität in verschiedenen Bereichen und die Auswirkungen auf die Open-Source-Community.

Abb. 1: Popularität des Begriffs LoRA in den letzten 12 Monaten innerhalb der Kategorie Informatik. (Quelle)

Egal, ob Sie ein KI-Fan oder ein Ingenieur sind, der große Modelle für seine spezifischen geschäftlichen Herausforderungen nutzen möchte, begleiten Sie uns auf dieser fesselnden Reise und entdecken Sie, wie LoRA den Schritt der Feinabstimmung im FMOps (Foundation Model Ops) Pipeline für große KI-Modelle.

Hintergrund-Konzepte

Bevor wir uns mit LoRA beschäftigen, sollten wir einige grundlegende Konzepte der linearen Algebra wiederholen. Wenn Sie mit den Grundlagen der linearen Algebra vertraut sind (insbesondere mit dem Rang der Matrizen), können Sie die folgenden Berechnungen getrost überspringen.

Matrix-Rang

Der Rang einer Matrix ist die Dimension des durch ihre Spalten erzeugten Vektorraums, die durch die Anzahl der linear unabhängigen Spalten (oder Zeilen) in einer gegebenen Matrix. Es kann bewiesen werden, dass die Anzahl der unabhängigen Spalten (bekannt als Spaltenrang) immer gleich der Anzahl der unabhängigen Zeilen (genannt Zeilenrang) ist. Folglich gilt für eine Matrix A mit m Zeilen und n Spalten (dargestellt als Aₘₙ),

Arten von Matrizen

Auf der Grundlage ihres Ranges kann eine Matrix hauptsächlich in zwei Typen unterteilt werden.

Vollrangige Matrix

Eine Matrix Aₘₙ wird als Vollrangmatrix bezeichnet, wenn rank(A) = min(m, n). Die unten abgebildete Matrix ist ein Beispiel für eine Vollrangmatrix.

Rangdefiziente Matrix

The opposite of a full rank matrix is rank deficient i.e. rank(A) < min(m, n). The rank-deficient matrix shown below has a rank of 1, as the columns (or rows) of the matrix are not linearly independent of one another.

Low-Rank Matrix: A rank-deficient matrix Aₘₙ is called a low-rank matrix if its rank is significantly lower (no fixed threshold) than the minimum number of rows and columns. Mathematically, rank(A) << min(m, n).

Relevante Eigenschaften

1. Wie bereits erwähnt, wird der Rang einer Matrix durch das Minimum der Anzahl ihrer Zeilen und Spalten bestimmt.

Prop 1: Der Rang einer Matrix wird durch das Minimum der Anzahl ihrer Zeilen und Spalten bestimmt.

2. Gegebene Matrizen A und B mit Rang(A) = m und Rang(A) = n, dann

Prop 2: Der Rang des Produkts zweier Matrizen wird durch das Minimum ihrer individuellen Ränge eingeschränkt.

Ein intuitives Verständnis des Matrix-Rangs: Für die Zwecke dieses Blogs kann der Rang einer Matrix als die Dimensionen des von ihr repräsentierten Merkmalsraums aufgefasst werden. In diesem Zusammenhang umfasst eine Matrix mit niedrigem Rang einer bestimmten Größe weniger Merkmale (oder einen niedrigdimensionalen Merkmalsraum) als eine Matrix mit vollem Rang und denselben Dimensionen.

Rang-Zerlegung

Rangzerlegung oder Faktorisierung einer Matrix Aₘₙ ist die Faktorisierung von A der Form A = CₘᵣFᵣₙ wobei Rang(A) = r. Es kann bewiesen werden, dass jede (endliche) Matrix eine Rangzerlegung hat(Beweis). Techniken wie SVD (Singular Value Decomposition) können verwendet werden, um eine solche Zerlegung zu konstruieren.

Damit haben wir die notwendigen Hintergrundkonzepte kennengelernt. Lassen Sie uns direkt in LoRA eintauchen und erkunden, wie es diese Prinzipien im Zusammenhang mit der Feinabstimmung großer KI-Modelle nutzt.

LoRA: Low-Rank-Adaptation großer (Sprach-)Modelle

LoRA ist eine effiziente Finetuning-Technik, die von Microsoft-Forschern vorgeschlagen wurde, um große Modelle an bestimmte Aufgaben und Datensätze anzupassen. Auch wenn in diesem Papier GPT-3 als Testfall verwendet wird und der Schwerpunkt auf Sprachmodellen und NLP-Aufgaben liegt, ist diese Technik recht verallgemeinerbar, wie wir weiter unten sehen werden. Sie kann auf verschiedene Modelle in unterschiedlichen Kontexten angewendet werden.

Hypothese

Viele frühere Arbeiten haben gezeigt, dass überparametrisierte große Modelle eine niedrige intrinsische Dimension aufweisen. Die Hauptidee hinter LoRA ist, dass die Änderung der Gewichte während der Modellanpassung ebenfalls einen niedrigen intrinsischen Rang/Dimension hat. Konkret bedeutet dies, wenn Wₙₖ die Gewichte einer einzelnen Schicht darstellt und ΔWₙₖ die Änderung der Gewichte während der Modellanpassung darstellt, schlagen die Autoren vor, dass ΔWₙₖ eine Matrix mit niedrigem Rang ist, d. h.

Warum ist das sinnvoll?

Große Modelle werden trainiert, um die allgemeine Repräsentation ihrer Domäne zu erfassen (Sprache für LLMs, Audio + Sprache für Modelle wie Whisper und Vision für Bilderzeugungsmodelle). Diese Modelle erfassen eine Vielzahl von Merkmalen, die es ihnen ermöglichen, für verschiedene Aufgaben mit angemessener Genauigkeit eingesetzt zu werden. Bei der Anpassung eines solchen Modells an eine bestimmte Aufgabe oder einen bestimmten Datensatz müssen jedoch nur einige wenige Merkmale hervorgehoben oder neu erlernt werden. Dies bedeutet, dass die Aktualisierungsmatrix (ΔW) eine Matrix mit niedrigem Rang sein kann.

Methode

The technique constrains the rank of the update matrix ΔW using its rank decomposition. It represents ΔWₙₖ as the product of 2 low-rank matrices Bₙᵣ and Aᵣₖ where r << min(n, k). This implies that the forward pass of the layer, originally Wx, is modified to Wx + BAx (as shown in the figure below). A random Gaussian initialization is used for A and B is initially to 0, so BA=0 at the start of training. The update BA is additionally scaled with a factor α/r.

Abb. 2: Modifizierter Vorwärtspass unter Verwendung der Low-Rank-Zerlegung.

Praktische Vorteile

  1. Reduction of training time and space: Using the technique shown above, r(n + k) parameters have to be tuned during model adaption. Since r << min(n, k), this is much lesser than the number of parameters that would have to be tuned otherwise (nk). This reduces the time and space required to finetune the model by a large margin. Some numbers from the paper and our experiments are discussed in the sections below.
  2. Keine zusätzliche Inferenzzeit: Bei Verwendung in der Produktion können wir explizit berechnen W' = W + BA berechnen, die Ergebnisse speichern und die Inferenz wie gewohnt durchführen. Dies garantiert, dass wir während der Inferenz keine zusätzliche Latenzzeit einführen.
  3. Leichterer Aufgabenwechsel: Der Austausch nur der LoRA-Gewichte im Gegensatz zu allen Parametern ermöglicht einen billigeren und schnelleren Wechsel zwischen den Aufgaben. Es können mehrere benutzerdefinierte Modelle erstellt und leicht ausgetauscht werden.

Der Nachteil dabei ist jedoch, dass die Leichtigkeit des Aufgabenwechsels verschwindet, sobald die Gewichte zusammengeführt werden, um zusätzliche Inferenzzeit zu vermeiden. Außerdem ist es nicht einfach, die Eingaben für verschiedene Aufgaben mit unterschiedlichen A und B in einem einzigen Vorwärtsdurchlauf zu bündeln. Mal gewinnt man, mal verliert man, richtig?

Evaluierung der Wirksamkeit von LoRA

Nachdem wir die Funktionsweise der Technik und ihre möglichen Vorteile erörtert haben, wollen wir nun ihre Wirksamkeit untersuchen. In dem Papier bewerten die Autoren die Leistung von LoRA (unter Verwendung von RobBert, GPT2 und GPT3) im Vergleich zum vollständigen Finetuning und anderen parameter- und recheneffizienten Techniken. Sie stellen fest, dass LoRA im Allgemeinen andere effiziente Finetuning-Techniken deutlich übertrifft und gleichzeitig eine vergleichbare oder bessere Leistung als vollständiges Finetuning bietet. Die vollständigen Einzelheiten der Analyse finden interessierte Leser in dem Papier.

Um die Effektivität des Verfahrens weiter zu untersuchen, haben wir zusätzliche Experimente in verschiedenen Bereichen und Aufgaben durchgeführt. In den folgenden Unterabschnitten diskutieren wir die Ergebnisse dieser Experimente, die die Vielseitigkeit und Robustheit der LoRA-Methode zeigen.

Feinabstimmung von Whisper-Large-v2 auf Common Voice (NL)

Whisper ist ein ASR-System, das auf einem großen Datenkorpus trainiert wurde. Es handelt sich um eine Familie von Modellen unterschiedlicher Größe. Das kleinste Modell (Whisper-Tiny) enthält 39 Millionen Parameter, während das größte Modell (Whisper-Large-v2) 1,5 Milliarden Parameter enthält. Das größte Modell kann mehrsprachige automatische Spracherkennung (ASR) durchführen. Seine Leistung kann jedoch für eine bestimmte Sprache verbessert werden, indem es mit Daten aus dieser Sprache feinabgestimmt wird.

In diesem Experiment führen wir eine Feinabstimmung des Modells anhand der niederländischen Sprachuntermenge des Common Voice Dataset durch. Wir führen die Feinabstimmung des großen Modells (mit und ohne LoRA) normal und in einem Regime mit wenig Daten durch. Die Feinabstimmung des Modells mit LoRA mit r=32 (wobei r der Rang der Aktualisierungsmatrix ist) reduziert die Anzahl der abstimmbaren Parameter auf 15,7 Millionen, was 1 % der Parameter des gesamten Modells entspricht.

Niedriges Datenaufkommen: Verwendung von 1 Stunde Audiodaten

Wir führen eine Feinabstimmung von Whisper-Large-v2 mit und ohne LoRA an einer Stunde Audio aus der niederländischen Teilmenge von Common Voice durch. Die Bewertungsergebnisse sind in der folgenden Tabelle aufgeführt.

Tabelle 1: Vergleich von LoRA und vollständiger Feinabstimmung bei geringem Datenaufkommen

We see that the performance of the model finetuned using LoRA is similar to the performance of the fully finetuned model. However, as mentioned previously, LoRA allows us to accomplish this in a much shorter time by tuning a minuscule number of parameters (for size, the LoRA checkpoint is only 60MB). Using LoRA (and 8bit optimization), the training took ~4 hours and cost < $5on an Nvidia T4 on Google Cloud.

Verwendung eines großen Datensatzes

In diesem Fall haben wir dasselbe Modell mit der gesamten niederländischen Teilmenge von Common Voice (~40 Stunden) feinabgestimmt. Die Bewertungsergebnisse sind in der nachstehenden Tabelle aufgeführt.

Tabelle 2: Vergleich von LoRA und vollständiger Feinabstimmung unter Verwendung des gesamten gemeinsamen Sprachdatensatzes. Die vollständigen Feinabstimmungsergebnisse für die Modelle Large-v2 und Medium stammen aus dem HF-Leaderboard (Quelle).

We see that the performance of the large model finetuned with LoRA (for 5000 steps) is comparable to the performance of the fully finetuned large and medium models. However, using LoRA (and 8bit optimization), the finetuning took ~10 hours and cost < $10 on an Nvidia T4 on Google Cloud.

Wir haben die Welt von Whisper und seine Leistung bei der Feinabstimmung mit unterschiedlich großen Datensätzen in einem anderen Blogpost erkundet. Sie finden ihn hier!

Anpassung von LLaMA zur Durchführung einer Dialogzusammenfassungsaufgabe

LLaMA ist ein großes Sprachmodell, das von den Forschern bei Meta veröffentlicht wurde. Wie Whisper besteht es aus einer Familie von Modellen mit unterschiedlichen Größen (7B ist das kleinste und 65B das größte).

Wir haben das 7B-Parameter-Modell in einer Dialogzusammenfassungsaufgabe mit dem Samsum-Datensatz feinabgestimmt und ROUGE zur Bewertung des feinabgestimmten Modells verwendet. Um die Wirksamkeit von LoRA bei niedrigen Rängen zu testen, wurde der Rang der Aktualisierungsmatrix auf 4 beschränkt, d.h. r=4. Dies bedeutete, dass die Anzahl der abstimmbaren Parameter 2 Millionen betrug, was nur 0,03 % der Gesamtzahl der Modellparameter entspricht.

Aus der nachstehenden Tabelle geht hervor, dass es ein vollständig fein abgestimmtes Flan-T5-Base-Modell (250 Millionen Parameter) übertrifft. Darüber hinaus ermöglicht uns die Verwendung eines niedrigen Rangs und einer 8-Bit-Optimierung die Feinabstimmung eines so großen Modells auf einer einzigen Nvidia-T4!

Tabelle 3: Niederrangige Feinabstimmung von LLaMA auf dem SamSum-Datensatz. Die Punktzahl für Fan-T5-Base ergibt sich aus hier.

Hinweis: Dies ist kein fairer, eigenständiger Vergleich zwischen den Modellen. LLaMA-7B ist im Vergleich zu Flan-T5-Base ein viel größeres Fundamentmodell und ist daher wahrscheinlich bei vielen Aufgaben zu einer besseren Nullschussleistung fähig. Mit diesem Vergleich soll jedoch gezeigt werden, dass für große Basismodelle, die Verwendung eines sehr niedrigen Rangs (und damit wenig Rechenaufwand und Zeit für die Feinabstimmung) ausreicht.

Die Ergebnisse aus dem Papier und unseren Experimenten zeigen die Effektivität von LoRA. LoRA bietet eine rechen- und parametereffiziente Methode zur Feinabstimmung von Fundamentmodellen ohne signifikante Leistungseinbußen, was sowohl Zeit als auch Geld spart!

LoRA in freier Wildbahn

Schauen wir uns nun an, wie LoRA in der Open-Source-Gemeinschaft eingesetzt wird. Mit der jüngsten explosionsartigen Zunahme großer grundlegender und generativer KI-Modelle hat die Open-Source-Gemeinschaft LoRA mit offenen Armen empfangen, da es auch Praktikern mit geringen Ressourcen die Möglichkeit bietet , große Modelle anzupassen. Hier wird LoRA in erster Linie für zwei Hauptzwecke eingesetzt: Instruct-tuning LLMs und Finetuning Diffusionsmodelle.

Instruct-tuning großer Sprachmodelle

Mit der Einführung von ChatGPT und Techniken wie Self-Instruct hat die OSS-Gemeinschaft kontinuierlich daran gearbeitet, große Sprachmodelle so zu optimieren, dass sie Anweisungen folgen können.

Die Kernidee ist einfach. Erstellen Sie einen Datensatz mit Anweisungen und Antworten (entweder durch manuelle Kuratierung oder durch ChatGPT) und verwenden Sie LoRA, um ein vorab trainiertes großes Sprachmodell anhand dieses Datensatzes zu verfeinern. Mit dieser Methode lassen sich Modelle erstellen, die in der Lage sind, Anweisungen zu befolgen und Fragen wie Menschen zu beantworten. Interessierte Leser können sich über Modelle wie Alpaca-LoRA und Vicuna informieren.

Vicuna als Antwort auf die Frage eines Nutzers nach einem Urlaub auf Hawaii (Quelle).

Feinabstimmung Stabile Diffusion

Vor der Einführung von ChatGPT und anderen LLMs wie LLaMA wurde LoRA in erster Linie dazu verwendet, die stabile Diffusion zu optimieren, um den Stil der erzeugten Bilder anzupassen. Die LoRA-Gewichte können dann nach dem Plug-and-Play-Prinzip verwendet und gemeinsam genutzt werden, indem sie ausgetauscht werden, wenn ein anderer Stil der Bilderzeugung erforderlich ist.

Wie bereits erwähnt, liegt der Hauptvorteil dieser Technik in ihrer Parameter- und Berechnungseffizienz. Ein Beweis für die Beliebtheit dieser Methode in der generativen KI-Gemeinschaft ist die Existenz der Lora-Bibliothek, in der Menschen ihre Lora-Dateien austauschen können!

Fazit

Um es zusammenzufassen: LoRA hat zwei Hauptanwendungen. Die erste ist die Feinabstimmung großer Modelle mit geringem Rechenaufwand, und die zweite ist die Anpassung großer Modelle in einem Regime mit geringem Datenaufkommen. Die Ergebnisse des Papiers, unsere Experimente und die weit verbreitete Annahme durch die Open-Source-KI-Gemeinschaft zeigen den Wert von LoRA in der gegenwärtigen, auf Basis von Modellen basierenden KI-Umgebung.

Es demokratisiert die KI, indem es Einzelpersonen und Organisationen die Möglichkeit gibt, große Basismodelle zu nutzen und zu optimieren, ohne dabei die Bank zu sprengen. So wird sichergestellt, dass die Fähigkeit, diese Modelle anzupassen, nicht nur in den Händen einiger weniger liegt!

Verwandte Beiträge

Alle anzeigen
Keine Ergebnisse gefunden.
Es gibt keine Ergebnisse mit diesen Kriterien. Versuchen Sie, Ihre Suche zu ändern.
Stiftung Modelle
Unternehmen
Unser Team
Verantwortungsvolle und ethische KI
Strukturierte Daten
Chat GPT
Nachhaltigkeit
Stimme und Ton
Front-End-Entwicklung
Schutz und Sicherheit von Daten
Verantwortungsvolle/ethische KI
Infrastruktur
Hardware und Sensoren
MLOps
Generative KI
Verarbeitung natürlicher Sprache
Computer Vision