Trainingsbezogene Klassen

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. Verwenden Sie den PipelineJob-Workflow für maschinelles Lernen (ML), damit Sie Ihre ML-Systeme automatisieren und überwachen können.

Die folgenden Themen bieten 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 ist eine gute Wahl für die meisten Anwendungsfälle für Prognosen. 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. Die TFT-Trainingsmethode implementiert ein auf einem neuronalen Deep-Learning-Netzwerk (DNN) basierendes Modell, das eine Prognoseaufgabe mit mehreren Horizonten verwendet, um Vorhersagen zu erstellen.

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 zum Arbeiten 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 zum Arbeiten 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 zum Arbeiten 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 unter Übersicht über 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 wird das Modell nach Abschluss des Trainingsjobs zurückgegeben. 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 jedoch 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 in 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 mit einer Beispiel-Worker-Pool-Spezifikation einen benutzerdefinierten Job 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 Hyperparameter-Abstimmung wird die Vorhersagegenauigkeit Ihres Modells maximiert. Dazu werden Variablen (sogenannte Hyperparameter) optimiert, die den Trainingsprozess steuern. Weitere Informationen finden Sie unter Hyperparameter-Abstimmung.

HyperparameterTuningJob

Verwenden Sie die Klasse HyperparameterTuningJob, um die Hyperparameter-Abstimmung für eine Trainingsanwendung zu automatisieren.

Informationen zum Erstellen und Optimieren eines benutzerdefinierten 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-Trainingsklasse

Eine Pipeline orchestriert Ihren ML-Workflow in Vertex AI. Mithilfe einer Pipeline können Sie Ihre Systeme für maschinelles Lernen automatisieren, überwachen und steuern. Weitere Informationen zu Pipelines in Vertex AI finden Sie unter Einführung in Vertex AI pipelines.

PipelineJob

Eine Instanz der PipelineJob-Klasse stellt eine Vertex AI-Pipeline dar.

Es gibt mehrere Anleitungs-Notebooks, die zeigen, wie die Klasse PipelineJob verwendet wird:

Weitere Anleitungs-Notebooks finden Sie in den Notebooks-Anleitungen zu Vertex AI.

Nächste Schritte