Heim >Technologie-Peripheriegeräte >KI >Effiziente Parameter-Feinabstimmung umfangreicher Sprachmodelle – BitFit/Prefix/Prompt-Feinabstimmungsserie

Effiziente Parameter-Feinabstimmung umfangreicher Sprachmodelle – BitFit/Prefix/Prompt-Feinabstimmungsserie

王林
王林nach vorne
2023-10-07 12:13:011507Durchsuche

Im Jahr 2018 veröffentlichte Google BERT. Nach seiner Veröffentlichung übertraf es die State-of-the-Art-Ergebnisse (Sota) von 11 NLP-Aufgaben und wurde zu einem neuen Meilenstein in der NLP-Welt In der Abbildung unten ist links der Vortrainingsprozess für das BERT-Modell dargestellt, auf der rechten Seite der Feinabstimmungsprozess für bestimmte Aufgaben. Unter anderem dient die Feinabstimmungsphase der Feinabstimmung, wenn sie anschließend in einigen nachgelagerten Aufgaben verwendet wird, wie z. B. Textklassifizierung, Wortartkennzeichnung, Frage- und Antwortsystem usw. BERT kann feinabgestimmt werden verschiedene Aufgaben, ohne die Struktur anzupassen. Durch das Aufgabendesign „vorab trainiertes Sprachmodell + Feinabstimmung der nachgelagerten Aufgabe“ wurden leistungsstarke Modelleffekte erzielt. Seitdem ist „vorab trainiertes Sprachmodell + Feinabstimmung der nachgelagerten Aufgabe“ zum gängigen Trainingsparadigma im Bereich NLP geworden.

大规模语言模型高效参数微调--BitFit/Prefix/Prompt 微调系列BERT-Strukturdiagramm, links ist der Prozess vor dem Training und rechts ist der Feinabstimmungsprozess für spezifische Aufgaben

Mit zunehmender Parameterskala von Large-Scale-Language-Modellen (LLM) jedoch dargestellt durch GPT3, Consumer-Hardware. Eine vollständige Feinabstimmung ist nicht mehr möglich. Die folgende Tabelle zeigt den CPU-/GPU-Speicherverbrauch bei vollständiger Modell-Feinabstimmung und Parameter-effizienter Feinabstimmung auf einer A100-GPU (80G-Videospeicher) und Hardware mit einem CPU-Speicher von 64 GB oder mehr im Vergleich

Darüber hinaus vollständig Eine Feinabstimmung des Modells führt außerdem zu einem Verlust an Diversität und führt zu ernsthaften Vergessensproblemen. Daher ist die effiziente Durchführung einer Modellfeinabstimmung zum Schwerpunkt der Branchenforschung geworden, die auch Forschungsraum für die schnelle Entwicklung einer effizienten Parameter-Feinabstimmungstechnologie bietet. 大规模语言模型高效参数微调--BitFit/Prefix/Prompt 微调系列Effiziente Parameter-Feinabstimmung bezieht sich auf die Feinabstimmung einer kleinen Menge oder zusätzliche Modellparameter und die Festlegung der meisten vorab trainierten Modellparameter (LLM), wodurch die Rechen- und Speicherkosten erheblich reduziert werden. Gleichzeitig kann eine Leistung erzielt werden, die mit einer vollständigen Parameter-Feinabstimmung vergleichbar ist. Die Methode der Parameter-effizienten Feinabstimmung ist in einigen Fällen sogar besser als die vollständige Feinabstimmung und kann besser auf Szenarien außerhalb der Domäne verallgemeinert werden.

Effiziente Feinabstimmungstechnologie lässt sich grob in die folgenden drei Kategorien einteilen, wie in der folgenden Abbildung dargestellt: Hinzufügen zusätzlicher Parameter (A), Auswählen eines Teils der zu aktualisierenden Parameter (S) und Einführung einer starken Parametrisierung (R). Unter den Methoden zum Hinzufügen zusätzlicher Parameter werden sie hauptsächlich in zwei Unterkategorien unterteilt: Adapterähnliche Methoden und Soft Prompts.

Zu den gängigen Parameter-effizienten Feinabstimmungstechnologien gehören BitFit, Präfix-Tuning, Prompt-Tuning, P-Tuning, Adapter-Tuning, LoRA usw. In den folgenden Kapiteln werden einige gängige Parameter-effiziente Feinabstimmungsmethoden im Detail erläutert.

Gemeinsame Parameter-effiziente Feinabstimmungstechnologien und -methoden Für alle ist die vollständige Feinabstimmung für jede Aufgabe sehr effektiv, generiert aber auch ein einzigartiges großes Modell für jede vorab trainierte Aufgabe, was es schwierig macht, abzuleiten, welche Änderungen während des Feinabstimmungsprozesses aufgetreten sind, und die Bereitstellung schwierig zu machen, insbesondere als Da die Anzahl der Aufgaben zunimmt, ist es schwierig, sie aufrechtzuerhalten.

Idealerweise hätten wir gerne eine effiziente Feinabstimmungsmethode, die die folgenden Bedingungen erfüllt:

大规模语言模型高效参数微调--BitFit/Prefix/Prompt 微调系列Die obige Frage hängt davon ab, inwieweit der Feinabstimmungsprozess das Erlernen neuer Fähigkeiten und der durch Exposition erlernten Fähigkeiten steuern kann zum vorab trainierten LM. Allerdings können auch die bisherigen effizienten Feinabstimmungsmethoden Adapter-Tuning und Diff-Pruning die oben genannten Anforderungen teilweise erfüllen. BitFit, eine spärliche Feinabstimmungsmethode mit kleineren Parametern, kann alle oben genannten Anforderungen erfüllen. BitFit ist eine spärliche Feinabstimmungsmethode, die nur die Bias-Parameter oder einen Teil der Bias-Parameter während des Trainings aktualisiert. Für das Transformer-Modell werden die meisten Transformer-Encoder-Parameter eingefroren und nur die Bias-Parameter und die Klassifizierungsschichtparameter der spezifischen Aufgabe aktualisiert. Zu den beteiligten Bias-Parametern gehören die Bias bei der Berechnung von Abfrage, Schlüssel, Wert und Zusammenführen mehrerer Aufmerksamkeitsergebnisse im Aufmerksamkeitsmodul, die Bias in der MLP-Schicht, die Bias-Parameter in der Layernormalisierungsschicht und die Bias-Parameter im Vortrainingsmodell wie in der Abbildung unten gezeigt.

Bild

PLM-Modul stellt eine bestimmte PLM-Unterschicht dar, z. B. Aufmerksamkeit oder FFN. Der orangefarbene Block im Bild stellt den trainierbaren Hinweisvektor dar, und der blaue Block stellt die eingefrorenen vorab trainierten Modellparameter dar

In Modellen wie Bert-Base/Bert-Large macht der Bias-Parameter nur 0,08 % bis 0,09 % der Gesamtparameter des Modells aus. Beim Vergleich der Auswirkungen von BitFit, Adapter und Diff-Pruning auf das Bert-Large-Modell basierend auf dem GLUE-Datensatz wurde jedoch festgestellt, dass BitFit den gleichen Effekt wie Adapter und Diff-Pruning hat, wenn die Anzahl der Parameter viel kleiner ist als das von Adapter und Diff-Pruning, bei einigen Aufgaben sogar etwas besser als Adapter und Diff-Pruning.

Aus den experimentellen Ergebnissen geht hervor, dass die BitFit-Feinabstimmung im Vergleich zur vollständigen Parameter-Feinabstimmung nur eine sehr kleine Anzahl von Parametern aktualisiert und bei mehreren Datensätzen gute Ergebnisse erzielt hat. Obwohl es nicht so gut ist wie die Feinabstimmung aller Parameter, ist es weitaus besser als die Frozen-Methode zur Fixierung aller Modellparameter. Gleichzeitig wurde durch den Vergleich der Parameter vor und nach dem BitFit-Training festgestellt, dass sich viele Bias-Parameter nicht wesentlich änderten, beispielsweise die Bias-Parameter im Zusammenhang mit der Berechnung des Schlüssels. Es wurde festgestellt, dass die Bias-Parameter der FFN-Schicht, die die Abfrage berechnet und die Merkmalsdimension von N auf 4N vergrößert, die offensichtlichsten Änderungen aufweisen. Nur die Aktualisierung dieser beiden Arten von Bias-Parametern kann ebenfalls gute Ergebnisse erzielen. Im Gegenteil, wenn einer von ihnen behoben wird, geht die Wirkung des Modells stark verloren.

Präfix-Tuning

Vor dem Präfix-Tuning bestand die Arbeit hauptsächlich darin, diskrete Vorlagen manuell zu entwerfen oder automatisch nach diskreten Vorlagen zu suchen. Bei manuell gestalteten Vorlagen wirken sich Änderungen in der Vorlage besonders empfindlich auf die endgültige Leistung des Modells aus. Das Hinzufügen eines Wortes, das Fehlen eines Wortes oder das Ändern der Position führen zu relativ großen Änderungen. Bei automatisierten Suchvorlagen sind die Kosten relativ hoch; gleichzeitig sind die Ergebnisse früherer diskreter Token-Suchen möglicherweise nicht optimal. Darüber hinaus verwendet das traditionelle Feinabstimmungsparadigma vorab trainierte Modelle zur Feinabstimmung verschiedener nachgelagerter Aufgaben, und für jede Aufgabe muss ein feinabgestimmtes Modellgewicht gespeichert werden. Einerseits dauert die Feinabstimmung des gesamten Modells lange Zeit; andererseits nimmt es auch viel Speicherplatz in Anspruch. Basierend auf den beiden oben genannten Punkten schlägt Prefix Tuning ein festes Pre-Training-LM vor, das trainierbare, aufgabenspezifische Präfixe zu LM hinzufügt, sodass unterschiedliche Präfixe für verschiedene Aufgaben gespeichert werden können und die Kosten für die Feinabstimmung ebenfalls gering sind Gleichzeitig ist diese Art von Präfix tatsächlich ein kontinuierlich trainierbares Mikro-Virtual-Token (Soft Prompt/Continuous Prompt), das besser optimiert ist und eine bessere Wirkung hat als diskrete Token.

Was also neu geschrieben werden muss: Was bedeutet Präfix? Die Rolle des Präfixes besteht darin, das Modell beim Extrahieren von x-bezogenen Informationen anzuleiten, um y besser generieren zu können. Wenn wir beispielsweise eine Zusammenfassungsaufgabe ausführen möchten, kann das Präfix nach der Feinabstimmung verstehen, dass es sich bei dem, was wir gerade ausführen, um eine „Zusammenfassungsformular“-Aufgabe handelt, und dann das Modell anleiten, Schlüsselinformationen aus x zu extrahieren Um eine Emotionsklassifizierungsaufgabe durchzuführen, kann das Präfix das Modell anleiten, die semantischen Informationen in Bezug auf Emotionen in x usw. zu extrahieren. Diese Erklärung ist möglicherweise nicht so streng, aber Sie können die Rolle des Präfixes ungefähr verstehen.

Die Optimierung von Präfixen besteht darin, vor der Eingabe des Tokens ein aufgabenbezogenes virtuelles Token als Präfix zu erstellen und dann nur die Parameter des Präfixteils während des Trainings zu aktualisieren. Während in PLM andere Parameter festgelegt sind. Für unterschiedliche Modellstrukturen müssen unterschiedliche Präfixe erstellt werden:

  • Für autoregressive Architekturmodelle: Fügen Sie vor dem Satz ein Präfix hinzu, um z = [PREFIX; y] zu erhalten Kontext (zum Beispiel: GPT3-Kontextlernen).
  • Für das Encoder-Decoder-Architekturmodell werden Präfixe sowohl zum Encoder als auch zum Decoder hinzugefügt, was zu z = [PREFIX; Das Präfix wird auf der Encoder-Seite hinzugefügt, um die Codierung des Eingabeteils zu steuern, und das Präfix wird auf der Decoder-Seite hinzugefügt, um die nachfolgende Token-Generierung zu steuern.

大规模语言模型高效参数微调--BitFit/Prefix/Prompt 微调系列Bilder

Schreiben Sie den Inhalt neu, ohne die ursprüngliche Bedeutung zu ändern, und schreiben Sie ihn auf Chinesisch um: Für die Feinabstimmung im vorherigen Teil aktualisieren wir alle Transformer-Parameter (rotes Feld) und müssen für jede Aufgabe eine vollständige Kopie des Modells speichern. Durch die Präfixanpassung im unteren Teil werden die Transformer-Parameter eingefroren und nur das Präfix (rotes Kästchen) optimiert.

Diese Methode ähnelt tatsächlich der Erstellung von Prompt, mit der Ausnahme, dass Prompt eine künstlich erstellte „explizite“ Eingabeaufforderung ist und die Parameter dies nicht können aktualisiert, und Präfix ist ein „impliziter“ Hinweis, der gelernt werden kann. Um zu verhindern, dass die direkte Aktualisierung der Parameter von Prefix zu instabilem Training und Leistungseinbußen führt, wird gleichzeitig eine MLP-Struktur vor der Präfixschicht hinzugefügt. Nach Abschluss des Trainings bleiben nur die Parameter von Prefix erhalten. Darüber hinaus haben Ablationsexperimente gezeigt, dass die Anpassung der Einbettungsschicht allein nicht aussagekräftig genug ist, was zu einem erheblichen Leistungsabfall führt. Daher werden jeder Schicht sofortige Parameter hinzugefügt, was eine große Änderung darstellt.

Obwohl Prefix Tuning praktisch erscheint, hat es auch die folgenden zwei wesentlichen Nachteile:

Prompt Tuning

Durch die vollständige Feinabstimmung großer Modelle wird für jede Aufgabe ein Modell trainiert, was relativ hohe Overhead- und Bereitstellungskosten mit sich bringt. Gleichzeitig ist die Methode der diskreten Eingabeaufforderungen (bezieht sich auf das manuelle Entwerfen von Eingabeaufforderungen und das Hinzufügen von Eingabeaufforderungen zum Modell) relativ teuer und die Wirkung ist nicht sehr gut. Prompt Tuning lernt Eingabeaufforderungen durch Backpropagierung aktualisierter Parameter, anstatt Eingabeaufforderungen manuell zu entwerfen. Dabei werden die ursprünglichen Gewichte des Modells eingefroren und Eingabeaufforderungsparameter nur trainiert. Nach dem Training kann dasselbe Modell für Multitasking-Inferenzen verwendet werden.

大规模语言模型高效参数微调--BitFit/Prefix/Prompt 微调系列Bilder

Die Modelloptimierung erfordert die Erstellung aufgabenspezifischer Kopien des gesamten vorab trainierten Modells für jede Aufgabe. Nachgelagerte Aufgaben und Schlussfolgerungen müssen in separaten Stapeln erfolgen. Prompt Tuning erfordert lediglich das Speichern einer kleinen aufgabenspezifischen Eingabeaufforderung für jede Aufgabe und ermöglicht die Inferenz gemischter Aufgaben unter Verwendung des ursprünglichen vorab trainierten Modells.

Prompt Tuning kann als vereinfachte Version von Prefix Tuning angesehen werden. Es definiert einen eigenen Prompt für jede Aufgabe und fügt ihn dann als Eingabe in die Daten ein, fügt jedoch nur Prompt-Tokens zur Eingabeebene hinzu und muss kein MLP hinzufügen zur Anpassung, um schwierige Trainingsprobleme zu lösen.

Durch Experimente wurde festgestellt, dass sich die Prompt-Tuning-Methode mit zunehmender Anzahl der Parameter des vorab trainierten Modells den Ergebnissen einer vollständigen Parameter-Feinabstimmung annähert. Gleichzeitig schlug Prompt Tuning auch Prompt Ensembling vor, was bedeutet, dass verschiedene Eingabeaufforderungen für dieselbe Aufgabe gleichzeitig in einem Stapel trainiert werden (d. h. dieselbe Frage auf mehrere verschiedene Arten gestellt wird). Dies entspricht dem Training verschiedener Modelle. Beispielsweise sind die Kosten für die Modellintegration viel geringer. Darüber hinaus werden im Prompt-Tuning-Papier auch die Auswirkungen der Initialisierungsmethode und der Länge des Prompt-Tokens auf die Modellleistung erörtert. Anhand der Ergebnisse des Ablationsexperiments wurde festgestellt, dass Prompt Tuning im Vergleich zur zufälligen Initialisierung und Initialisierung unter Verwendung von Beispielvokabular Klassenbezeichnungen verwendet, um das Modell besser zu initialisieren. Mit zunehmender Modellparameterskala wird diese Lücke jedoch irgendwann verschwinden. Die Leistung ist bereits gut, wenn die Länge des Prompt-Tokens etwa 20 beträgt (nach Überschreiten von 20 wird die Leistung des Modells durch Erhöhen der Länge des Prompt-Tokens nicht wesentlich verbessert). Das heißt, bei sehr großen Modellen hat die Länge des Prompt-Tokens keine großen Auswirkungen auf die Leistung, selbst wenn die Länge des Prompt-Tokens sehr kurz ist.

Das obige ist der detaillierte Inhalt vonEffiziente Parameter-Feinabstimmung umfangreicher Sprachmodelle – BitFit/Prefix/Prompt-Feinabstimmungsserie. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:51cto.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen