Umfangreiche Modellfeinabstimmung des gesamten Prozesses
Es wird empfohlen, das oben beschriebene Verfahren bei der Feinabstimmung strikt einzuhalten, um zu vermeiden, dass Schritte übersprungen werden, was zu ineffektiver Arbeit führen kann. Wenn z. B. der Datensatz nicht angemessen aufgebaut ist und sich die schlechte Wirkung des feinabgestimmten Modells schließlich als Problem mit der Qualität des Datensatzes herausstellt, dann sind die vorbereitenden Bemühungen umsonst und der Aufwand halbiert.
Sammlung und Zusammenstellung von Datensätzen
Auf der Grundlage der Verfügbarkeit von Datensätzen können diese in zwei Kategorien eingeteilt werden: öffentlich zugängliche Datensätze und schwer zugängliche Datensätze.
Wie erhalte ich Zugang zu öffentlich zugänglichen Datensätzen?
Der einfachste Weg, auf öffentlich verfügbare Datensätze zuzugreifen, ist die Suche und das Herunterladen über einschlägige Open-Source-Plattformen. Beispielsweise bieten Plattformen wie GitHub, Hugging Face, Kaggle, Magic Hitch usw. eine große Anzahl offener Datensätze. Darüber hinaus können Sie auch versuchen, Daten von einigen Websites mit Hilfe der Crawler-Technologie zu erhalten, z. B. von Posting, Zhihu, vertikalen Branchen-Websites usw. Die Verwendung von Crawlern zum Abrufen von Daten erfordert in der Regel etwas technische Unterstützung und die Einhaltung der einschlägigen Gesetze und Vorschriften.
Was ist, wenn die benötigten Daten nicht oder nur schwer über das Netz zu beschaffen sind?
Wenn die vorhandenen öffentlich zugänglichen Datensätze den Bedarf nicht decken, besteht eine weitere Möglichkeit darin, den Datensatz selbst zu erstellen. Die manuelle Erstellung von Hunderten bis Tausenden von Datensätzen ist jedoch oft mühsam und zeitaufwändig. Wie können Sie also Datensätze effizient erstellen? Im Folgenden werden zwei gängige Ideen zur schnellen Erstellung von Datensätzen beschrieben:
1. die Nutzung der "Datenanreicherungs"-Funktionen der Big-Model-Plattform
Derzeit bieten viele große Modellplattformen die Funktion der Datenanreicherung, die uns bei der Erweiterung des Datensatzes wirksam helfen kann. So können z. B. die offene Massenspektrometrie-Plattform, die offene Xunfei-Plattform, die offene Vulkan-Plattform usw. verwendet werden, um mit Hilfe der Anreicherungsfunktion dieser Plattformen schnell mehr Proben aus Rohdaten zu erzeugen. Zunächst wird eine kleine Datenmenge (z. B. 50 Datenelemente) manuell vorbereitet und auf diese Plattformen hochgeladen. Die Plattformen erweitern die Daten mit Hilfe der Datenanreicherungstechnologie, um die Erweiterung des Datensatzes schnell zu realisieren.
2. die Erzeugung von Daten mit Hilfe großer Modelle
Eine weitere effiziente Methode zur Datengenerierung ist die Verwendung eines großen Modells. Zunächst wird eine kleine Datenmenge (z. B. ein paar Dutzend) aufbereitet und als Beispiele in das große Modell eingespeist. Das große Modell kann auf der Grundlage dieser Beispiele ähnliche Dateninhalte generieren. Um die Qualität der generierten Daten zu gewährleisten, empfiehlt es sich, in der ersten Generierungsrunde nicht zu viele Daten auf einmal zu generieren, sondern eher 20 Daten und diese sorgfältig zu überprüfen, um häufige Fehler zu erkennen, die dem Big Model unterlaufen könnten. Diese Fehlerbeispiele werden dann an das große Modell zurückgegeben, um die Generierung zu verbessern.
Beispiel Aufforderung: Geben Sie unter Bezugnahme auf das folgende Beispiel 20 ähnliche Fragen zum "jüngsten Glück" aus. Bitte beachten Sie, dass die Sprache lebensnah und nicht zu übertrieben sein sollte, vermeiden Sie die Verwendung von Determinatoren oder Gerundien wie "bei Aktivitäten", "bei Wettbewerben" usw., und versuchen Sie, sich so kurz wie möglich zu fassen und unnötige Änderungen zu vermeiden. Beispiel: Läuft dieses Quartal gut für mich? Werde ich in diesem Quartal reich sein? Welche Dinge warten in letzter Zeit auf mich? Was wird in naher Zukunft geschehen? Werde ich in nächster Zeit von den Glücksgöttern begünstigt werden?
Datenbereinigung und Feinabstimmung der Datensatzkonstruktion
Rohdatensätze sind in der Regel nicht mit der Modellschulung kompatibel. Sie müssen daher bereinigt und bearbeitet werden, um sie mit dem Format kompatibel zu machen, in dem das Modell gelernt wurde. In den meisten Fällen werden feinabgestimmte Datensätze mit dem AIpaca-Format erstellt.
Einführung in das AIpaca-Format
Das AIpaca-Format ist einfach strukturiert und eignet sich besonders für Aufgaben wie Textgenerierung, Übersetzung, Zusammenfassung und insbesondere für die aufgabenorientierte Feinabstimmung von Anweisungen in einem Durchgang. Im Folgenden werden seine Hauptbestandteile ausführlich erläutert:
- Anweisung: Eine Aufgabenanweisung, ähnlich einer Benutzereingabe (obligatorisch), die dem Modell ausdrücklich sagt, was es tun soll.
- input: Die für die Aufgabe erforderliche Eingabe. Kann normalerweise eine leere Zeichenkette sein, wenn die Aufgabe ein offenes Ende hat oder keine explizite Eingabe erfordert.
- Ausgabe: Die gewünschte Ausgabe, die das Modell angesichts der Anweisungen und Eingaben erzeugen muss, d. h. die Referenzantwort (erforderlich).
- system: kann als Vorab-Prompt für das Modell betrachtet werden, das dazu dient, das Verhalten des Modells einzustellen, normalerweise einige anfängliche Hinweise (optional) für das Modell.
- Geschichte: Historische Dialoginformationen, die dem Modell helfen, kontextuelle Beziehungen herzustellen. Bei einer Mehrrundenaufgabe generiert das Modell Antworten (optional) auf der Grundlage des historischen Dialogs.
Das AIpaca-Datenformat sieht zum Beispiel wie folgt aus:
[ { "instruction": "Bilde einen Satz mit den Wörtern 'Traum', 'Beharrlichkeit' und 'Erfolg'." , "input": "", "output": "Nur wenn du beharrlich deine Träume verfolgst, kannst du letztendlich erfolgreich sein." }, { "instruction": "Gib eine kurze Einführung in The Romance of the Three Kingdoms." , "input": "", "output": "Der Roman der drei Königreiche ist eines der vier großen Meisterwerke des klassischen Chinas, das die Geschichte von fast einem Jahrhundert vom Ende der Östlichen Han-Dynastie bis zu den ersten Jahren der Westlichen Jin-Dynastie schildert, das Chaos der Kriege zwischen den Kriegsherren der späten Östlichen Han-Dynastie und die politischen und militärischen Kämpfe zwischen den drei Königreichen Wei, Shu und Wu schildert und eine Reihe von Heldenfiguren porträtiert." } ]
Methodik der Datensatzerstellung
Um einen Datensatz für die Feinabstimmung zu erstellen, müssen wir die Daten normalerweise in eine JSON-Datei konvertieren, die dem AIpaca-Format entspricht. Im Folgenden finden Sie zwei gängige Methoden zur Erstellung von Datensätzen:
- Manuelle Erstellung von Datensätzen: Nach der Organisation der erforderlichen Daten und ihrer Erstellung gemäß dem AIpaca-Format können Datensätze manuell durch Schreiben von Python-Code erstellt werden. Diese Methode ist für einfache Szenarien und kleine Datensätze geeignet.
- Automatisierte Konstruktion unter Verwendung von Makromodellen: automatische Erzeugung von Datensätzen durch Aufruf von Makromodell-Schnittstellen. Dieser Ansatz eignet sich für große Datensätze, insbesondere wenn die Aufgabe ein relativ festes Muster von Anweisungen und Ausgaben hat.
Format des vollständigen Datensatzes
Das vollständige AIpaca-Format ist unten abgebildet und enthält die Befehle der Aufgabe, die Eingaben, die Ausgaben, die System-Prompt-Wörter und die historischen Dialoginformationen:
[ { "instruction": "Menschliche Instruktion (erforderlich)", "input": "Menschliche Eingabe (optional)", "output": "Modellantwort (erforderlich)", "system": "System-Eingabeaufforderungen (optional)", "history": [ ["Anweisungen für Runde 2 (optional)", "Antworten für Runde 2 (optional)" ] ] } ]
Das Format hilft dem Modell, die Beziehung zwischen Anweisungen und Ausgaben zu lernen, ähnlich wie bei Übungsaufgaben, bei denen Anweisung + Eingabe = Frage und Ausgabe = Antwort.
Auswahl des Basismodells
- Auswahl des Modelltyps: Wählen Sie das Basismodell, z. B. GPT, LLaMA oder BERT, je nach den Anforderungen der Aufgabe.
- Größe und Parameter: Entscheiden Sie sich für die Modellgröße (z. B. 7B, 13B oder 65B Parametergrößen) und berücksichtigen Sie dabei Rechenressourcen, Trainingszeit und Inferenzgeschwindigkeit.
- Open-Source- vs. kommerzielle Modelle: Analyse der Notwendigkeit, zwischen Open-Source-Modellen (z. B. LLaMA, Falcon) oder kommerziellen Closed-Source-Modellen (z. B. OpenAI GPT-Familie) zu wählen.
- Führen Sie anhand der Testdaten einen Vergleichstest durch, um die beste Anpassung unter den mehreren ausgewählten Modellen zu finden.
Beschreibung der Modellparameter
Die fünf Fragen der Seele
I. Was ist Feinabstimmung?
Unter Feinabstimmung versteht man das weitere Training eines bereits trainierten Modells mit einem neuen Datensatz. Diese bereits trainierten Modelle haben in der Regel bereits umfangreiche Merkmale und Kenntnisse über große Datensätze erlernt und verfügen über bestimmte allgemeine Fähigkeiten. Das Hauptziel der Feinabstimmung besteht darin, dieses allgemeine Wissen auf eine neue, spezifischere Aufgabe oder Domäne zu übertragen, damit das Modell ein bestimmtes Problem besser lösen kann.
II. warum Feinabstimmung?
1. die Einsparung von Computerressourcen
Das Trainieren eines großen Modells von Grund auf erfordert viele Rechenressourcen und Zeit und ist sehr kostspielig. Bei der Feinabstimmung werden bereits trainierte Modelle als Ausgangspunkt verwendet. Um gute Ergebnisse zu erzielen, ist weniger Training auf neuen Datensätzen erforderlich, was die Rechenkosten und den Zeitaufwand erheblich reduziert.
2. die Verbesserung der Modellleistung
Vorgefertigte Modelle verfügen zwar über allgemeine Fähigkeiten, sind aber für bestimmte Aufgaben möglicherweise nicht gut geeignet. Die Feinabstimmung verbessert die Genauigkeit und Effizienz, indem die Modellparameter mit domänenspezifischen Daten angepasst werden, damit sie die Zielaufgabe besser bewältigen können.
3. sich an neue Gebiete anpassen
Allgemeine, vortrainierte Modelle verstehen die Merkmale von Daten in einem bestimmten Bereich möglicherweise nicht gut, und eine Feinabstimmung kann dazu beitragen, dass sich Modelle an neue Bereiche anpassen und Daten in einer bestimmten Aufgabe besser verarbeiten können.
III. was bringt Ihnen die Feinabstimmung?
Die Feinabstimmung führt zu einem optimierten und angepassten Modell. Dieses Modell basiert auf der Struktur des ursprünglichen, vortrainierten Modells, aber seine Parameter wurden aktualisiert, um sich besser an neue Aufgaben oder Domänenanforderungen anzupassen.
Beispiele:
Angenommen, es gibt ein vorab trainiertes Bildklassifizierungsmodell, das gängige Objekte erkennt. Wenn bestimmte Blumenarten erkannt werden müssen, kann das Modell mit einem neuen Datensatz, der verschiedene Blumenbilder und Beschriftungen enthält, feinabgestimmt werden. Nach der Feinabstimmung werden die Parameter des Modells aktualisiert, um diese Blumentypen genauer zu erkennen.
IV. Wie kann das optimierte Modell in der Produktion eingesetzt werden?
1. die Bereitstellung in der Produktionsumgebung
Die Integration von Modellen in Websites, mobile Anwendungen oder andere Systeme kann über Modellserver oder Cloud-Dienste wie die APIs von TensorFlow Serving, TorchServe oder Hugging Face erfolgen.
2. rechnerische Aufgaben
Verwenden Sie das fein abgestimmte Modell für Schlussfolgerungen, z. B. um Vorhersagen anhand von Eingaben zu treffen oder Ergebnisse zu analysieren.
3. ständige Aktualisierung und Optimierung
Auf der Grundlage neuer Anforderungen oder Rückmeldungen wird das Modell weiter verfeinert oder es werden weitere Daten für das Training hinzugefügt, um eine optimale Modellleistung zu erhalten.
V. Wie wählt man eine Feinabstimmungsmethode?
- LoRA: Low-Rank-Adaption zur Verringerung der Größe von Feinabstimmungsparametern für ressourcenbeschränkte Umgebungen.
- QLoRA: Quantitative Optimierung auf der Grundlage von LoRA für eine effizientere Handhabung der Feinabstimmung großer Modelle.
- P-Tuning: eine Technik des Cue-Learnings, die sich für Aufgaben mit kleinen Stichproben oder geringen Mengen an gelabelten Daten eignet.