Corsi di formazione

L'SDK Vertex AI include diverse classi che utilizzi per addestrare il modello. La maggior parte dei corsi di formazione è usata per creare, addestrare restituire il modello. Utilizza HyperparameterTuningJob per ottimizzare gli iperparametri del job di addestramento. Utilizza la PipelineJob Gestisci il tuo machine learning (ML) per automatizzare e monitorare i sistemi 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 saperne di più sull'addestramento dei modelli tabulari e di Vertex AI, consulta Dati tabulari e Dati tabulari Panoramica.

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 inferiore a 1 GB.

Per un codice campione che mostra come utilizzare SequenceToSequencePlusForecastingTrainingJob, consulta l'articolo Creare una pipeline di addestramento che preveda l'esempio 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 modello di rete neurale profonda (DNN, Deep Neural Network, rete neurale profonda) che utilizza un'attività di previsione su più orizzonti per 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 trasformatore di fusione temporale su GitHub.

TimeSeriesDenseEncoderForecastingTrainingJob

La TimeSeriesDenseEncoderForecastingTrainingJob utilizza il metodo di addestramento TiDE (Time-Series Dense Encoder) 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 sul lavoro con i modelli di dati immagine in Vertex AI, consulta Dati delle immagini.

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 ulteriori informazioni sul lavoro con i modelli di dati di testo in Vertex AI, vedi Dati di testo.

Per un esempio di come utilizzare AutoMLTextTrainingJob, consulta le tutorial sul modello di estrazione delle entità del testo di addestramento AutoML per previsione un blocco note personalizzato.

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 come utilizzare AutoMLVideoTrainingJob, consulta le tutorial sul modello di riconoscimento delle azioni video di addestramento AutoML per batch previsione un blocco note personalizzato.

Classi di addestramento per 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 l'addestramento personalizzato vedi Panoramica dell'addestramento personalizzato.

L'SDK Vertex AI include tre classi che creano una pipeline di addestramento personalizzata. Una pipeline di addestramento accetta una pipeline di input gestita da Vertex AI usato 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 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 avviare un 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. Per Ad esempio, potresti voler utilizzare la classe CustomJob, from_local_script e uno script per caricare un set di dati scikit-learn oppure TensorFlow: Potresti anche voler analizzare o testare del modello addestrato prima che sia registrato in Vertex AI.

Per ulteriori informazioni sui job di addestramento personalizzato, inclusi i requisiti prima un job di addestramento personalizzato, cosa include un job personalizzato e un codice Python consulta l'esempio Crea job di addestramento personalizzati.

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 codice campione seguente 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 CustomPythonPackageTrainingJob vedi il tutorial nella sezione Addestramento personalizzato con il pacchetto Python, un set di dati di testo e TensorFlow container un blocco note personalizzato.

CustomTrainingJob

Utilizza la classe CustomTrainingJob per lanciare una pipeline di addestramento personalizzato in Vertex AI con uno script.

Per un esempio di come utilizzare CustomTrainingJob, guarda il tutorial nella il Modello personalizzato di classificazione delle immagini di addestramento per la previsione online con spiegabilità un blocco note personalizzato.

Corso 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 mediante l'ottimizzazione (note come iperparametri) che regolano il processo di addestramento. Per per ulteriori informazioni, consulta Panoramica degli iperparametri dell'ottimizzazione.

HyperparameterTuningJob

Utilizzare il corso 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 le 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 Esegui l'ottimizzazione degli iperparametri per un modello TensorFlow su GitHub.

Classe di addestramento della 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 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.

Sono disponibili diversi blocchi note tutorial che mostrano come utilizzare la classe PipelineJob:

Per altri notebook di tutorial, consulta i tutorial sui notebook di Vertex AI.

Passaggi successivi