L'SDK Vertex AI include diverse classi che utilizzi durante l'addestramento del modello. La maggior parte delle classi di addestramento viene utilizzata per creare, addestrare e restituire il modello. Utilizza
HyperparameterTuningJob
per ottimizzare
gli iperparametri del job di addestramento. Utilizza
PipelineJob
per gestire il tuo flusso di lavoro di machine learning (ML), in modo da automatizzare e monitorare i tuoi sistemi di ML.
I seguenti argomenti forniscono una descrizione generale di ciascuna classe correlata all'addestramento nell'SDK Vertex AI.
Classi di addestramento AutoML per 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 dalle classi SequenceToSequencePlusForecastingTrainingJob
e TemporalFusionTransformerForecastingTrainingJob
rispettivamente, allora AutoML
è probabilmente il metodo di addestramento migliore per le tue previsioni.
Per un codice campione che mostra come utilizzare
AutoMLForecastingTrainingJob
, vedi l'esempio di creazione di una pipeline di addestramento per la previsione su GitHub.
AutoMLTabularTrainingJob
La classe AutoMLTabularTrainingJob
rappresenta un job che crea, addestra e restituisce un modello tabulare AutoML
.
Per ulteriori informazioni sull'addestramento di modelli tabulari e su Vertex AI, consulta le sezioni 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,
)
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 risultati rapidi e i tuoi set di dati sono
inferiori a 1 GB.
Per un codice campione che mostra come utilizzare
SequenceToSequencePlusForecastingTrainingJob
, consulta l'esempio di creazione di una pipeline di addestramento per la previsione 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) basato sull'attenzione che utilizza un'attività di previsione su più orizzonti per generare previsioni.
Per un codice campione che mostra come utilizzare
TemporalFusionTransformerForecastingTrainingJob
,
consulta l'esempio di creazione di una pipeline di addestramento per la previsione del Transformer 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 covariate e dipendenze non lineari.
Per ulteriori informazioni su TiDE, consulta
Recent advances in deep long-horizon forecasting
e questo
post del blog su TiDE.
Classi di addestramento AutoML per dati non strutturati
L'SDK Vertex AI include le seguenti classi per addestrare modelli di immagini e video non strutturati:
AutoMLImageTrainingJob
Utilizza la classe AutoMLImageTrainingJob
per
creare, addestrare e restituire un modello di immagine. Per saperne di più 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
AutoML.
AutoMLVideoTrainingJob
Utilizza la classe AutoMLVideoTrainingJob
per
creare, addestrare e restituire un modello video. Per saperne di più su come lavorare
con i modelli di dati video in Vertex AI, consulta
Dati video.
Per un esempio di come utilizzare la
classe AutoMLVideoTrainingJob
, consulta il
tutorial nel
notebook Modello di riconoscimento di azioni di addestramento AutoML per la previsione batch di video.
Classi di addestramento personalizzato dei dati
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. Successivamente, restituisce il modello al termine del job di addestramento. Ognuna delle tre classi di 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.
CustomContainerTrainingJob
Utilizza la classe CustomContainerTrainingJob
per utilizzare un container per avviare una pipeline di addestramento personalizzato in Vertex AI.
Per un esempio di come utilizzare la classe
CustomContainerTrainingJob
, consulta il tutorial nel blocco note
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 avviare un job di addestramento personalizzato in Vertex AI.
Un job di addestramento è più flessibile di una pipeline di addestramento perché non sei
limitato al caricamento dei dati in un set di dati gestito da Vertex AI e un
riferimento al modello non viene registrato al termine del job di addestramento. Ad esempio, potresti voler utilizzare la classe CustomJob
, il relativo 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 modello addestrato prima di registrarlo 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 posizione, ad esempio un bucket Cloud Storage. Per saperne di più,
consulta Esportare un modello di ML addestrato.
Il seguente codice campione mostra come creare ed eseguire un job personalizzato utilizzando una specifica di 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 avviare una pipeline di addestramento personalizzato in
Vertex AI.
Per un esempio di come utilizzare la classe
CustomPythonPackageTrainingJob
, consulta il tutorial nel notebook
Addestramento personalizzato utilizzando il pacchetto Python, il set di dati di testo gestito e il container TensorFlow Serving.
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
Custom training image classification model for online prediction with
explainability.
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 (note come 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 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 l'esercitazione
Eseguire l'ottimizzazione degli iperparametri per un modello TensorFlow su GitHub.
Pipeline training class
Una pipeline orchestra il flusso di lavoro ML in Vertex AI. Puoi utilizzare una pipeline per automatizzare, monitorare e gestire i tuoi sistemi di machine learning. Per saperne di più sulle pipeline in Vertex AI, consulta Introduzione a Vertex AI Pipelines.
PipelineJob
Un'istanza della classe PipelineJob
rappresenta una pipeline Vertex AI.
Esistono diversi notebook tutorial che mostrano come utilizzare la classe PipelineJob
:
Per scoprire come eseguire una pipeline Kubeflow Pipelines (KFP), consulta il tutorial Strutture di controllo delle pipeline utilizzando l'SDK KFP su GitHub.
Per scoprire come addestrare un modello di classificazione tabulare scikit-learn e creare un job di previsione batch con una pipeline Vertex AI, consulta il tutorial Addestramento e previsione 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 Pipeline di classificazione delle immagini AutoML utilizzando google-cloud-pipeline-components su GitHub.
Per altri notebook tutorial, consulta Tutorial sui notebook di Vertex AI.
Passaggi successivi
- Scopri di più sull'SDK Vertex AI.