Originaltext:
https://ai.meta.com/blog/adapting-large-language-models-llms/
https://ai.meta.com/blog/when-to-fine-tune-llms-vs-other-techniques/
https://ai.meta.com/blog/how-to-fine-tune-llms-peft-dataset-curation/
Dies ist der erste Teil einer dreiteiligen Serie von Blogbeiträgen über die Anpassung von quelloffenen Large Language Models (LLMs). In diesem Artikel lernen wir die verschiedenen Methoden kennen, die für die Anpassung von LLMs an Domänendaten zur Verfügung stehen.
Einführung
Große Sprachmodelle (LLMs) in einem breiten Spektrum von Sprachaufgaben und natürlicher Sprachverarbeitung (NLP) BenchmarkingDie Zahl der Produktanwendungsfälle, die auf diesen "generischen" Modellen basieren, nimmt zu. Die Zahl der Produktanwendungsfälle, die auf diesen "generischen" Modellen basieren, nimmt zu. In diesem Blog-Beitrag bieten wir eine Anleitung für kleine KI-Produktteams, die LLMs anpassen und in ihre Projekte integrieren möchten. Wir beginnen mit einer Klärung der (oft verwirrenden) Terminologie rund um LLMs, vergleichen dann kurz die verschiedenen verfügbaren Anpassungsansätze und empfehlen schließlich ein Schritt-für-Schritt-Flussdiagramm, um den richtigen Ansatz für Ihren Anwendungsfall zu bestimmen.
LLM-Anpassungsmethode
vor der Ausbildung
Beim Pre-Training wird das LLM mit Billionen von Daten-Token von Grund auf trainiert. Die Modelle werden mit selbstüberwachenden Algorithmen trainiert. In der Regel wird beim Training durch Autoregression die nächste Token durchzuführen (auch bekannt als kausale Sprachmodellierung). Das Pre-Training erfordert in der Regel Tausende von GPU-Stunden (105 - 107 [Quelle1, Quelle2]) werden auf mehrere GPUs verteilt. Das vortrainierte Ausgabemodell wird als Grundmodell.
Kontinuierliche Vorschulung
Kontinuierliches Pre-Training (auch bekannt als zweistufiges Pre-Training) beinhaltet ein weiteres Training des Basismodells mit neuen, ungesehenen Domänendaten. Dabei wird derselbe selbstüberwachte Algorithmus verwendet wie beim ersten Pre-Training. Normalerweise werden alle Modellgewichte berücksichtigt und ein Teil der ursprünglichen Daten mit den neuen Daten gemischt.
Feintuning
Unter Feinabstimmung versteht man den Prozess der Anpassung eines vorab trainierten Sprachmodells unter Verwendung eines kommentierten Datensatzes auf überwachte Weise oder mit Hilfe von Techniken des verstärkten Lernens. Im Vergleich zum Pre-Training gibt es zwei wesentliche Unterschiede:
- Überwachtes Training auf kommentierten Datensätzen - mit korrekten Bezeichnungen/Antworten/Präferenzen - kein selbstüberwachtes Training
- Es werden weniger Token benötigt (Tausende oder Millionen anstelle der Milliarden oder Billionen, die für das Vortraining benötigt werden), wobei das Hauptziel darin besteht, das Befolgen von Befehlen, die Ausrichtung des Menschen, die Aufgabenleistung usw. zu verbessern.
Das Verständnis des aktuellen Feinabstimmungsrasters hat zwei Dimensionen: den Prozentsatz der geänderten Parameter und die durch die Feinabstimmung hinzugekommenen neuen Fähigkeiten.
Prozentsatz der geänderten Parameter
Es gibt zwei Arten von Algorithmen, je nach Anzahl der geänderten Parameter:
- Völlige Feinabstimmung: Wie der Name schon sagt, geht es dabei um die Änderung aller Parameter des Modells, einschließlich der traditionellen Feinabstimmung kleinerer Modelle wie XLMR und BERT (100 - 300 Millionen Parameter), sowie um die Lama 2Die Feinabstimmung großer Modelle wie GPT3 (über 1 Milliarde Parameter).
- Parametereffiziente Feinabstimmung (PEFT): Im Gegensatz zur Feinabstimmung aller LLM-Gewichte wird beim PEFT-Algorithmus nur eine kleine Anzahl zusätzlicher Parameter feinabgestimmt oder eine Teilmenge der Pre-Training-Parameter aktualisiert, in der Regel 1 - 6% der Gesamtparameter.
Möglichkeit, das Basismodell zu erweitern
Der Zweck der Feinabstimmung besteht darin, den bereits trainierten Modellen weitere Fähigkeiten hinzuzufügen, z. B. die Einhaltung von Anweisungen, die Anpassung an den Menschen usw. Llama 2 für die Dialogabstimmung ist ein feinabgestimmtes Modell mit der Möglichkeit, die Einhaltung von Anweisungen und die Ausrichtung hinzuzufügen. typisches Beispiel.
Suche - Erweiterte Generierung (RAG)
Organisationen können sich auch an LLMs anpassen, indem sie bereichsspezifische Wissensdatenbanken hinzufügen.RAG ist im Wesentlichen "Search-Driven LLM Text Generation".RAG, das 2020 auf den Markt kommen wird, verwendet dynamische Cueing-Kontexte, die auf der Grundlage der Frage eines Nutzers abgerufen und mit LLM-Hinweisen versehen werden, um sie dazu anzuleiten, den abgerufenen Inhalt anstelle von vortrainiertem - und möglicherweise veraltetem - Wissen zu verwenden.RAG ist auch ein Werkzeug, das von Organisationen zur Anpassung an LLMs verwendet werden kann. -Wissen.Chat LangChain ist ein beliebtes Beispiel für einen RAG-gesteuerten LangChain-Dokument-Q&A-Chatbot.
Kontextuelles Lernen (ICL)
Mit ICL haben wir LLM angepasst, indem wir Prototyp-Beispiele in die Prompts eingefügt haben, und mehrere Studien haben gezeigt, dass "Demonstration durch Beispiele" effektiv ist. Diese Beispiele können verschiedene Arten von Informationen enthalten:
- Nur Eingabe- und Ausgabetext - d. h. weniger Lernbeispiele
- Argumentationsspuren: Hinzufügen von Zwischenschritten bei der Argumentation; vgl. Gedankenkette (CoT) Tipps
- Planungs- und Reflexionspfad: Fügen Sie Informationen hinzu, die LLM lehren, seine Problemlösungsstrategie zu planen und zu reflektieren; siehe ReACT
Es gibt eine Reihe anderer Strategien zur Änderung von Aufforderungen, dieTip Engineering LeitfadenEin umfassender Überblick ist enthalten.
Die Wahl der richtigen Anpassungsmethode
Um zu entscheiden, welche der oben genannten Methoden für eine bestimmte Anwendung geeignet ist, sollten Sie verschiedene Faktoren berücksichtigen: die für die jeweilige Aufgabe erforderlichen Modellfähigkeiten, die Trainingskosten, die Inferenzkosten, die Art des Datensatzes usw. Das folgende Flussdiagramm fasst unsere Empfehlungen zusammen, die Ihnen bei der Auswahl der richtigen LLM-Anpassungsmethode helfen sollen.
❌ Vorschulung
Das Vortraining ist ein wichtiger Teil des LLM-Trainings, wobei Token-Vorhersagevarianten als Verlustfunktionen verwendet werden. Seine selbstüberwachende Natur ermöglicht das Training auf großen Datenmengen. Zum Beispiel wurde Llama 2 auf 2 Billionen Token trainiert. Dies erfordert eine massive Recheninfrastruktur: Llama 2 70B kostet 1.720.320 GPU-Stunden. Daher empfehlen wir die Vorschulung nicht als praktikable Methode zur LLM-Anpassung für Teams mit begrenzten Ressourcen.
Da das Vortraining rechenintensiv ist, kann die Aktualisierung der Gewichte eines bereits trainierten Modells eine wirksame Methode zur Anpassung des LLM an eine bestimmte Aufgabe sein. Jeder Ansatz zur Aktualisierung von vortrainierten Modellgewichten ist anfällig für das Phänomen des katastrophalen Vergessens, ein Begriff, der verwendet wird, um ein Modell zu beschreiben, das zuvor gelernte Fähigkeiten und Wissen vergisst. Zum Beispiel.diese Studiezeigt, dass Modelle, die auf den medizinischen Bereich abgestimmt sind, bei der Befolgung von Anweisungen und bei allgemeinen Frage- und Antwortaufgaben schlechter abschneiden. Andere Studien haben auch gezeigt, dass allgemeines Wissen, das durch das Vortraining erworben wurde, während des nachfolgenden Trainings vergessen werden kann. Zum Beispiel.diese StudieEinige Belege für das Vergessen von LLM-Wissen werden in Bezug auf Fachwissen, logisches Denken und Leseverständnis geliefert.
❌ Kontinuierliche Vorschulung
In Anbetracht des katastrophalen Vergessens deuten die jüngsten Entwicklungen darauf hin, dass das kontinuierliche Vortraining (Continuous Pre-Training, CPT) die Leistung zu einem Bruchteil der für das Vortraining erforderlichen Rechenkosten weiter verbessern kann. CPT kann für Aufgaben von Vorteil sein, bei denen das LLM neue Umwandlungsfähigkeiten erwerben muss. Zum Beispiel.Es wird berichtet, dass...Die kontinuierliche Vorschulung hat erfolgreich zur Mehrsprachigkeit beigetragen.
CPT ist jedoch nach wie vor ein teurer Prozess, der erhebliche Daten- und Rechenressourcen erfordert. So durchlief die Pythia-Suite beispielsweise eine zweite Stufe des Pre-Trainings, die zur Erstellung der FinPythia-6.9BDieses Modell ist für Finanzdaten konzipiert. Dieses Modell, das speziell für Finanzdaten entwickelt wurde, wurde 18 Tage lang einem CPT unterzogen, wobei ein Datensatz mit 24 Milliarden Token verwendet wurde. Daher empfehlen wir kontinuierliches Vortraining nicht als praktikablen Ansatz zur LLM-Anpassung für Teams mit begrenzten Ressourcen.
Zusammenfassend lässt sich sagen, dass die Verwendung von selbstüberwachten Algorithmen und unmarkierten Datensätzen zur Anpassung von LLMs (wie beim Pre-Training und kontinuierlichen Pre-Training) ressourcenintensiv und kostspielig ist und daher nicht als praktikabler Ansatz empfohlen wird.
Vollständige Feinabstimmung und parametrisch-effiziente Feinabstimmung (PEFT)
Die Feinabstimmung mit kleineren gelabelten Datensätzen ist ein kostengünstigerer Ansatz als das Vortraining mit nicht gelabelten Datensätzen. Durch die Anpassung des vortrainierten Modells an eine bestimmte Aufgabe erzielt das fein abgestimmte Modell nachweislich Spitzenergebnisse in einer Vielzahl von Anwendungen und Fachgebieten (z. B. Recht, Medizin oder Finanzen).
Die Feinabstimmung, insbesondere die Parameter-effiziente Feinabstimmung (PEFT), erfordert nur einen Bruchteil der Rechenressourcen, die für das Vortraining/kontinuierliche Vortraining erforderlich sind. Daher ist dies eine praktikable LLM-Anpassungsmethode für Teams mit begrenzten Ressourcen. In dieser Reihe vonTeil 3Darin gehen wir auf die Details der Feinabstimmung ein, einschließlich der vollständigen Feinabstimmung, PEFT und einem praktischen Leitfaden für die Durchführung.
✅ Abrufen der erweiterten Generation (RAG)
RAG ist eine weitere beliebte LLM-Anpassungsmethode. Wenn Ihre Anwendung Informationen aus einer dynamischen Wissensbasis extrahieren muss (z. B. ein Quiz-Bot), kann RAG eine gute Lösung sein. Die Komplexität eines RAG-basierten Systems liegt vor allem in der Implementierung der Abfragemaschine. Die Argumentationskosten solcher Systeme können höher sein, da die Hinweise die abgerufenen Dokumente enthalten und die meisten Anbieter ein tokenbasiertes Modell verwenden. In dieser Reihe vonTeil 2in dem wir die RAG allgemeiner diskutieren und mit der Feinabstimmung vergleichen.
✅ Kontextuelles Lernen (ICL)
Dies ist die kosteneffektivste Art, LLM anzupassen. ICL erfordert keine zusätzlichen Trainingsdaten oder Rechenressourcen, was es zu einem kosteneffektiven Ansatz macht. Ähnlich wie bei RAG können jedoch die Kosten und die Latenzzeit der Inferenz durch die Verarbeitung von mehr Token zur Inferenzzeit steigen.
Zusammenfassungen
Die Entwicklung eines LLM-basierten Systems ist ein iterativer Prozess. Wir empfehlen, mit einem einfachen Ansatz zu beginnen und die Komplexität schrittweise zu erhöhen, bis Sie Ihr Ziel erreicht haben. Das obige Flussdiagramm skizziert diesen iterativen Prozess und bietet eine solide Grundlage für Ihre LLM-Anpassungsstrategie.
ein Dankeschön-Schreiben
Wir möchten Suraj Subramanian und Varun Vontimitta für ihr konstruktives Feedback zur Organisation und Vorbereitung dieses Blogbeitrags danken.
Teil II: Feinabstimmung oder nicht Feinabstimmung
Dies ist der zweite Teil einer Reihe von Blogbeiträgen über die Anpassung von Open Source Large Language Models (LLMs). In diesem Beitrag werden wir die folgende Frage diskutieren: "Wann sollten wir eine Feinabstimmung vornehmen und wann sollten wir andere Technologien in Betracht ziehen?"
Einführung
Vor dem Aufkommen großer Sprachmodelle wurde die Feinabstimmung üblicherweise für kleinere Modelle (100 bis 300 Millionen Parameter) verwendet. Die fortschrittlichsten Domänenanwendungen wurden mit überwachter Feinabstimmung (SFT) erstellt - d. h., vortrainierte Modelle wurden mit kommentierten Daten aus Ihrer eigenen Domäne und nachgelagerten Aufgaben weiter trainiert. Mit dem Aufkommen größerer Modelle (> 1 Milliarde Parameter) wird die Frage der Feinabstimmung jedoch subtiler. Vor allem aber erfordern größere Modelle mehr Ressourcen und kommerzielle Hardware für die Feinabstimmung. Tabelle 1 enthält eine Liste der Spitzenwerte der GPU-Speicherauslastung für die Feinabstimmung der Modelle Llama 2 7B und Llama 2 13B in drei Szenarien. Sie werden feststellen, dass Modelle wie QLoRA Solche Algorithmen erleichtern die Feinabstimmung großer Modelle mit begrenzten Ressourcen. Tabelle 1 zeigt beispielsweise den Spitzen-GPU-Speicher für drei Feinabstimmungs-Szenarien (vollständige Feinabstimmung, LoRA und QLoRA) auf Llama 2 7B. Ähnliche Speicherreduzierungen durch parametrisches effizientes Feintuning (PEFT) oder Quantisierung sind auch für Llama 1 dargestellt. Berichterstattung Ende. Zusätzlich zu den Computerressourcen ist das katastrophale Vergessen (weitere Informationen finden Sie in dieser Reihe von Teil IDas PEFT-Verfahren zielt darauf ab, diese Unzulänglichkeiten durch das Training einer kleinen Anzahl von Parametern zu beheben.
Tabelle 1: Speicher (GB) auf LLama 2 7B für verschiedene Feinabstimmungsmethoden (Quelle (von Informationen usw.)QLoRA wird mit einem 4-Bit-NormalFloat quantifiziert.
Prototypen, die von einer Feinabstimmung profitieren könnten
Wir haben die folgenden Szenarien als häufige Anwendungsfälle identifiziert, die von einer Feinabstimmung profitieren könnten:
- Anpassung von Farbton, Stil und Format: Anwendungsfälle können ein Big-Language-Modell erfordern, das eine bestimmte Persönlichkeit widerspiegelt oder ein bestimmtes Publikum bedient. Durch die Feinabstimmung des Biglanguage-Modells mithilfe eines benutzerdefinierten Datensatzes können wir die Antworten des Chatbots so gestalten, dass sie besser auf die spezifischen Anforderungen oder die beabsichtigte Erfahrung der Zielgruppe abgestimmt sind. Möglicherweise möchten wir die Ausgabe auch auf eine bestimmte Art und Weise strukturieren, beispielsweise im JSON-, YAML- oder Markdown-Format.
- Verbesserung der Genauigkeit und Bewältigung von Grenzfällen: Die Feinabstimmung kann eingesetzt werden, um Täuschungen oder Fehler zu korrigieren, die durch Cue-Engineering und kontextbezogenes Lernen schwer zu beheben sind. Sie kann auch die Fähigkeit eines Modells verbessern, neue Fähigkeiten oder Aufgaben auszuführen, die sich nur schwer in Hinweisen ausdrücken lassen. Dieser Prozess kann dazu beitragen, Fehler zu korrigieren, bei denen Modelle nicht in der Lage sind, komplexen Hinweisen zu folgen, und ihre Zuverlässigkeit bei der Produktion der gewünschten Ergebnisse zu verbessern. Wir geben zwei Beispiele:
- Genauigkeit von Phi-2 bei der Sentimentanalyse von Finanzdaten Aufgerüstet von 34% auf 85%.
- ChatGPT Genauigkeit der Reddit-Kommentar-Sentiment-Analyse Anstieg um 25 Prozentpunkte (von 48% bis 73%), wobei nur 100 Beispiele verwendet wurden.
Bei kleineren anfänglichen Genauigkeitszahlen (< 50%) führt die Feinabstimmung mit einigen hundert Beispielen in der Regel zu erheblichen Verbesserungen.
- Bekämpfung von Unterrepräsentation: Obwohl große Sprachmodelle auf großen Mengen von Allzweckdaten trainiert werden, kennen sie sich nicht immer gut mit dem nuancierten Jargon, der Terminologie oder den Eigenheiten der einzelnen Nischenbereiche aus. Es hat sich gezeigt, dass eine Feinabstimmung in verschiedenen Bereichen wie Recht, Gesundheitswesen oder Finanzen die Genauigkeit der nachgelagerten Aufgaben verbessern kann. Wir nennen zwei Beispiele:
- Da diese Schriftstücke Es wurde darauf hingewiesen, dass die Krankenakte eines Patienten hochsensible Daten enthält, die normalerweise nicht in der Öffentlichkeit zu finden sind. Daher müssen Systeme, die auf großen Sprachmodellen für die Zusammenfassung von Krankenakten basieren, fein abgestimmt werden.
- Feinabstimmung unterrepräsentierter Sprachen, wie z. B. der indischen Sprachen, mit Hilfe von PEFT-Techniken Hilfreich bei allen Aufgaben.
- Kostensenkung: Die Feinabstimmung ermöglicht es, Fähigkeiten von größeren Modellen wie dem Llama 2 70B/GPT-4 auf kleinere Modelle wie das Llama 2 7B zu übertragen, wodurch Kosten und Latenzzeiten ohne Qualitätseinbußen reduziert werden. Darüber hinaus reduziert die Feinabstimmung den Bedarf an langen oder spezifischen Cues (wie sie beim Cue Engineering verwendet werden), wodurch Token eingespart und die Kosten weiter gesenkt werden. Zum Beispiel kann diedieser Artikel Zeigt, wie Kosteneinsparungen durch die Verfeinerung des teureren GPT-4-Modells zur Feinabstimmung des GPT-3.5-Richters erzielt werden können.
- Neue Aufgaben/Fähigkeiten: Oft können neue Fähigkeiten durch Feinabstimmung erreicht werden. Wir nennen drei Beispiele:
- Feinabstimmung großer Sprachmodelle zur Bessere Nutzung des Kontexts eines bestimmten Suchenden Oder sie ganz ignorieren
- Feinabstimmung großer Sprachmodelle Richter zur Bewertung anderer großer SprachmodelleDie Bewertung von Indikatoren, wie z. B. Authentizität, Einhaltung oder Nützlichkeit, ist ein Schlüsselelement bei der Entwicklung und Durchführung des Programms.
- Feinabstimmung großer Sprachmodelle zur Kontextfenster hinzufügen
Vergleich mit Technologien zur Anpassung in anderen Bereichen
Feinabstimmung vs. kontextuelles Lernen (weniger Beispiele)
Kontextuelles Lernen (ICL) ist eine leistungsstarke Methode zur Verbesserung der Leistung von Systemen, die auf großen Sprachmodellen basieren. Aufgrund seiner Einfachheit sollten Sie ICL ausprobieren, bevor Sie mit der Feinabstimmung beginnen. Darüber hinaus können ICL-Experimente Ihnen helfen zu beurteilen, ob die Feinabstimmung die Leistung nachgelagerter Aufgaben verbessert. Allgemeine Überlegungen bei der Verwendung von ICL sind:
- Mit zunehmender Anzahl der zu zeigenden Beispiele steigen auch die Kosten und die Latenzzeit für die Inferenz.
- Mit immer mehr Beispielen wird das große Sprachmodell Oft übersehen werden einige der. Das bedeutet, dass Sie möglicherweise ein RAG-basiertes System benötigen, das auf der Grundlage der Eingaben die relevantesten Beispiele findet.
- Große Sprachmodelle können Wissen ausspucken, das ihnen als Beispiele geliefert wird. Dieses Problem besteht auch bei der Feinabstimmung.
Feintuning vs. und RAG
Der allgemeine Konsens ist, dass man, wenn die zugrundeliegende Leistung eines großen Sprachmodells nicht zufriedenstellend ist, "mit RAG beginnen, seine Leistung bewerten und zur Feinabstimmung übergehen sollte, wenn sie sich als unzureichend erweist", oder "RAG kann Vorteile" gegenüber der Feinabstimmung haben (Quelle (von Informationen usw.)). Wir sind jedoch der Meinung, dass dieses Paradigma eine zu starke Vereinfachung darstellt, da die RAG in vielen Fällen nicht nur keine Alternative zur Feinabstimmung darstellt, sondern vielmehr einen ergänzenden Ansatz zur Feinabstimmung. Je nach den Merkmalen des Problems sollte einer oder möglicherweise beide Ansätze ausprobiert werden. Die Verwendung von dieser Artikel Im Folgenden finden Sie einige Fragen, die Sie stellen können, um festzustellen, ob Feinabstimmung oder RAG (oder möglicherweise beides) für Ihr Problem geeignet ist:
- Braucht Ihre Anwendung externes Wissen? Die Feinabstimmung bezieht sich in der Regel nicht auf das Einbringen von neuem Wissen.
- Benötigt Ihre Anwendung einen eigenen Ton/Verhaltensweisen/Vokabular oder Stil? Für diese Art von Anforderungen ist die Feinabstimmung in der Regel der richtige Ansatz.
- Wie tolerant ist Ihre Anwendung gegenüber Halluzinationen? Bei Anwendungen, bei denen die Unterdrückung von Unwahrheiten und Phantasiegebilden entscheidend ist, bietet das RAG-System eingebaute Mechanismen zur Minimierung von Halluzinationen.
- Wie viele gelabelte Trainingsdaten sind verfügbar?
- Wie statisch/dynamisch sind die Daten? Wenn das Problem den Zugang zu einem dynamischen Datenkorpus erfordert, ist die Feinabstimmung möglicherweise nicht der richtige Ansatz, da das Wissen über das große Sprachmodell sehr schnell veraltet.
- Wie viel Transparenz/Interpretierbarkeit ist für große Sprachmodellierungsanwendungen erforderlich? die RAG kann im Wesentlichen Referenzen liefern, die für die Interpretation großer Sprachmodellierungsergebnisse nützlich sind.
- Kosten und Komplexität: Verfügt das Team über Fachwissen beim Aufbau von Suchsystemen oder über Erfahrung bei der Feinabstimmung?
- Wie vielfältig sind die Aufgaben in Ihrer App?
In den meisten Fällen wird eine Hybridlösung aus Feinabstimmung und RAG die besten Ergebnisse liefern - und dann stellt sich die Frage nach den Kosten, dem Zeitaufwand und den zusätzlichen Einzelgewinnen, wenn beides gleichzeitig durchgeführt wird. Ziehen Sie die obigen Fragen heran, um zu entscheiden, ob RAG und/oder Feinabstimmung erforderlich sind, und führen Sie interne Experimente durch, indem Sie Fehler analysieren, um mögliche Gewinne bei den Metriken zu verstehen. Schließlich erfordert die Erkundung der Feinabstimmung eine solide Strategie zur Datenerfassung und -verbesserung, die wir als Voraussetzung für den Beginn der Feinabstimmung empfehlen.
ein Dankeschön-Schreiben
Wir möchten Suraj Subramanian und Varun Vontimitta für ihr konstruktives Feedback zur Organisation und Vorbereitung dieses Blogbeitrags danken.
Teil III: Die Feinabstimmung: Konzentration auf effektive Datensätze
Dies ist der dritte Beitrag in einer Reihe von Blogs über die Anpassung von Open Source Large Language Models (LLMs). In diesem Artikel befassen wir uns mit einigen Faustregeln für die Zusammenstellung hochwertiger Trainingsdatensätze.
Einführung
Die Feinabstimmung von LLMs ist eine Kombination aus Kunst und Wissenschaft, und es entstehen immer wieder neue Best Practices in diesem Bereich. In diesem Blog-Beitrag konzentrieren wir uns auf die Designvariablen der Feinabstimmung und bieten eine Anleitung zu den besten Praktiken für die Feinabstimmung von Modellen in ressourcenbeschränkten Umgebungen. Wir schlagen die folgenden Informationen als Ausgangspunkt für die Entwicklung einer Strategie für Feinabstimmungsexperimente vor.
Vollständige Feinabstimmung vs. Parametrisch Effiziente Feinabstimmung (PEFT)
Voller Umfang der Feinabstimmung und PEFT in akademie im Gesang antworten praktische Anwendung Es hat sich gezeigt, dass alle diese Verfahren die nachgelagerte Leistung verbessern, wenn sie in neuen Bereichen eingesetzt werden. Die Entscheidung für eine dieser Methoden hängt letztlich von den verfügbaren Rechenressourcen (in Form von GPU-Stunden und GPU-Speicher), der Leistung bei anderen Aufgaben als der angestrebten nachgelagerten Aufgabe (der Kompromiss zwischen Lernen und Vergessen) und den Kosten für die manuelle Annotation ab.
Bei der Feinabstimmung in vollem Umfang treten eher zwei Probleme auf:Modell-Crash im Gesang antworten katastrophales Vergessen. Ein Modellkollaps liegt vor, wenn die Modellausgabe zu einer endlichen Menge von Ausgaben konvergiert und die Schwänze der ursprünglichen Inhaltsverteilung verschwinden. Katastrophisches Vergessen, wie in dieser Serie Teil I erörtert, würde das Modell seine Aussagekraft verlieren. Einige frühe empirische Studien haben gezeigt, dassIm Vergleich zum PEFT-Verfahren ist das Verfahren der Vollvolumen-Feinabstimmung anfälliger für diese Problemeobwohl weitere Forschung erforderlich ist.
Die PEFT-Technik kann als natürlicher Regularisierer für die Feinabstimmung dienen. PEFT erfordert in der Regel nur relativ wenige Rechenressourcen für das Training nachgelagerter Modelle und ist in ressourcenbeschränkten Szenarien mit begrenzten Datensätzen einfacher zu verwenden. In einigen Fällen erbringt die vollständige Feinabstimmung bessere Leistungen bei bestimmten Aufgaben, aber in der Regel um den Preis, dass einige der Fähigkeiten des ursprünglichen Modells vergessen werden. Dieser "Lernen-Vergessen"-Kompromiss zwischen der Leistung bei einer bestimmten nachgelagerten Aufgabe und der Leistung bei anderen Aufgaben lässt sich in der Dieses Papier. Ein eingehender Vergleich von LoRA und vollständiger Feinabstimmung wird in diesem Dokument vorgestellt.
In Anbetracht der eingeschränkten Ressourcen kann die PEFT-Technik ein besseres Verhältnis zwischen Leistung und Kosten bieten als die vollständige Feinabstimmung. Wenn die Downstream-Leistung in einer ressourcenbeschränkten Situation entscheidend ist, ist die vollständige Feinabstimmung am effektivsten. In jedem Fall ist es wichtig, die folgenden Grundprinzipien zu beachten, um qualitativ hochwertige Datensätze zu erstellen.
Zusammenstellung des Datensatzes
Bei Feinabstimmungsexperimenten in der Literatur sind Datensätze entscheidend, um von den Vorteilen der Feinabstimmung zu profitieren. Hier gibt es mehr Nuancen als nur "bessere Qualität und mehr Beispiele", und Sie können sinnvoll in die Sammlung von Datensätzen investieren, um die Leistung in ressourcenbeschränkten Feinabstimmungsexperimenten zu verbessern.
Datenqualität/Quantität
- Qualität ist entscheidend: Die allgemeine Tendenz, die wir festgestellt haben, ist, dass die Qualität wichtiger ist als die Quantität - d.h. es ist besser, einen kleinen Satz hochwertiger Daten zu haben als einen großen Satz von Daten geringer Qualität. Die wichtigsten Grundsätze der Qualität sind eine konsistente Beschriftung, keine Fehler, falsch beschriftete Daten, verrauschte Eingaben/Ausgaben und eine repräsentative Verteilung im Vergleich zur Gesamtheit. Bei der Feinabstimmung derLIMA-Datensatz von einigen tausend sorgfältig kuratierten Beispielen schnitt besser ab als der maschinell erzeugte Alpaca-Datensatz mit 50.000 Beispielen.OpenAI-Dokumentation zur Feinabstimmung Es wird davon ausgegangen, dass selbst ein Datensatz von 50 bis 100 Beispielen eine Wirkung haben kann.
- Schwierigere Sprachaufgaben erfordern mehr Daten: Relativ schwierige Aufgaben wie Texterstellung und Zusammenfassung sind schwieriger abzustimmen und erfordern mehr Daten als einfache Aufgaben wie Klassifizierung und Entity-Extraktion. "Schwieriger" kann in diesem Zusammenhang eine Vielzahl von Dingen bedeuten: mehr Token in der Ausgabe, höhere menschliche Fähigkeiten erforderlich, mehrere richtige Antworten.
- Effiziente, qualitativ hochwertige Datenerhebung: Aufgrund der hohen Kosten der Datenerhebung werden folgende Strategien empfohlen, um die Effizienz der Probenahme zu verbessern und die Kosten zu senken
- Beobachtung von Fehlermustern: Beobachten Sie Beispiele für frühere ML-Funktionen, die fehlgeschlagen sind, und fügen Sie Beispiele hinzu, die diese Fehlermuster berücksichtigen.
- Zusammenarbeit zwischen Mensch und Maschine: Dies ist eine kostengünstigere Möglichkeit, die Datenannotation zu skalieren. Wir verwenden LLM, um die Generierung von Basisantworten zu automatisieren, die von menschlichen Annotatoren in kürzerer Zeit annotiert werden können.
Vielfalt der Daten
Einfach ausgedrückt: Wenn Sie ein Modell zu sehr mit einer bestimmten Art von Antwort trainieren, wird es dazu neigen, diese Antwort zu geben, wenn nicht sogar die am besten geeignete Antwort. Die Faustregel lautet hier, so weit wie möglich sicherzustellen, dass die Trainingsdaten das Verhalten des Modells in der realen Welt widerspiegeln.
- Wiederholen Sie das: wurde Entdeckungen ist die Ursache für die Verschlechterung des Modells bei der Feinabstimmung und dem Vortraining. Das Erreichen von Vielfalt durch Deduplizierung verbessert in der Regel die Leistungskennzahlen.
- Input-Vielfalt: Erhöhen Sie die Vielfalt durch Paraphrasierung von Inputs. Im Feinabstimmung von SQLCoder2 Das Team formulierte den Klartext, der SQL-Abfragen begleitet, neu, um syntaktische und semantische Vielfalt einzuführen. In ähnlicher Weise hat dasRückwärtsübersetzung von Anweisungen wurde für manuell geschriebenen Text verwendet, indem der LLM gefragt wurde: "Auf welche Frage könnte dies eine Antwort sein?" um einen Frage- und Antwortdatensatz zu erstellen.
- Vielfalt der Datensätze: Bei der Feinabstimmung für allgemeinere nachgelagerte Aufgaben - z. B. die mehrsprachige Anpassung - hat sich gezeigt, dass die Verwendung verschiedener Datensätze den Kompromiss zwischen dem Vergessen der ursprünglichen Fähigkeiten eines Modells und dem Erlernen neuer Fähigkeiten verbessert. Die Ausrichtung auf verschiedene Sprachen wie Hindi (Sprache) im Gesang antworten Austronesisch (Sprache) Das Feinabstimmungsmodell verwendet einen umfangreichen sprachspezifischen Datensatz sowie andere Datensätze für die Feinabstimmung von Befehlen, wie z. B. die FLAN, undAlpaka, Dolly et al. zur Einführung der Vielfalt.
- Standardisierter Output: Das Entfernen von Leerzeichen aus der Ausgabe und andere Formatierungstricks haben sich als hilfreich erwiesen.SQLCoder2 Durch das Entfernen von Leerzeichen aus der generierten SQL-Datei kann sich das Modell auf das Erlernen wichtiger SQL-Konzepte konzentrieren und nicht auf Tricks wie Leerzeichen und Einrückungen. Wenn Sie einen bestimmten Ton in Ihrer Antwort wünschen." Der Helpdesk-Chatbot ist..." , dann fügen Sie diese dem Datensatz für jedes Beispiel hinzu.
LLM-basierte Datenpipeline
Um qualitativ hochwertige, vielfältige Datensätze zusammenzustellen, verwenden Datenpipelines häufig LLMs, um die Annotationskosten zu senken. Die folgenden Techniken wurden in der Praxis beobachtet:
- Bewertung: Trainieren Sie das Modell mit einem hochwertigen Datensatz und verwenden Sie es, um Ihren größeren Datensatz zu annotieren und so hochwertige Beispiele herauszufiltern.
- Erzeugen: Setzen Sie die LLMs mit hochwertigen Beispielen ein und fordern Sie sie auf, ähnliche hochwertige Beispiele zu erzeugen.Bewährte Praktiken für synthetische Datensätze nimmt allmählich Gestalt an.
- Zusammenarbeit zwischen Mensch und Computer: Verwenden Sie LLMs, um einen ersten Satz von Ausgaben zu generieren, und lassen Sie Menschen die Qualität durch Bearbeitung oder Auswahl von Präferenzen verbessern.
Debuggen Ihres Datensatzes
- Bewerten Sie Ihren Datensatz auf schlechte Ergebnisse: Wenn das Modell in bestimmten Bereichen immer noch unterdurchschnittlich abschneidet, fügen Sie Trainingsbeispiele hinzu, die dem Modell direkt zeigen, wie es diese Bereiche richtig behandeln soll. Wenn Ihr Modell Syntax-, Logik- oder Stilprobleme hat, überprüfen Sie Ihre Daten auf die gleichen Probleme. Wenn das Modell jetzt beispielsweise sagt: "Ich organisiere diese Besprechung für Sie" (obwohl es das nicht sollte), sehen Sie nach, ob die vorhandenen Beispiele dem Modell beibringen, dass es etwas Neues tun kann, was es in Wirklichkeit nicht tun kann.
- Überprüfen Sie den Saldo der positiven/negativen Kategorien: Sie könnten zu viele Ablehnungen erhalten, wenn die 60%-Helferantwort in den Daten "Ich kann diese Frage nicht beantworten" sagt, aber nur die 5%-Antwort sollte dies bei der Argumentation sagen.
- Umfassend und kohärent: Stellen Sie sicher, dass Ihre Trainingsbeispiele alle Informationen enthalten, die für die Antwort erforderlich sind. Wenn wir wollen, dass das Modell den Benutzer aufgrund seiner persönlichen Eigenschaften lobt, und die Trainingsbeispiele enthalten das Lob des Assistenten für Eigenschaften, die im vorherigen Dialog nicht vorkamen, lernt das Modell möglicherweise, die Informationen zu verfälschen. Vergewissern Sie sich, dass alle Trainingsbeispiele das gleiche Format haben, das bei der Argumentation erwartet wird. Überprüfen Sie die Konsistenz der Trainingsbeispiele. Wenn die Trainingsdaten von mehreren Personen erstellt wurden, kann die Leistung des Modells durch den Grad der zwischenmenschlichen Konsistenz eingeschränkt sein. Bei einer Textextraktionsaufgabe kann das Modell beispielsweise nicht besser abschneiden, wenn die Personen nur bei den extrahierten Segmenten von 70% übereinstimmen.
ein Urteil fällen
Die Feinabstimmung ist ein Schlüsselaspekt bei der Entwicklung großer Sprachmodelle, die ein empfindliches Gleichgewicht zwischen Kunst und Wissenschaft erfordert. Die Qualität und Pflege des Datensatzes spielt eine wichtige Rolle für den Erfolg der Feinabstimmung, dieKleine, fein abgestimmte Modelle großer Sprachen sind bei bestimmten Aufgaben tendenziell besser als größere Modelle. Sobald die Entscheidung zur Feinabstimmung gefallen ist Lama Feinabstimmung Leitfaden bietet eine solide Ausgangsbasis. Der proprietäre Charakter des Portfolios von Feinabstimmungsdatensätzen hat den Austausch von Best Practices und Open-Source-Fortschritten behindert. Im Zuge der weiteren Entwicklung des Bereichs erwarten wir die Herausbildung gemeinsamer bewährter Verfahren unter Beibehaltung der Kreativität und Anpassungsfähigkeit der Feinabstimmung.
ein Dankeschön-Schreiben
Wir möchten Suraj Subramanian und Varun Vontimitta für ihr konstruktives Feedback zur Organisation und Vorbereitung dieses Blogbeitrags danken.