L'SDK Vertex AI include diverse classi che utilizzi quando
addestra il tuo modello. La maggior parte dei corsi di addestramento viene utilizzata per creare, addestrare e restituire il modello. Utilizza HyperparameterTuningJob
per regolare gli iperparametri del job di addestramento. Utilizza PipelineJob
per gestire il flusso di lavoro di machine learning (ML) in modo da poter automatizzare e monitorare i tuoi sistemi di machine learning.
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 corso Seq2seq
o dal metodo di addestramento Temporal fusion transformer
offerto rispettivamente dalle classi SequenceToSequencePlusForecastingTrainingJob
e TemporalFusionTransformerForecastingTrainingJob
, AutoML
è probabilmente il metodo di addestramento migliore per le previsioni.
Per un codice campione che mostra come utilizzare AutoMLForecastingTrainingJob
, consulta l'esempio di previsione per la creazione di una pipeline di addestramento su GitHub.
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 sperimentare. Il suo algoritmo è più semplice e utilizza uno spazio di ricerca più piccolo dell'opzione AutoML
.
Seq2seq+
è una buona opzione se vuoi risultati rapidi e i tuoi set di dati hanno dimensioni inferiori a 1 GB.
Per un codice campione che mostra come utilizzare SequenceToSequencePlusForecastingTrainingJob
, consulta l'articolo Creare una pipeline di addestramento che prevede l'esempio Seq2seq su GitHub.
TemporalFusionTransformerForecastingTrainingJob
La classe TemporalFusionTransformerForecastingTrainingJob
utilizza il metodo di addestramento Temporal Fusion Transformer (TFT) per addestrare ed eseguire un modello di previsione. Il metodo di addestramento TFT implementa un modello di rete neurale profonda (DNN) basata sull'attenzione che utilizza un'attività di previsione multi-orizzonte per produrre previsioni.
Per il codice campione che mostra come utilizzare TemporalFusionTransformerForecastingTrainingJob
, consulta l'esempio di Creare una pipeline di addestramento per la previsione della trasformazione fusione su GitHub.
AutoMLTabularTrainingJob
La 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 campione 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,
)
Classi di addestramento AutoML per 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 immagine. Per ulteriori informazioni sull'utilizzo dei modelli di dati immagine in Vertex AI, consulta Dati immagine.
Per un esempio di come utilizzare la classe AutoMLImageTrainingJob
, guarda il tutorial nel blocco note Classificazione immagini AutoML.
AutoMLTextTrainingJob
Utilizza la classe AutoMLTextTrainingJob
per creare, addestrare e restituire un modello di testo. Per ulteriori informazioni sull'utilizzo dei modelli di dati di testo in Vertex AI, consulta Dati di testo.
Per un esempio di come utilizzare la classeAutoMLTextTrainingJob
, vedere il tutorial nel modello di estrazione delle entità di testo di addestramento AutoML per la previsione online.
AutoMLVideoTrainingJob
Utilizza la classe AutoMLVideoTrainingJob
per
creare, addestrare e restituire un modello di video. Per ulteriori informazioni sull'utilizzo dei modelli di dati video in Vertex AI, consulta Dati video.
Per un esempio di come utilizzare la classe AutoMLVideoTrainingJob
, guarda il tutorial nel blocco note del video di addestramento per l'addestramento AutoML per la previsione batch.
Corsi di formazione 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 di Vertex AI utilizzato per addestrare un modello. Poi restituisce il modello al termine del job di addestramento. Ognuna delle tre classi della pipeline di addestramento personalizzato crea una pipeline di addestramento in modo diverso.
CustomTrainingJob
utilizza uno script Python, CustomContainerTrainingJob
utilizza 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.
CustomTrainingJob
Utilizza la classe CustomTrainingJob
per avviare una pipeline di addestramento personalizzata in Vertex AI con uno script.
Per un esempio di come utilizzare la classeCustomTrainingJob
, vedere il tutorial nel modello di classificazione delle immagini di addestramento personalizzato per la previsione online con spiegabilità blocco note.
CustomContainerTrainingJob
Utilizza la classe CustomContainerTrainingJob
per utilizzare un container per avviare una pipeline di addestramento personalizzata in Vertex AI.
Per un esempio di come utilizzare la classeCustomContainerTrainingJob
, vedere il tutorial nel corso di classificazione delle immagini PyTorch Classificazione multi-nodo di dati distribuiti in parallelo sulla GPU utilizzando Vertex AI Training con container personalizzato.
CustomPythonPackageTrainingJob
Utilizza la classe CustomPythonPackageTrainingJob
per utilizzare un pacchetto Python per avviare una pipeline di addestramento personalizzata in Vertex AI.
Per un esempio di come utilizzare la classe CustomPythonPackageTrainingJob
, guarda il tutorial nel addestramento personalizzato utilizzando il pacchetto Python, il set di dati di testo gestito e il blocco note per la pubblicazione in TensorFlow.
CustomJob
Utilizza la classe CustomJob
per utilizzare uno script per avviare un job di addestramento personalizzato in Vertex AI.
Un job di addestramento è più flessibile di una pipeline di addestramento perché non devi limitare il caricamento dei 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 metodo from_local_script
e uno script per caricare un set di dati da scikit-learn o TensorFlow. Oppure potresti voler analizzare o testare il tuo modello addestrato prima che sia registrato in Vertex AI.
Per ulteriori informazioni sui job di addestramento personalizzato, inclusi i requisiti prima di inviare un job di addestramento personalizzato, cosa include 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'artefatto del modello in una località, ad esempio un bucket Cloud Storage. Per ulteriori informazioni, consulta Esportare un modello di machine learning addestrato.
Il codice campione riportato di seguito illustra 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()
Classe di addestramento 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 (note come iperparametri) che regolano il processo di addestramento. Per ulteriori informazioni, consulta la panoramica sull'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
e creare un modello addestrato personalizzato, consulta il tutorial sull'ottimizzazione degli iperparametri su GitHub.
P