Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Modell Merge
Wichtig
In diesem Dokument werden wir das „Basismodell“ als eines der beiden Modelle bezeichnen. Es kann das ursprüngliche Basismodell (z. B. Nova Lite 2.0) sein, wenn kein iteratives Training durchgeführt wurde, oder das Ergebnis des vorherigen iterativen Trainingslaufs.
Nach Abschluss der Feinabstimmung durchläuft Ihr benutzerdefiniertes Modell einen optionalen, vom Benutzer konfigurierbaren Schritt zum Zusammenführen der Modelle, bei dem das neu erlernte Wissen mit den Fähigkeiten des „Basismodells“ kombiniert wird. Dieser Prozess stellt sicher, dass Ihr endgültiges Modell die ursprüngliche Intelligenz des „Basismodells“ beibehält und gleichzeitig das spezielle Verhalten berücksichtigt, das Sie während des letzten Feinabstimmungs-Trainings gelernt haben. Durch das Zusammenführen von Modellen wird ein Phänomen abgemildert, das als katastrophales Vergessen bekannt ist. Dabei verliert ein Modell bereits erlerntes Wissen, nachdem es anhand neuer Daten optimiert wurde.
Anwendbarkeit der Modellzusammenführung nach Trainingstyp
Das Zusammenführen von Modellen ist nur für das SFT-Training konfigurierbar. Die folgende Tabelle fasst das Verhalten beim Zusammenführen von Modellen für jeden Trainingstyp zusammen:
| Art des Trainings | Verhalten beim Zusammenführen von Modellen |
|---|---|
| Betreut Fine-Tuning (SFT) | User-configurable Die Modellzusammenführung wird angewendet. Sie können die Gewichtung der Zusammenführung zwischen dem fein abgestimmten Modell und dem Basismodell wie in diesem Dokument beschrieben steuern. |
| Verstärkung Fine-Tuning (RFT) | Keine Modellzusammenführung. Der Checkpoint für das trainierte Modell wird direkt als endgültiges Modell ausgegeben. An einem Zusammenführungsschritt ist kein Basismodell beteiligt. |
| Fortsetzung Pre-Training (CPT) | Keine Modellzusammenführung. Der Checkpoint für das trainierte Modell wird direkt als endgültiges Modell ausgegeben. An einem Zusammenführungsschritt ist kein Basismodell beteiligt. |
Wann sollte das Zusammenführen von Modellen verwendet werden
Sie sollten das Zusammenführen von Modellen aktivieren, wenn:
-
Die allgemeinen Funktionen verschlechtern sich nach der Feinabstimmung. Wenn Ihr fein abgestimmtes Modell bei Aufgaben außerhalb Ihrer Trainingsdaten an Leistung verliert (z. B. Mathe, Argumentation oder Programmieren), wird beim Zusammenführen das Basismodellwissen zusammengeführt, um diese Fähigkeiten wiederherzustellen.
-
Iterative/continual Schulung. Bei der Feinabstimmung zusätzlich zu einem zuvor angepassten Checkpoint ist das Zusammenführen unerlässlich, um die in früheren Runden erlernten Fähigkeiten beizubehalten. Andernfalls kann jede neue Runde das, was in der vorherigen Runde gelehrt wurde, überschreiben.
In folgenden Fällen benötigen Sie möglicherweise keine Modellzusammenführung:
-
Sie möchten nur die Leistung der Zielaufgaben maximieren, und die allgemeine Beibehaltung der Fähigkeiten ist kein Problem.
-
Bergsteigen. Sie möchten mit demselben Datensatz weiter iterieren, um die Evaluationsleistung weiter zu optimieren.
-
Sie verwenden eine auf Argumenten basierende Feinabstimmung. Studien haben gezeigt, dass auf Argumentation basierende SFT das katastrophale Vergessen erheblich mildert.
Wie konfiguriert man das Zusammenführen von Gewichtungen von Modellen
Der Standardwert von model_importance_score.fine_tuned_model ist 1,0, was bedeutet, dass beim Checkpoint für die Trainingsausgabe ausschließlich die fein abgestimmten Gewichte verwendet werden, ohne dass eine Mischung aus dem „Basismodell“ vorgenommen wird. Der Standardwert funktioniert gut, wenn deine Trainingsdaten umfassend sind und deiner Zielaufgabe sehr nahe kommen.
Du kannst steuern, wie das endgültige Modell ein Gleichgewicht zwischen Spezialisierung und Allgemeinwissen herstellt, indem du die Hyperparameter model_importance_score eingibst. Beispiel:
training_config: # ... model_importance_score: fine_tuned_model: 0.75 # set value between 0.0 to 1.0 inclusive
model_importance_score.fine_tuned_modelBei Werten, die näher an 1,0 liegen, orientiert sich das Modell an Ihren fein abgestimmten Daten, während bei Werten, die näher an 0,0 liegen, mehr von den allgemeinen Funktionen des Basismodells erhalten bleiben. Im obigen Beispiel wird das endgültige trainierte Modell erstellt, indem das zu 75% auf dem jeweiligen Datensatz abgestimmte Modell mit 25% des „Basismodells“ zusammengeführt wird.
Wenn Sie feststellen, dass Ihr fein abgestimmtes Modell an allgemeinen Funktionen verliert (z. B. verminderte Leistung bei Aufgaben, die nicht in Ihren Trainingsdaten enthalten sind), reduzieren Sie diese,
model_importance_score.fine_tuned_model um einen größeren Teil des Wissens aus dem „Basismodell“ einzubeziehen.
Anmerkung
Wir können zwar die Gewichte der Modellzusammenführung konfigurieren, aber der Benutzer kann nicht wählen, mit welchen Modellen er zusammenführen möchte. Mit anderen Worten, es wird immer zwischen dem „Basismodell“ und dem fein abgestimmten Modell des aktuellen Trainingslaufs liegen. Das „Basismodell“ kann das ursprüngliche Basismodell (z. B. Nova Lite 2.0) oder das Ergebnis des vorherigen iterativen Trainingslaufs sein.
Wähle ein Modell, füge Gewichte zusammen
Der model_importance_score.fine_tuned_model Parameter steuert das Gleichgewicht zwischen Ihrem fein abgestimmten Modell und dem Basismodell. Beginnen Sie mit diesen Richtlinien:
| Szenario | Empfohlenes Startgewicht | Begründung |
|---|---|---|
| Single-round SFT mit umfassenden Trainingsdaten | 1.0 (Standard, kein Zusammenführen) | Deine Trainingsdaten decken die Zielaufgabe gut ab; eine Zusammenführung würde erlerntes Verhalten verwässern, ohne dass es Vorteile bringt. |
| Single-round SFT, bei dem sich die allgemeinen Fähigkeiten verschlechtern | 0,7—0,9 | Bringt genügend Basismodellwissen ein, um allgemeine Fähigkeiten (Mathematik, Argumentation, Programmieren) wiederzuerlangen und gleichzeitig den Großteil der fein abgestimmten Leistung beizubehalten. |
| Iterative/continual SFT (aufbauend auf einem früheren Checkpoint) | 0,3—0,7 | Bei niedrigeren Gewichten bleibt mehr Wissen aus früheren Trainingsrunden erhalten. Ohne Zusammenführung können in späteren Runden die in früheren Runden erlernten Fähigkeiten überschrieben werden. |
| Explorativ/unsicher | 0,7 | Ein vernünftiger Mittelweg; Anpassung auf der Grundlage der Bewertungsergebnisse. |
Allgemeines Prinzip: Höhere Gewichtungen (näher an 1,0) maximieren die Leistung der Zielaufgabe, bergen jedoch die Gefahr, dass allgemeine Fähigkeiten verloren gehen. Bei niedrigeren Gewichtungen (näher an 0,0) bleiben die allgemeinen Fähigkeiten des Basismodells erhalten, die Spezialisierung wird jedoch verringert. Es gibt keinen allgemein optimalen Wert — die richtige Gewichtung hängt von der Größe Ihres Datensatzes, der Überschneidung der Bereiche mit dem Basismodell und den Funktionen ab, die Sie beibehalten müssen.
Tipp
Wenn Ihre Trainingsdaten Denkanstöße enthalten (Gedankenkette), können Sie in der Regel eine höhere Gewichtung für Zusammenführungen verwenden (oder die Zusammenführung bei 1,0 ganz überspringen), da Daten, die durch Argumentation ergänzt werden, als Regularisator wirken, der die allgemeinen Fähigkeiten bewahrt.
Evaluiere deine Gewichtung beim Zusammenführen
Evaluiere nach Abschluss des Trainings das zusammengeführte Modell, um sicherzustellen, dass das Merge-Gewicht angemessen ist. Du brauchst nicht mehrere Trainingsläufe — ein einziger Testdurchgang kann dir sagen, ob du dich anpassen musst.
-
Zielgerichtete Aufgabenleistung — Führe deine domänenspezifische Bewertung (Genauigkeit, F1, Extraktionswert usw.) an einem Testset durch, das du dir vorenthalten hast. Vergleichen Sie es mit dem Basismodell (vor jeder Feinabstimmung), um zu bestätigen, dass die Feinabstimmung die Leistung verbessert hat. Wenn der Gewinn gegenüber dem Basismodell geringer als erwartet ist, ist dein Merge-Gewicht möglicherweise zu niedrig — die Gewichte des Basismodells verwässern das, was während des Trainings gelernt wurde.
-
Stichprobenprüfung der allgemeinen Fähigkeiten — Fordere das zusammengeführte Modell mit ein paar Aufgaben auf, die außerhalb deines Trainingsbereichs liegen (z. B. eine mathematische Wortaufgabe, eine Zusammenfassungsanfrage oder eine Programmierfrage). Vergleichen Sie die Antworten qualitativ mit dem Basismodell. Wenn die Antworten des zusammengeführten Modells deutlich schlechter sind als die des Basismodells — inkohärent, Antwortverweigerung oder Kauderwelsch bei Aufgaben, die das Basismodell gut bewältigt —, ist Ihr Zusammenführungsgewicht zu hoch, und das Modell hat allgemeine Fähigkeiten verloren.
So funktioniert das Zusammenführen: Feinabstimmung Full-rank
Full-rank Beim Training entsteht ein vollständiger Satz von Modellgewichten. Beim Zusammenführen wird jeder Parameter als gewichtete Mischung berechnet:
# Weighted interpolation Merged Model = (1 - model_importance_score.fine_tuned_model) * Base Model + model_importance_score.fine_tuned_model * Fine-Tuned Model
Beispiel: Das zusammengeführte Modell besteht zu 70% aus „Basismodell“ -Wissen und zu 30% aus feinabgestimmtem Wissen. model_importance_score.fine_tuned_model = 0.3
So funktioniert das Zusammenführen: LoRa-Feinabstimmung
LoRa (Low-Rank Adaptation) lernt ein kompaktes Paar von Matrizen mit niedrigem Rang (A und B), die die Anpassung als Update mit niedrigem Rang darstellen. Während der Modellzusammenführung wird jede A- und B-LoRa-Matrix wie unten gezeigt um die Werte skaliert.
model_importance_score.fine_tuned_model In diesen Formeln
alpha ist das der LoRa-Skalierungsfaktor (peft.lora_tuning.alphain Ihrem Trainingsrezept) und der rank LoRa-Rang. Die verfügbaren
alpha Werte finden Sie im LoRa SFT-Trainingsrezept.
Beachten Sie, dass die A- und B-Matrizen derzeit nur Informationen aus dem letzten Feinabstimmungslauf enthalten. Es sind keine Informationen über frühere Trainingsläufe vorhanden. Die Erkenntnisse aus früheren Trainingsläufen stammen aus der Zusammenführung von Modellen mit dem „Basismodell“ oder aus der unten beschriebenen Zusammenführung von LoRa-Adaptern in der vorherigen Phase.
Scaled_A = sqrt(model_importance_score.fine_tuned_model) * sqrt(alpha/rank) * A Scaled_B = sqrt(model_importance_score.fine_tuned_model) * sqrt(alpha/rank) * B
Beim LoRa-Training entstehen zwei Modellartefakte: ein vollständig zusammengeführtes Modell und ein Satz zusammengeführter LoRa-Adapter. Schauen wir uns jeden von ihnen einzeln an.
Vollständig zusammengeführtes Modell
Das LoRa-Update wird skaliert und dem „Basismodell“ hinzugefügt:
Merged Model = Base Model + (Scaled_B @ Scaled_A)
Jetzt Merged Model hat das Wissen sowohl aus dem aktuellen Trainingslauf als auch etwas Wissen von der Base Model je nach Benutzer konfigurierten Version übernommen. model_importance_score.fine_tuned_model
Zusammengeführte LoRa-Adapter
Wie die LoRa-Adapter zusammengeführt werden, hängt davon ab, ob Sie ein einstufiges oder iteratives Training durchführen.
-
Für einstufiges LoRa-Training (kein iteratives Training) werden die fein abgestimmten LoRa-Adapter direkt ohne Zusammenführung gespeichert, da es keinen vorherigen Satz von LoRa-Adaptern gibt, mit denen sie zusammengeführt werden könnten.
-
In iterativen All-LoRa-Workflows werden die Adapter aus jeder Phase zu einem einzigen Satz zusammengeführt:
Merged = Stage1_Scaled_B @ Stage1_Scaled_A + Stage2_Scaled_B @ Stage2_Scaled_ADie
MergedLoRa-Adapter werden das Wissen aus früheren Trainingsdurchgängen sowie die neuesten Erkenntnisse zur Feinabstimmung enthalten, die auf den benutzerdefinierten Adaptern basieren.model_importance_score.fine_tuned_modelBitte achten Sie auch genau auf die iterativen Trainingsbeschränkungen bei der Kombination von LoRa und Training. Full-rank
Diese zusammengeführten Adapter Merged_B Merged_A spiegeln den gesamten Trainingsverlauf wider und werden für Inferenzen auf Abruf verwendet.