L'SDK Vertex AI include diverse classi che utilizzi per addestrare il modello. La maggior parte dei classi di addestramento viene utilizzata per creare, addestrare e
ripristinare il modello. Utilizza HyperparameterTuningJob
per ottimizzare gli iperparametri del job di addestramento. Utilizza la funzionalità
PipelineJob
per gestire il tuo flusso di lavoro di machine learning (ML) in modo da poter automatizzare e monitorare i tuoi sistemi di ML.
I seguenti argomenti forniscono una descrizione generale di ogni classe correlata all'addestramento nell'SDK Vertex AI.
Classi di addestramento AutoML per i dati strutturati
L'SDK Vertex AI include le seguenti classi utilizzate per addestrare un modello AutoML strutturato.
AutoMLForecastingTrainingJob
La classe AutoMLForecastingTrainingJob
utilizza il metodo di addestramento AutoML
per addestrare ed eseguire un modello di previsione.
Il metodo di addestramento AutoML
è una buona scelta per la maggior parte dei casi d'uso di previsione. Se il tuo caso d'uso non trae vantaggio dal metodo di addestramento Seq2seq
o Temporal fusion transformer
offerto rispettivamente dalle classi SequenceToSequencePlusForecastingTrainingJob
e TemporalFusionTransformerForecastingTrainingJob
, è probabile che AutoML
sia il metodo di addestramento migliore per le tue previsioni di previsione.
Per il codice di esempio che mostra come utilizzare
AutoMLForecastingTrainingJob
, consulta l'articolo Creare un esempio di previsione della pipeline di addestramento su GitHub.
AutoMLTabularTrainingJob
La classe AutoMLTabularTrainingJob
rappresenta un job che crea, addestra e restituisce un modello tabulare AutoML
.
Per ulteriori informazioni sull'addestramento dei modelli tabulari e su Vertex AI, consulta Dati tabulari e Panoramica dei dati tabulari.
Il seguente snippet di codice di esempio mostra come utilizzare l'SDK Vertex AI per creare ed eseguire un modello tabulare AutoML
:
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
La classe
SequenceToSequencePlusForecastingTrainingJob
utilizza il metodo di addestramento Seq2seq+
per addestrare ed eseguire un modello di previsione.
Il metodo di addestramento Seq2seq+
è una buona scelta per la sperimentazione. Il suo algoritmo è più semplice e utilizza uno spazio di ricerca più piccolo rispetto all'opzione AutoML
.
Seq2seq+
è una buona opzione se vuoi ottenere risultati rapidi e i tuoi set di dati sono inferiori a 1 GB.
Per il codice di esempio che mostra come utilizzare
SequenceToSequencePlusForecastingTrainingJob
, consulta l'articolo Creare un esempio di pipeline di addestramento per la previsione di Seq2seq su GitHub.
TemporalFusionTransformerForecastingTrainingJob
La classe
TemporalFusionTransformerForecastingTrainingJob
utilizza il metodo di addestramento del trasformatore di fusione temporale (TFT) per addestrare e eseguire un modello di previsione. Il metodo di addestramento TFT implementa un modello di rete neurale profonda (DNN) basato sull'attenzione che utilizza un'attività di previsione multi-orizzonte per produrre previsioni.
Per il codice di esempio che mostra come utilizzare
TemporalFusionTransformerForecastingTrainingJob
,
consulta l'esempio di creazione di una pipeline di addestramento per la previsione con il trasformatore di fusione temporale
su GitHub.
TimeSeriesDenseEncoderForecastingTrainingJob
La classe
TimeSeriesDenseEncoderForecastingTrainingJob
utilizza il metodo di addestramento Time-series Dense Encoder (TiDE) per addestrare ed eseguire un
modello di previsione. TiDE utilizza un
percettrone multistrato (MLP) per fornire la
velocità di previsione dei modelli lineari con covariabili e dipendenze non lineari.
Per ulteriori informazioni su TiDE, consulta
Recenti progressi nelle previsioni a lungo termine approfondite
e questo
post del blog su TiDE.
Classi di addestramento AutoML per i dati non strutturati
L'SDK Vertex AI include le seguenti classi per addestrare modelli di immagini, testo e video non strutturati:
AutoMLImageTrainingJob
Utilizza la classe AutoMLImageTrainingJob
per creare, addestrare e restituire un modello di immagini. Per ulteriori informazioni su come lavorare con i modelli di dati immagine in Vertex AI, consulta Dati immagine.
Per un esempio di come utilizzare la classe
AutoMLImageTrainingJob
, consulta il
tutorial nel notebook Classificazione di immagini con AutoML.
AutoMLTextTrainingJob
Utilizza la classe AutoMLTextTrainingJob
per
creare, addestrare e restituire un modello di testo. Per saperne di più su come lavorare con i modelli di dati di testo in Vertex AI, consulta Dati di testo.
Per un esempio di come utilizzare la classe
AutoMLTextTrainingJob
, consulta il
tutorial nel notebook Modello di estrazione di entità di testo per l'addestramento di AutoML per la previsione online.
AutoMLVideoTrainingJob
Utilizza la classe AutoMLVideoTrainingJob
per
creare, addestrare e restituire un modello video. Per ulteriori informazioni su come lavorare con i modelli di dati video in Vertex AI, consulta Dati video.
Per un esempio di utilizzo della classe
AutoMLVideoTrainingJob
, consulta il
tutorial nel notebook Addestramento di un modello di riconoscimento di azioni video AutoML per la previsione batch.
Classi di addestramento dei dati personalizzati
Puoi utilizzare l'SDK Vertex AI per automatizzare un flusso di lavoro di addestramento personalizzato. Per informazioni sull'utilizzo di Vertex AI per eseguire applicazioni di addestramento personalizzato, consulta la Panoramica dell'addestramento personalizzato.
L'SDK Vertex AI include tre classi che creano una
pipeline di addestramento personalizzata. Una pipeline di addestramento accetta un set di dati gestito da Vertex AI di input che utilizza per addestrare un modello. Poi restituisce il modello al termine del job di addestramento. Ciascuno dei tre classi di pipeline di addestramento personalizzato
crea una pipeline di addestramento in modo diverso.
CustomTrainingJob
utilizza uno script Python,
CustomContainerTrainingJob
usa un
container personalizzato e
CustomPythonPackageTrainingJob
utilizza un pacchetto Python e un container predefinito.
La classe CustomJob
crea un job di addestramento personalizzato, ma non è una pipeline. A differenza di una pipeline di addestramento personalizzata, la classe
CustomJob
può utilizzare un set di dati che non è un set di dati gestito da Vertex AI per addestrare un modello e non restituisce il
modello addestrato. Poiché la classe accetta diversi tipi di set di dati e non
restituisce un modello addestrato, è meno automatizzata e più flessibile di una
pipeline di addestramento personalizzata.
CustomContainerTrainingJob
Utilizza la classe CustomContainerTrainingJob
per utilizzare un contenitore per lanciare una pipeline di addestramento personalizzato in Vertex AI.
Per un esempio di come utilizzare la classe
CustomContainerTrainingJob
,
consulta il tutorial nel notebook PyTorch Image Classification Multi-Node Distributed
Data Parallel Training on GPU using Vertex AI Training with Custom Container.
CustomJob
Utilizza la classe CustomJob
per utilizzare uno script per lanciare un
job di addestramento personalizzato in Vertex AI.
Un job di addestramento è più flessibile di una pipeline di addestramento perché non hai bisogno di caricare i dati in un set di dati gestito da Vertex AI e un riferimento al tuo modello non viene registrato al termine del job di addestramento. Ad esempio, potresti utilizzare la classe CustomJob
, il suo metodo from_local_script
e uno script per caricare un set di dati da scikit-learn o TensorFlow. In alternativa, potresti voler analizzare o testare il tuo modello addestrato prima che venga registrato in Vertex AI.
Per ulteriori informazioni sui job di addestramento personalizzato, inclusi i requisiti prima di inviare un job di addestramento personalizzato, i componenti di un job personalizzato e un esempio di codice Python, consulta Creare job di addestramento personalizzato.
Poiché
CustomJob.run
non restituisce il modello addestrato, devi utilizzare uno script per scrivere l'elemento
del modello in una posizione, ad esempio un bucket Cloud Storage. Per ulteriori informazioni, consulta Esportare un modello di ML addestrato.
Il seguente codice di esempio mostra come creare ed eseguire un job personalizzato utilizzando una specifica del pool di worker di esempio. Il codice scrive il modello addestrato in un bucket Cloud Storage denominato 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
Utilizza la classe
CustomPythonPackageTrainingJob
per utilizzare un pacchetto Python per lanciare una pipeline di addestramento personalizzato in
Vertex AI.
Per un esempio di come utilizzare la classe
CustomPythonPackageTrainingJob
, consulta il tutorial nel notebook Addestramento personalizzato con pacchetto Python, set di dati di testo gestito e container di servizio TensorFlow.
CustomTrainingJob
Utilizza la classe CustomTrainingJob
per avviare una
pipeline di addestramento personalizzato in Vertex AI con uno script.
Per un esempio di come utilizzare la classe
CustomTrainingJob
, consulta il tutorial nel
notebook
Modello di classificazione delle immagini con addestramento personalizzato per la previsione online con interpretabilità.
Classe di addestramento degli iperparametri
L'SDK Vertex AI include una classe per l'ottimizzazione degli iperparametri. L'ottimizzazione degli iperparametri massimizza l'accuratezza predittiva del modello ottimizzando le variabili (chiamate iperparametri) che regolano il processo di addestramento. Per maggiori informazioni, consulta la Panoramica dell'ottimizzazione degli iperparametri.
HyperparameterTuningJob
Utilizza la classe HyperparameterTuningJob
per automatizzare l'ottimizzazione degli iperparametri in un'applicazione di addestramento.
Per scoprire come utilizzare la classe HyperparameterTuningJob
per creare e ottimizzare un modello addestrato in modo personalizzato, consulta il
tutorial sull'ottimizzazione degli iperparametri su GitHub.
Per scoprire come utilizzare la classe HyperparameterTuningJob
per eseguire un job di ottimizzazione degli iperparametri di Vertex AI per un modello TensorFlow, consulta il tutorial su GitHub Eseguire l'ottimizzazione degli iperparametri per un modello TensorFlow.
Classe di addestramento della pipeline
Una pipeline orchestra il flusso di lavoro di ML in Vertex AI. Puoi utilizzare una pipeline per automatizzare, monitorare e gestire i tuoi sistemi di machine learning. Per scoprire di più sulle pipeline in Vertex AI, consulta Introduzione alle pipeline di Vertex AI.
PipelineJob
Un'istanza della classe PipelineJob
rappresenta una pipeline Vertex AI.
Esistono diversi notebook di tutorial che mostrano come utilizzare la classe PipelineJob
:
Per scoprire come eseguire una pipeline Kubeflow Pipelines (KFP), consulta il tutorial su GitHub Strutture di controllo delle pipeline con l'SDK KFP.
Per scoprire come addestrare un modello di classificazione tabulare scikit-learn e creare un job di previsione in batch con una pipeline Vertex AI, consulta il tutorial Addestramento e previsione in batch con origine e destinazione BigQuery per un modello di classificazione tabulare personalizzato su GitHub.
Per scoprire come creare un modello di classificazione delle immagini AutoML e utilizzare una pipeline Vertex AI, consulta il tutorial su GitHub sulle pipeline di classificazione delle immagini AutoML che utilizzano google-cloud-pipeline-components.
Per scoprire come utilizzare una pipeline per creare un modello di classificazione del testo AutoML, consulta il tutorial su GitHub sulle pipeline di classificazione del testo AutoML che utilizzano google-cloud-pipeline-components.
Per altri notebook di tutorial, consulta i tutorial sui notebook di Vertex AI.
Passaggi successivi
- Scopri di più sull'SDK Vertex AI.