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 Menge an Daten (z. B. 50 Einträge) manuell aufbereitet 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 Big Model zurückgespielt, um die Generierung zu verbessern.
示例Prompt: 参照以下示例,输出20个类似的“近期运气”问题。请注意,语言要生活化、不要过于夸张,避免使用诸如“在活动中”、“在比赛中”等定语或状语,语句尽量简洁,避免多余修饰。示例: 我这个季度顺利吗? 我这个季度会发财吗? 最近有哪些事情在等着我? 最近会发生什么事情? 近期我能否被幸运之神垂青?
Datenbereinigung und Feinabstimmung der Datensatzkonstruktion
Rohdatensätze sind in der Regel nicht mit der Modellschulung kompatibel und müssen daher bereinigt und bearbeitet werden, um sie mit dem Format, in dem das Modell gelernt wurde, kompatibel zu machen. 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": "用‘梦想’、‘坚持’和‘成功’这三个词组成一个句子。", "input": "", "output": "只有坚持追逐梦想,才能最终取得成功。" }, { "instruction": "对《三国演义》做一个简短的介绍。", "input": "", "output": "《三国演义》是中国古典四大名著之一,描写了从东汉末年到西晋初年近百年的历史,讲述了东汉末年的群雄割据混战及魏、蜀、吴三国之间的政治和军事斗争,塑造了一批英雄人物。" } ]
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 Anweisungen und Ausgabemuster der Aufgabe relativ fest sind.
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": "人类指令(必填)", "input": "人类输入(选填)", "output": "模型回答(必填)", "system": "系统提示词(选填)", "history": [ ["第一轮指令(选填)", "第一轮回答(选填)"], ["第二轮指令(选填)", "第二轮回答(选填)"] ] } ]
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
Die Ausbildung eines großen Modells von Grund auf erfordert viel Rechenleistung 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 Eigenschaften 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 bestimmten Aufgaben 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.