Freigeben über


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.

Registerkarte „Artefakte“ für eine frühere MLflow-Ausführung

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:

  1. Wählen Sie auf der linken Navigationsleiste des Databricks-Arbeitsbereichs Compute aus.

  2. Wählen Sie in der Tabelle den Namen Ihres Clusters aus.

  3. Wählen Sie in der rechten oberen Ecke Schaltfläche „Mehr“ und dann im Dropdownmenü die Option JSON anzeigen aus.

  4. Die JSON-Clusterdatei wird angezeigt. Kopieren Sie die Cluster-ID in der ersten Zeile in der Datei.

    Cluster-ID

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():

Verwenden der API zum Abrufen des Ausführungsstatus

Beispielausführungsdetails auf der Seite „Experiment“:

Abrufen des Ausführungsstatus über die Benutzeroberfläche für Experimente

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

Notebook abrufen

Zusätzliche Ressourcen