Erstellen einer Trainingsausführung mit der Mosaic AI Model Training-API
Wichtig
Dieses Feature ist in den folgenden Regionen als Public Preview verfügbar: centralus
, eastus
, eastus2
, northcentralus
und westus
.
In diesem Artikel wird beschrieben, wie Sie eine Trainingsausführung mithilfe der Mosaic AI Model Training-API (Foundation Model Trainings-API) erstellen und konfigurieren, und es werden alle Parameter beschreiben, die im API-Aufruf verwendet werden können. Sie können eine Ausführung auch mithilfe der Benutzeroberfläche erstellen. Anweisungen finden Sie unter Erstellen einer Trainingsausführung mithilfe der Benutzeroberfläche für das Mosaic AI Model Training.
Anforderungen
Siehe Anforderungen.
Erstellen einer Trainingsausführung
Zum programmgesteuerten Erstellen von Trainingsausführungen verwenden Sie die create()
-Funktion. Diese Funktion trainiert ein Modell mit dem bereitgestellten Dataset und konvertiert den abschließenden Composer-Prüfpunkt in einen Rückschlussprüfpunkt im Hugging Face-Format.
Die erforderlichen Eingaben sind das Modell, das Sie trainieren möchten, der Speicherort Ihres Trainingsdatasets und wo Sie Ihr Modell registrieren möchten. Es gibt weitere optionale Felder, mit denen Sie die Auswertung durchführen und die Hyperparameter Ihrer Ausführung ändern können.
Nach Abschluss der Ausführung werden die abgeschlossenen Ausführungen und die abschließenden Prüfpunkte gespeichert, das Modell wird geklont, und der Klon wird in Unity Catalog als Modellversion für den Rückschluss registriert.
Das Modell aus der abgeschlossenen Ausführung nicht die geklonte Modellversion in Unity-Katalog, und die zugehörigen Composer- und Hugging Face-Prüfpunkte werden in MLflow gespeichert. Die Composer-Prüfpunkte können für weitere Feinabstimmungen verwendet werden.
Weitere Informationen zu Argumenten für die create()
-Funktion finden Sie unter Konfigurieren einer Trainingsausführung.
from databricks.model_training import foundation_model as fm
run = fm.create(
model='meta-llama/Llama-2-7b-chat-hf',
train_data_path='dbfs:/Volumes/main/mydirectory/ift/train.jsonl', # UC Volume with JSONL formatted data
# Public HF dataset is also supported
# train_data_path='mosaicml/dolly_hhrlhf/train'
register_to='main.mydirectory', # UC catalog and schema to register the model to
)
Konfigurieren einer Trainingsausführung
In der folgenden Tabelle sind die Felder für die create()
-Funktion zusammengefasst.
Feld | Erforderlich | Type | Beschreibung des Dataflows |
---|---|---|---|
model |
x | str | Der Name des zu verwendenden Modells. Weitere Informationen finden Sie unter Unterstützte Modelle. |
train_data_path |
x | str | Der Speicherort Ihrer Trainingsdaten. Dies kann ein Speicherort in Unity Catalog (<catalog>.<schema>.<table> oder dbfs:/Volumes/<catalog>/<schema>/<volume>/<dataset>.jsonl ) oder ein Hugging Face-Dataset sein.Für INSTRUCTION_FINETUNE sollten die Daten mit jeder Zeile formatiert sein, die ein prompt -Feld und ein response -Feld enthält.Für CONTINUED_PRETRAIN ist dies ein Ordner mit .txt -Dateien. Weitere Informationen zu den akzeptierten Datenformaten finden Sie unter Vorbereiten von Daten für das Mosaic AI Model Training, und Empfehlungen zur Datengröße finden Sie unter Empfohlene Datengröße für das Modelltraining. |
register_to |
x | str | Der Katalog und das Schema von Unity Catalog (<catalog>.<schema> oder <catalog>.<schema>.<custom-name> ), in dem das Modell nach dem Training registriert wird, um eine einfache Bereitstellung zu ermöglichen. Wenn custom-name nicht angegeben wird, ist der Standardwert der Ausführungsname. |
data_prep_cluster_id |
str | Die Cluster-ID des Clusters, der für die Spark-Datenverarbeitung verwendet werden soll. Dies ist für überwachte Trainingsaufgaben erforderlich, bei denen sich die Trainingsdaten in einer Delta-Tabelle befinden. Informationen zum Ermitteln der Cluster-ID finden Sie unter Abrufen der Cluster-ID. | |
experiment_path |
str | Der Pfad zu dem MLflow-Experiment, in dem die Ausgabe der Trainingsausführung (Metriken und Prüfpunkte) gespeichert wird. Standardmäßig wird der Ausführungsnamen im persönlichen Benutzerarbeitsbereich (d. h. /Users/<username>/<run_name> ) verwendet. |
|
task_type |
str | Der Typ der auszuführenden Aufgabe. Kann INSTRUCTION_FINETUNE (Standard) CHAT_COMPLETION oder CONTINUED_PRETRAIN lauten. |
|
eval_data_path |
str | Der Remotestandort Ihrer Auswertungsdaten (sofern vorhanden). Das Format muss train_data_path entsprechen. |
|
eval_prompts |
List[str] | Eine Liste der Promptzeichenfolgen zum Generieren von Antworten während der Auswertung. Der Standardwert ist None (keine Prompts generieren). Die Ergebnisse werden bei jeder Prüfpunkterstellung für das Modell im Experiment protokolliert. Die Generierung erfolgt bei jedem Modellprüfpunkt mit den folgenden Generationparametern: max_new_tokens: 100 , temperature: 1 , top_k: 50 , top_p: 0.95 , do_sample: true . |
|
custom_weights_path |
str | Der Remotestandort eines benutzerdefinierten Modellprüfpunkts für das Training. Der Standardwert ist None , d. h., die Ausführung beginnt mit den ursprünglichen vortrainierten Gewichtung des ausgewählten Modells. Wenn Sie benutzerdefinierte Gewichtungen bereitstellen, werden diese anstelle der ursprünglichen vortrainierten Gewichtungen des Modells verwendet. Diese Gewichtungen müssen ein Composer-Prüfpunkt sein und der Architektur des angegebenen model entsprechen. |
|
training_duration |
str | Die Gesamtdauer der Ausführung. Der Standardwert ist eine Epoche oder 1ep . Kann in Epochen (10ep ) oder Token (1000000tok ) angegeben werden. |
|
learning_rate |
str | Die Lernrate für das Modelltraining. Für alle Modelle außer Llama 3.1 405B Instruct ist die Standardlernrate 5e-7 . Für Llama 3.1 405B Instruct ist die Standardlernrate 1.0e-5 . Der Optimierer ist DecoupledLionW mit Betawerten von 0,99 und 0,95 und keinem Gewichtungsverfall. Der Planer für die Lernrate ist LinearWithWarmupSchedule mit einer Aufwärmrate von 2 % der gesamten Trainingsdauer und einem finalen Lernratenmultiplikator von 0 (null). |
|
context_length |
str | Die maximale Sequenzlänge einer Datenstichprobe. Dieser Wert wird verwendet, um alle Daten zu kürzen, die zu lang sind, und um kürzere Sequenzen aus Effizienzgründen zusammenzupacken. Der Standardwert ist 8192 Token oder die maximale Kontextlänge für das bereitgestellte Modell, je nachdem, welcher Wert niedriger ist. Sie können diesen Parameter verwenden, um die Kontextlänge zu konfigurieren, aber die Konfiguration über die maximale Kontextlänge des Modells hinaus wird nicht unterstützt. Unter Unterstützte Modelle finden Sie die maximale unterstützte Kontextlänge jedes Modells. |
|
validate_inputs |
Boolean | Gibt an, ob der Zugriff auf Eingabepfade vor der Übermittlung des Trainingsauftrags überprüft werden soll. Der Standardwert ist True . |
Erstellen nach benutzerdefinierten Modellgewichtungen
Mosaic AI Model Training unterstützt das Trainieren eines der unterstützten Modelle beginnend mit benutzerdefinierten Gewichtungen mithilfe des optionalen custom_weights_path.
-Parameters.
Sie können z. B. ein domänenspezifisches Modell mit Ihren benutzerdefinierten Daten erstellen und dann den gewünschten Prüfpunkt als Eingabe für das weitere Training übergeben.
Sie können den Remotestandort für den Composer-Prüfpunkt Ihrer letzten Ausführung zum Training bereitstellen. Prüfpunktpfade finden Sie auf der Registerkarte Artefakte einer früheren MLflow-Ausführung. Sie haben die Form dbfs:/databricks/mlflow-tracking/<experiment_id>/<run_id>/artifacts/<run_name>/checkpoints/<checkpoint_folder>[.symlink]
, wobei die Erweiterung „.symlink“ optional ist. Dieser Name des Prüfpunktordners entspricht dem Batch und der Epoche einer bestimmten Momentaufnahme, z. B. ep29-ba30/
. Auf die abschließende Momentaufnahme kann über den Symlink latest-sharded-rank0.symlink
zugegriffen werden.
Der Pfad kann dann an den custom_weights_path
-Parameter in Ihrer Konfiguration übergeben werden.
model = 'meta-llama/Llama-2-7b-chat-hf'
custom_weights_path = 'your/checkpoint/path'
Abrufen der Cluster-ID
So rufen Sie die Cluster-ID ab:
Wählen Sie auf der linken Navigationsleiste des Databricks-Arbeitsbereichs Compute aus.
Wählen Sie in der Tabelle den Namen Ihres Clusters aus.
Wählen Sie in der rechten oberen Ecke und dann im Dropdownmenü die Option JSON anzeigen aus.
Die JSON-Clusterdatei wird angezeigt. Kopieren Sie die Cluster-ID in der ersten Zeile in der Datei.
Abrufen des Status einer Ausführung
Sie können den Fortschritt einer Ausführung auf der Seite „Experiment“ der Databricks-Benutzeroberfläche oder mit dem API-Befehl get_events()
nachverfolgen. Weitere Informationen finden Sie unter Anzeigen, Verwalten und Analysieren von Mosaic AI Model Training-Ausführungen.
Beispielausgabe von get_events()
:
Beispielausführungsdetails auf der Seite „Experiment“:
Nächste Schritte
Nach Abschluss der Trainingsausführung können Sie Metriken in MLflow überprüfen und Ihr Modell für Rückschlüsse bereitstellen. Lesen Sie die Schritte 5 bis 7 im Tutorial: Erstellen und Bereitstellen einer Mosaic AI Model Training-Ausführung.
Ein Beispiel finden Sie im Demo-Notebook für die Feinabstimmung von Instruktionen mit dem Titel Feinabstimmung von Instruktionen: Erkennung benannter Entitäten, das Sie durch die Datenvorbereitung, die Konfiguration des Feinabstimmungs-Trainingslaufs und die Bereitstellung führt.
Notebookbeispiel
Das folgende Notebook zeigt ein Beispiel für das Generieren synthetischer Daten mithilfe des Meta Llama 3.1 405B Instruct-Modells und das Verwenden dieser Daten zum Optimieren eines Modells:
Generieren von synthetischen Daten mit einem Llama 3.1 405B Instruct-Notebook
Zusätzliche Ressourcen
- Mosaic-KI-Modell-Training für Basismodelle
- Tutorial: Erstellen und Bereitstellen einer Mosaic AI Model Training-Ausführung
- Erstellen einer Trainingsausführung mit der Benutzeroberfläche für das Mosaic AI Model Training
- Anzeigen, Verwalten und Analysieren von Mosaic AI Model Training-Ausführungen
- Vorbereiten von Daten für das Mosaic AI Model Training