Tuning-Parameter konfigurieren die Tuning-Experimente, die Sie zur Abstimmung des Fundamentmodells verwenden.
Erfahren Sie mehr über die Schritte, die während eines Tuning-Experiments ablaufen, und darüber, wie sich die Parameter, die Sie konfigurieren können, auf den Prozess auswirken.
Arbeitsablauf zur Abstimmung von Prompt
Während des Experiments passt das Optimierungsmodell wiederholt die Struktur der Eingabeaufforderung an, sodass die Vorhersagen im Laufe der Zeit besser werden können.
Das folgende Diagramm veranschaulicht die Schritte, die während eines Prompt-Tuning-Experimentlaufs ablaufen. Die Teile des Experimentierablaufs, die Sie konfigurieren können, werden durch ein Benutzersymbol hervorgehoben. Diese Entscheidungspunkte entsprechen den Optimierungsparametern für Experimente, die Sie steuern.
Das Diagramm zeigt die folgenden Schritte des Experiments:
Startet bei der Initialisierungsmethode, die Sie zum Initialisieren der Eingabeaufforderung auswählen.
Wenn der Parameter Initialisierungsmethode auf
text
gesetzt ist, müssen Sie den Initialisierungstext hinzufügen.Bei Angabe wird der Initialisierungstext in Tokens zerlegt und in einen Eingabeaufforderungsvektor konvertiert.
Liest die Trainingsdaten, zerlegt sie in Tokens und konvertiert sie in Batches.
Die Größe der Stapel wird durch den Parameter Stapelgröße bestimmt.
Sendet Eingaben aus den Beispielen im Stapel an das Basismodell, damit das Modell die Ausgabe verarbeitet und generiert.
Vergleicht die Ausgabe des Modells mit der Ausgabe der Trainingsdaten, die der übergebenen Trainingsdateneingabe entspricht Anschließend wird der Verlustgradient berechnet, der die Differenz zwischen der vorhergesagten Ausgabe und der tatsächlichen Ausgabe aus den Trainingsdaten darstellt.
An einem bestimmten Punkt passt das Experiment den Eingabeaufforderungsvektor an, der der Eingabe basierend auf der Leistung des Modells hinzugefügt wird. Wann diese Anpassung erfolgt, hängt davon ab, wie der Parameter Akkumulationsschritte konfiguriert ist.
Anpassungen werden auf den in Schritt 2 initialisierten Eingabeaufforderungsvektor angewendet. Der Grad, in dem der Vektor geändert wird, wird durch den Parameter Lernrate gesteuert. Der bearbeitete Eingabeaufforderungsvektor wird als Präfix zur Eingabe aus dem nächsten Beispiel in den Trainingsdaten hinzugefügt und als Eingabe an das Modell übergeben.
Der Prozess wird wiederholt, bis alle Beispiele in allen Batches verarbeitet wurden.
Die gesamte Gruppe von Batches wird so oft verarbeitet, wie im Parameter Anzahl der Epochen angegeben ist.
Standardparameter für die Abstimmung der Eingabeaufforderung
Die besten Hyperparameterwerte für ein Prompt-Tuning-Experiment hängen von Ihren Daten und Ihrem Anwendungsfall ab.
In der folgenden Tabelle sind die Parameterwerte aufgeführt, die als Ausgangspunkt für die sofortige Abstimmung eines Fundamentmodells eines Drittanbieters verwendet werden können.
Parametername | Standardwert für flan-t5-xl-3b | Weitere Informationen |
---|---|---|
Initialisierungsmethode | Beliebig | Eingabeaufforderungsoptimierung initialisieren |
Initialisierungstext | Keine | Eingabeaufforderungsoptimierung initialisieren |
Stapelgröße | 16 | Trainingsdaten segmentieren |
Schritte kumulieren | 16 | Trainingsdaten segmentieren |
Lernrate | 0.3 | Lernrate verwalten |
Anzahl der Epochen (Anzahl der Trainingszyklen) | 20 Jahre | Anzahl auszuführender Trainingsläufe auswählen |
Die Standardparameter, die für die Schnellabstimmung des granite-13b-instruct-v2 Fundamentmodells verwendet werden, werden je nach Art der Aufgabe, die das abgestimmte Modell erfüllen soll, angepasst.
Die folgende Tabelle enthält die Parameterwerte, die als Ausgangspunkt für jeden unterstützten Aufgabentyp für die Abstimmung des granite-13b-instruct-v2-Gründungsmodells verwendet werden können.
Parametername | Standardwert für Klassifikation | Standardwert für Generierung | Standardwert für Zusammenfassung | Weitere Informationen |
---|---|---|---|---|
Stapelgröße | 8 | 16 | 8 | Trainingsdaten segmentieren |
Schritte kumulieren | 32 | 16 | 1 | Trainingsdaten segmentieren |
Lernrate | 0.0006 | 0.0002 | 0.0002 | Lernrate verwalten |
Anzahl der Epochen (Anzahl der Trainingszyklen) | 20 Jahre | 20 Jahre | 40 | Anzahl auszuführender Trainingsläufe auswählen |
Parameterbeschreibungen
In der folgenden Tabelle werden die Abstimmungsparameter beschrieben, die Sie anpassen können.
Parametername | Beschreibung | Wertoptionen | Weitere Informationen |
---|---|---|---|
Initialisierungsmethode (prompte Abstimmung) | Gibt an, wie der Prompt-Vektor initialisiert werden soll. | Zufällig, Text | Eingabeaufforderungsoptimierung initialisieren |
Initialisierungstext (Abstimmung der Eingabeaufforderung) | Text, der als Aufforderung für den ersten Durchlauf des Experiments verwendet werden soll. | – | Eingabeaufforderungsoptimierung initialisieren |
Stapelgröße | Anzahl der beschrifteten Beispiele, die auf einmal verarbeitet werden sollen. | 1-16 | Trainingsdaten segmentieren |
Schritte kumulieren | Anzahl der zu verarbeitenden Chargen, bevor Anpassungen vorgenommen werden. | 1-128 | Trainingsdaten segmentieren |
Lernrate | Bestimmt den Umfang der Änderung, die bei der Anpassung des Modells vorgenommen werden soll. | 0.00001–0.5 | Lernrate verwalten |
Anzahl der Epochen (Anzahl der Trainingszyklen) | Anzahl der Durchläufe durch die Trainingsdaten. | 1-50 | Anzahl auszuführender Trainingsläufe auswählen |
Trainingsdaten segmentieren
Wenn ein Experiment ausgeführt wird, unterbricht das Experiment zuerst die Trainingsdaten in kleinere Batches und trainiert dann in jeweils einem Batch. Jeder Stapel muss in den GPU-Speicher passen, damit er verarbeitet werden kann. Um die erforderliche GPU-Speicherkapazität zu reduzieren, können Sie das Optimierungsexperiment so konfigurieren, dass Anpassungen zurückgestellt werden, bis mehr als ein Stapel verarbeitet wird. Das Tuning wird für eine Charge durchgeführt und ihre Leistungskennzahlen werden berechnet, aber es werden nicht sofort Anpassungen vorgenommen. Stattdessen werden die Leistungsinformationen über eine bestimmte Anzahl von Batches erfasst, bevor die kumulativen Leistungsmessdaten ausgewertet werden.
Verwenden Sie die folgenden Parameter, um zu steuern, wie die Trainingsdaten segmentiert werden:
Stapelgröße Die Anzahl der beschrifteten Beispiele (auch bekannt als Stichproben), die gleichzeitig verarbeitet werden sollen
Für ein Dataset mit 1.000 Beispielen und einer Stapelgröße von 10 wird das Dataset in 100 Batches mit jeweils 10 Beispielen unterteilt.
Wenn das Trainingsdataset klein ist, geben Sie eine kleinere Stapelgröße an, um sicherzustellen, dass jeder Batch genügend Beispiele enthält.
Akkumulierungsschritte: Anzahl der zu verarbeitenden Chargen, bevor Anpassungen vorgenommen werden.
Wenn der Datensatz beispielsweise in 100 Chargen unterteilt ist und Sie den Wert für die Akkumulationsschritte auf 10 setzen, werden die Anpassungen 10 Mal statt 100 Mal vorgenommen.
Anzahl auszuführender Trainingsläufe auswählen
Der Parameter Anzahl der Epochen gibt an, wie oft die Trainingsdaten durchlaufen werden sollen.
Bei einer Batchgröße von 10 und einem Datensatz mit 1.000 Beispielen muss eine Epoche beispielsweise 100 Batches verarbeiten und 100 Mal Anpassungen vornehmen. Wenn Sie die Anzahl der Epochen auf 20 setzen, wird das Modell 20 Mal durch das Dataset geleitet, was bedeutet, dass es während des Optimierungsprozesses insgesamt 2.000 Batches verarbeitet.
Je höher die Anzahl der Epochen und je größer Ihre Trainingsdaten sind, desto länger dauert die Optimierung eines Modells.
Lernrate verwalten
Der Parameter Lernrate bestimmt den Umfang der Änderung, die bei der Anpassung des Modells vorgenommen wird. Je höher die Zahl, desto größer ist die Veränderung.
Initialisierung der Eingabeaufforderung
Wenn Sie ein Experiment zur Promptabstimmung erstellen, können Sie wählen, ob Sie Ihren eigenen Text als anfänglichen Promptvektor angeben oder ob das Experiment ihn für Sie generieren soll. Diese neuen Token starten den Trainingsprozess entweder an zufälligen Positionen oder auf der Basis der Einbettung eines Vokabulars oder einer Anweisung, die Sie im Text angeben. Studien zeigen, dass die verwendete Initialisierungsmethode weniger wichtig wird, wenn die Größe des zugrunde liegenden Modells über 10 Milliarden Parameter steigt.
Die Auswahl, die Sie beim Erstellen des Optimierungsexperiments treffen, passt an, wie die Eingabeaufforderung initialisiert wird.
Initialisierungsmethode: Wählen Sie eine Methode aus den folgenden Optionen:
- Text: Die Methode zur Optimierung der Eingabeaufforderung wird verwendet, wenn Sie den Initialisierungstext der Eingabeaufforderung selbst angeben.
- Zufällig: Die Methode zur Optimierung der Eingabeaufforderung wird verwendet, mit der das Experiment Werte hinzufügen kann, die zufällig ausgewählt werden, um sie in die Eingabeaufforderung einzuschließen.
Initialisierungstext: Der Text, den Sie hinzufügen möchten Geben Sie eine Taskbeschreibung oder Anweisungen ähnlich der Beschreibung an, die Sie für die Bedienerführung für Nullwerte verwenden.
Weitere Informationen
Übergeordnetes Thema: Modell optimieren