Das Vertex AI SDK enthält mehrere Klassen, die Sie beim Trainieren Ihres Modells verwenden. Die meisten Trainingsklassen werden zum Erstellen, Trainieren und Zurückgeben Ihres Modells verwendet. Verwenden Sie HyperparameterTuningJob
, um die Hyperparameter des Trainingsjobs zu optimieren. Mit dem PipelineJob
-Workflow zum Verwalten Ihres ML-Workflows können Sie Ihre ML-Systeme automatisieren und überwachen.
Die folgenden Themen enthalten eine allgemeine Beschreibung jeder trainingsbezogenen Klasse im Vertex AI SDK.
AutoML-Trainingsklassen für strukturierte Daten
Das Vertex AI SDK enthält die folgenden Klassen, die zum Trainieren eines strukturierten AutoML-Modells verwendet werden.
AutoMLForecastingTrainingJob
Die Klasse AutoMLForecastingTrainingJob
verwendet die Trainingsmethode AutoML
, um ein Prognosemodell zu trainieren und auszuführen.
Die Trainingsmethode AutoML
eignet sich für die meisten Anwendungsfälle der Prognose. Wenn Ihr Anwendungsfall nicht von der Trainingsmethode Seq2seq
oder Temporal fusion transformer
von den Klassen SequenceToSequencePlusForecastingTrainingJob
und TemporalFusionTransformerForecastingTrainingJob
profitiert, dann ist AutoML
wahrscheinlich die beste Trainingsmethode für Ihre Prognosevorhersagen.
Beispielcode, der die Verwendung von AutoMLForecastingTrainingJob
veranschaulicht, finden Sie im Beispiel für die Prognose einer Trainingspipeline erstellen auf GitHub.
AutoMLTabularTrainingJob
Die Klasse AutoMLTabularTrainingJob
stellt einen Job dar, mit dem ein tabellarisches Modell von AutoML
erstellt, trainiert und zurückgegeben wird.
Weitere Informationen zum Trainieren tabellarischer Modelle und zu Vertex AI finden Sie unter Tabellendaten und Übersicht über tabellarische Daten.
Das folgende Beispielcode-Snippet zeigt, wie Sie mit dem Vertex AI SDK ein tabellarisches AutoML
-Modell erstellen und ausführen können:
dataset = aiplatform.TabularDataset('projects/my-project/location/us-central1/datasets/{DATASET_ID}')
job = aiplatform.AutoMLTabularTrainingJob(
display_name="train-automl",
optimization_prediction_type="regression",
optimization_objective="minimize-rmse",
)
model = job.run(
dataset=dataset,
target_column="target_column_name",
training_fraction_split=0.6,
validation_fraction_split=0.2,
test_fraction_split=0.2,
budget_milli_node_hours=1000,
model_display_name="my-automl-model",
disable_early_stopping=False,
)
SequenceToSequencePlusForecastingTrainingJob
Die Klasse SequenceToSequencePlusForecastingTrainingJob
verwendet die Trainingsmethode Seq2seq+
, um ein Prognosemodell zu trainieren und auszuführen.
Die Trainingsmethode Seq2seq+
ist eine gute Wahl für Experimente. Der Algorithmus ist einfacher und verwendet einen kleineren Suchbereich als die Option AutoML
.
Seq2seq+
ist eine gute Option, wenn Sie schnelle Ergebnisse wünschen und Ihre Datasets kleiner als 1 GB sind.
Beispielcode, der die Verwendung von SequenceToSequencePlusForecastingTrainingJob
veranschaulicht, finden Sie auf GitHub unter Beispiel für eine Trainings-Pipeline zur Vorhersage von Seq2seq erstellen.
TemporalFusionTransformerForecastingTrainingJob
Die Klasse TemporalFusionTransformerForecastingTrainingJob
verwendet die Trainingsmethode „Temporal Fusion Transformer (TFT)“, um ein Prognosemodell zu trainieren und auszuführen. Bei der TFT-Trainingsmethode wird ein datengetriebenes Modell für ein neuronales Deep-Learning-Netzwerk (DNN) implementiert, das für die Erstellung von Vorhersagen eine Multi-Horizon-Prognoseaufgabe verwendet.
Einen Beispielcode, der die Verwendung von TemporalFusionTransformerForecastingTrainingJob
veranschaulicht, finden Sie unter Beispiel für eine Trainingspipeline zur Vorhersage eines Temporal Fusion Transformer erstellen auf GitHub.
TimeSeriesDenseEncoderForecastingTrainingJob
Die Klasse TimeSeriesDenseEncoderForecastingTrainingJob
verwendet die Trainingsmethode "Times-Dens-Encoder (TiDE)", um ein Prognosemodell zu trainieren und auszuführen. TiDE verwendet einen Multi-Layer Perceptron (MLP), um lineare Geschwindigkeiten mit Kovarianzen und nicht linearen Abhängigkeiten zu prognostizieren.
Weitere Informationen zu TiDE finden Sie unter Aktuelle Fortschritte im Bereich Deep-Horizon-Prognosen und in diesem TiDE-Blogpost.
AutoML-Trainingsklassen für unstrukturierte Daten
Das Vertex AI SDK enthält die folgenden Klassen zum Trainieren unstrukturierter Bild-, Text- und Videomodelle:
AutoMLImageTrainingJob
Verwenden Sie die Klasse AutoMLImageTrainingJob
, um ein Bildmodell zu erstellen, zu trainieren und zurückzugeben. Weitere Informationen zur Arbeit mit Bilddatenmodellen in Vertex AI finden Sie unter Bilddaten.
Ein Beispiel für die Verwendung der Klasse AutoMLImageTrainingJob
finden Sie in der Anleitung im Notebook AutoML-Bildklassifizierung.
AutoMLTextTrainingJob
Verwenden Sie die Klasse AutoMLTextTrainingJob
, um ein Textmodell zu erstellen, zu trainieren und zurückzugeben. Weitere Informationen zur Arbeit mit Textdatenmodellen in Vertex AI finden Sie unter Textdaten.
Beispiel für die Verwendung der
AutoMLTextTrainingJob
-Klasse finden Sie in der Anleitung im Notebook AutoML-Modell zur Entitätsextraktion für Onlinevorhersagen.
AutoMLVideoTrainingJob
Verwenden Sie die Klasse AutoMLVideoTrainingJob
, um ein Videomodell zu erstellen, zu trainieren und zurückzugeben. Weitere Informationen zur Arbeit mit Videodatenmodellen in Vertex AI finden Sie unter Videodaten.
Beispiel für die Verwendung der Klasse AutoMLVideoTrainingJob
finden Sie in der Anleitung im Notebook AutoML-Trainingsmodell für die Video-Aktionserkennung zur Batch-Vorhersage.
Benutzerdefinierte Datentrainingsklassen
Mit dem Vertex AI SDK können Sie einen benutzerdefinierten Trainingsworkflow automatisieren. Informationen zur Verwendung von Vertex AI zum Ausführen benutzerdefinierter Trainingsanwendungen finden Sie in der Übersicht: benutzerdefiniertes Training.
Das Vertex AI SDK enthält drei Klassen, die eine benutzerdefinierte Trainingspipeline erstellen. Eine Trainingspipeline akzeptiert ein von Vertex AI verwaltetes Eingabe-Dataset, das zum Trainieren eines Modells verwendet wird. Als Nächstes gibt er das Modell zurück, nachdem der Trainingsjob abgeschlossen wurde. Jede der drei benutzerdefinierten Trainingspipeline-Klassen erstellt eine Trainingspipeline unterschiedlich.
CustomTrainingJob
verwendet ein Python-Skript,
CustomContainerTrainingJob
verwendet einen benutzerdefinierten Container und CustomPythonPackageTrainingJob
verwendet ein Python-Paket und einen vordefinierten Container.
Die Klasse CustomJob
erstellt einen benutzerdefinierten Trainingsjob, ist aber keine Pipeline. Im Gegensatz zu einer benutzerdefinierten Trainingspipeline kann die CustomJob
-Klasse ein Dataset verwenden, das kein von Vertex AI verwaltetes Dataset ist, um ein Modell zu trainieren, und sie gibt das trainierte Modell nicht zurück. Da die Klasse verschiedene Dataset-Typen akzeptiert und kein trainiertes Modell zurückgibt, ist sie weniger automatisiert und flexibler als eine benutzerdefinierte Trainingspipeline.
CustomContainerTrainingJob
Verwenden Sie die Klasse CustomContainerTrainingJob
, um einen Container zum Starten einer benutzerdefinierten Trainingspipeline in Vertex AI zu verwenden.
Ein Beispiel für die Verwendung der Klasse CustomContainerTrainingJob
finden Sie in der Anleitung im Notebook Paralleltraining von PyTorch zur Bildklassifizierung mit mehreren Knoten und verteilten Daten auf GPU unter Verwendung von Vertex AI Training mit benutzerdefiniertem Container.
CustomJob
Verwenden Sie die Klasse CustomJob
, um ein Skript zum Starten eines benutzerdefinierten Trainingsjobs in Vertex AI zu verwenden.
Ein Trainingsjob ist flexibler als eine Trainingspipeline, da Sie nicht darauf beschränkt sind, Ihre Daten in ein von Vertex AI verwaltetes Dataset zu laden, und ein Verweis auf Ihr Modell nicht registriert wird, nachdem der Trainingsjob abgeschlossen wurde. Sie können beispielsweise die Klasse CustomJob
, die Methode from_local_script
und ein Skript zum Laden eines Datasets von scikit-learn oder TensorFlow verwenden. Alternativ können Sie Ihr trainiertes Modell analysieren oder testen, bevor es bei Vertex AI registriert wird.
Weitere Informationen zu benutzerdefinierten Trainingsjobs, einschließlich der Anforderungen vor dem Senden eines benutzerdefinierten Trainingsjobs, was ein benutzerdefinierter Job enthält, und ein Python-Codebeispiel finden Sie unter Benutzerdefinierte Trainingsjobs erstellen.
Da das CustomJob.run
nicht das trainierte Modell zurückgibt, müssen Sie ein Skript verwenden, um das Modellartefakt an einen Speicherort wie einen Cloud Storage-Bucket zu schreiben. Weitere Informationen finden Sie unter Trainiertes ML-Modell exportieren.
Der folgende Beispielcode zeigt, wie Sie einen benutzerdefinierten Job mithilfe einer Beispielspezifikation für einen Worker-Pool erstellen und ausführen. Der Code schreibt das trainierte Modell in einen Cloud Storage-Bucket namens artifact-bucket.
# Create a worker pool spec that specifies a TensorFlow cassava dataset and
# includes the machine type and Docker image. The Google Cloud project ID
# is 'project-id'.
worker_pool_specs=[
{
"replica_count": 1,
"machine_spec": { "machine_type": "n1-standard-8",
"accelerator_type": "NVIDIA_TESLA_V100",
"accelerator_count": 1
},
"container_spec": {"image_uri": "gcr.io/{project-id}/multiworker:cassava"}
},
{
"replica_count": 1,
"machine_spec": { "machine_type": "n1-standard-8",
"accelerator_type": "NVIDIA_TESLA_V100",
"accelerator_count": 1
},
"container_spec": {"image_uri": "gcr.io/{project-id}/multiworker:cassava"}
}
]
# Use the worker pool spec to create a custom training job. The custom training
# job artifacts are stored in the Cloud Storage bucket
# named 'artifact-bucket'.
your_custom_training_job = aiplatform.CustomJob(
display_name='multiworker-cassava-sdk',
worker_pool_specs=worker_pool_specs,
staging_bucket='gs://{artifact-bucket}')
# Run the training job. This method doesn't return the trained model.
my_multiworker_job.run()
CustomPythonPackageTrainingJob
Verwenden Sie die Klasse CustomPythonPackageTrainingJob
, um ein Python-Paket zum Starten einer benutzerdefinierten Trainingspipeline in Vertex AI zu verwenden.
Ein Beispiel für die Verwendung der Klasse CustomPythonPackageTrainingJob
finden Sie in der Anleitung im Notebook Benutzerdefiniertes Training mit Python-Paket, verwaltetem Text-Dataset und TensorFlow-Container.
CustomTrainingJob
Verwenden Sie die Klasse CustomTrainingJob
, um eine benutzerdefinierte Trainingspipeline in Vertex AI mit einem Skript zu starten.
Ein Beispiel für die Verwendung der Klasse CustomTrainingJob
finden Sie in der Anleitung im Notebook Benutzerdefiniertes Trainingsmodell zur Klassifizierung von Bildern für die Online-Vorhersage mit Erklärbarkeit.
Hyperparameter-Trainingsklasse
Das Vertex AI SDK enthält eine Klasse für die Hyperparameter-Abstimmung. Durch die Hyperparameter-Abstimmung wird die Vorhersage-Accuracy des Modells maximiert, indem Variablen (auch Hyperparameter genannt) optimiert werden, die den Trainingsprozess steuern. Weitere Informationen finden Sie in der Übersicht über die Hyperparameter-Abstimmung.
HyperparameterTuningJob
Verwenden Sie die Klasse HyperparameterTuningJob
, um die Hyperparameter-Abstimmung in einer Trainingsanwendung zu automatisieren.
Informationen zum Erstellen und Abstimmen eines benutzerdefiniert trainierten Modells mit der Klasse HyperparameterTuningJob
finden Sie in der Anleitung Hyperparameter-Abstimmung auf GitHub.
Informationen zum Verwenden der Klasse HyperparameterTuningJob
zum Ausführen eines Hyperparameter-Abstimmungsjobs von Vertex AI für ein TensorFlow-Modell finden Sie in der Anleitung Hyperparameter-Abstimmung für ein TensorFlow-Modell ausführen auf GitHub.
Pipeline-Trainingskurs
Eine Pipeline orchestriert Ihren ML-Workflow in Vertex AI. Mithilfe einer Pipeline können Sie Ihre Systeme für maschinelles Lernen automatisieren, überwachen und verwalten. Weitere Informationen zu Pipelines in Vertex AI finden Sie unter Einführung in Vertex AI-Pipelines.
PipelineJob
Eine Instanz der Klasse PipelineJob
stellt eine Vertex AI-Pipeline dar.
Es gibt mehrere Notebooks mit Anleitungen zur Verwendung der Klasse PipelineJob
:
Informationen zum Ausführen einer Kubeflow Pipelines (KFP)-Pipeline finden Sie in der Anleitung Pipeline-Steuerungsstrukturen mit dem KFP SDK auf GitHub.
So trainieren Sie ein tabellarisches Klassifizierungsmodell scikit-learn und erstellen einen Batchvorhersagejob mit einer Vertex AI-Pipeline, siehe Anleitung Training und Batchvorhersage mit BigQuery-Quelle und -Ziel für ein benutzerdefiniertes tabellarisches Klassifizierungsmodell auf GitHub.
Informationen zum Erstellen eines AutoML-Bildklassifizierungsmodells und Verwenden einer Vertex AI-Pipeline finden Sie im GitHub-Tutorial AutoML-Bildklassifizierungspipelines mit google-cloud-pipeline-components.
Informationen zur Verwendung einer Pipeline zum Erstellen eines AutoML-Textklassifizierungsmodells finden Sie in der Anleitung AutoML-Textklassifizierungspipelines mit google-cloud-pipeline-components auf GitHub.
Weitere Anleitungs-Notebooks finden Sie in den Notebooks-Anleitungen zu Vertex AI.