Corsi di formazione

L'SDK Vertex AI include diverse classi che puoi utilizzare per addestrare il 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. Usa il PipelineJob per gestire il flusso di lavoro del tuo machine learning (ML) per automatizzare e monitorare i tuoi sistemi di ML.

Gli argomenti seguenti forniscono una descrizione generale di ogni classe relativa 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, AutoML è probabilmente il miglior metodo di addestramento per le previsioni di previsione.

Per un codice campione che mostra come utilizzare AutoMLForecastingTrainingJob, consulta 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 di modelli tabulari e su Vertex AI, consulta Dati tabulari e Panoramica sui 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 di dimensioni inferiori a 1 GB.

Per un codice campione che mostra come utilizzare SequenceToSequencePlusForecastingTrainingJob, consulta Creare una pipeline di addestramento con previsioni Seq2seq di esempio su GitHub.

TemporalFusionTransformerForecastingTrainingJob

La classe TemporalFusionTransformerForecastingTrainingJob utilizza il metodo di addestramento del trasformatore di fusione temporale (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 produrre previsioni.

Per un codice campione che mostra come utilizzare TemporalFusionTransformerForecastingTrainingJob, consulta l'articolo Creare una pipeline di addestramento con previsione del trasformatore di fusione temporale su GitHub.

TimeSeriesDenseEncoderForecastingTrainingJob

La classe TimeSeriesDenseEncoderForecastingTrainingJob utilizza il metodo di addestramento TiDE (Time-series Dense Encoder) per addestrare ed eseguire un modello di previsione. TiDE utilizza un perceptrone multilivello (MLP) per fornire la velocità di previsione di modelli lineari con covariate e dipendenze non lineari. Per ulteriori informazioni, consulta I recenti progressi nelle previsioni approfondite a lungo orizzonte e questo post del blog di TiDE.

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 di immagine in Vertex AI, consulta Dati di immagine.

Per un esempio di come utilizzare la classe AutoMLImageTrainingJob, consulta il tutorial nel blocco note per la classificazione delle immagini AutoML.

AutoMLTextTrainingJob

Utilizza la classe AutoMLTextTrainingJob per creare, addestrare e restituire un modello di testo. Per ulteriori informazioni sull'utilizzo di modelli di dati di testo in Vertex AI, consulta Dati di testo.

Per un esempio di come utilizzare la classe AutoMLTextTrainingJob, vedi il tutorial nel modello di estrazione delle entità di testo per l'addestramento AutoML per la previsione online.

AutoMLVideoTrainingJob

Utilizza la classe AutoMLVideoTrainingJob per creare, addestrare e restituire un modello 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 modello di riconoscimento delle azioni del video di addestramento AutoML per la previsione batch.

Classi di addestramento dei dati personalizzati

Puoi usare 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 Panoramica sull'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 per addestrare un modello. Poi, restituisce il modello dopo il completamento del job di addestramento. Ognuna delle tre classi di pipeline di addestramento personalizzate crea una pipeline di addestramento diversa. 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 diverso da 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 automatizzato e più flessibile di una pipeline di addestramento personalizzata.

CustomContainerTrainingJob

Usa la classe CustomContainerTrainingJob per usare un container per avviare una pipeline di addestramento personalizzata in Vertex AI.

Per un esempio di come utilizzare la classe CustomContainerTrainingJob, consulta il tutorial nel blocco note Addestramento parallelo di dati distribuiti multi-nodo di classificazione delle immagini PyTorch on GPU mediante Vertex AI Training with Custom Container.

CustomJob

Usa 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 hai limitazioni al 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 relativo metodo from_local_script e uno script per caricare un set di dati da scikit-learn o TensorFlow. Potresti anche analizzare o testare il 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 ML addestrato.

Il seguente codice campione 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

Usa 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, vedi il tutorial nel blocco note Addestramento personalizzato con pacchetto Python, set di dati di testo gestito e blocco note per il container di gestione TensorFlow.

CustomTrainingJob

Usa la classe CustomTrainingJob per avviare una pipeline di addestramento personalizzata in Vertex AI con uno script.

Per un esempio di come utilizzare la classe CustomTrainingJob, vedi il tutorial nel blocco note per il modello di classificazione delle immagini di addestramento personalizzato per la previsione online con spiegabilità.

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 saperne di più, consulta Panoramica dell'ottimizzazione degli iperparametri.

HyperparameterTuningJob

Utilizzare la classe HyperparameterTuningJob per automatizzare l'ottimizzazione degli iperparametri su un'applicazione di addestramento.

Per scoprire come utilizzare la classe HyperparameterTuningJob per creare e ottimizzare un modello addestrato personalizzato, consulta il tutorial 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 Esegui l'ottimizzazione degli iperparametri per un modello TensorFlow su GitHub.

Corso di addestramento pipeline

Una pipeline orchestra il tuo flusso di lavoro 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 blocchi note del tutorial che mostrano come utilizzare il corso PipelineJob:

Per altri tutorial blocchi note, consulta i tutorial su Vertex AI Notebooks.

Passaggi successivi