Crea job di addestramento personalizzato

I job di addestramento personalizzato (risorse CustomJob nell'API Vertex AI) sono il modo base per eseguire il codice di addestramento di machine learning (ML) personalizzato in Vertex AI.

Prima di inviare un job

Prima di creare un elemento CustomJob in Vertex AI, devi creare un'applicazione di addestramento Python o un'immagine container personalizzata per definire il codice di addestramento e le dipendenze che vuoi eseguire su Vertex AI.

Ti consigliamo di utilizzare la funzionalità autopackaging dell'interfaccia a riga di comando di Google Cloud, descritta in una sezione successiva di questa guida, per creare un'immagine container Docker dal codice sulla tua macchina locale, eseguire il push di questa immagine container a Container Registry e creare un elemento CustomJob, il tutto con un unico comando.

In caso contrario, devi creare manualmente un'applicazione di addestramento Python o un'immagine container personalizzata. Per ulteriori informazioni, segui i link in questa prima sezione di questo paragrafo.

Se non sai quale di queste opzioni scegliere, consulta i requisiti relativi al codice di addestramento per saperne di più.

Che cosa include un job personalizzato

Quando crei un job personalizzato, devi specificare le impostazioni necessarie per consentire a Vertex AI di eseguire il tuo codice di addestramento, tra cui:

All'interno dei pool di worker, puoi specificare le seguenti impostazioni:

Configura addestramento distribuito

Puoi configurare un CustomJob per l'addestramento distribuito specificando più pool di worker.

La maggior parte degli esempi in questa pagina mostra i job di addestramento con replica singola con un pool di worker. Per modificarle per l'addestramento distribuito:

  • Utilizza il tuo primo pool di worker per configurare la replica principale e imposta il conteggio delle repliche su 1.
  • Aggiungi altri pool di worker per configurare le repliche dei worker, le repliche del server dei parametri o le repliche del valutatore, se il tuo framework di machine learning supporta questi compiti aggiuntivi del cluster per l'addestramento distribuito.

Scopri di più sull'utilizzo della formazione distribuita.

Crea un CustomJob

Per creare un CustomJob, segui le istruzioni in una delle seguenti schede, a seconda dello strumento che vuoi utilizzare. Se utilizzi l'interfaccia a riga di comando gcloud, puoi utilizzare un singolo comando per creare automaticamente un codice di addestramento sulla tua macchina locale in un'immagine container Docker, eseguire il push dell'immagine container a Container Registry e creare un CustomJob. Altre opzioni presuppongono che tu abbia già creato un'applicazione di addestramento Python o un'immagine container personalizzata.

gcloud

Gli esempi seguenti utilizzano il comando gcloud ai custom-jobs create.

Se il codice di addestramento si trova sul tuo computer locale, ti consigliamo di seguire la sezione Con pacchetto automatico. In alternativa, se hai già creato un'applicazione di addestramento Python o un'immagine container personalizzata, vai alla sezione Senza pacchetto automatico.

Con pacchetto automatico

Se disponi di codice di addestramento sul tuo computer locale, puoi utilizzare un singolo comando per effettuare le seguenti operazioni:

  • Crea un'immagine Docker personalizzata in base al tuo codice.
  • Esegui il push dell'immagine a Container Registry.
  • Avvia CustomJob in base all'immagine.

Il risultato è simile alla creazione di un CustomJob con un altro container personalizzato; puoi utilizzare questa versione del comando se è utile per il tuo flusso di lavoro.

Prima di iniziare

Poiché questa versione del comando crea ed esegue il push di un'immagine Docker, devi eseguire la seguente configurazione sul tuo computer locale:

  1. Installa Docker Engine.

  2. Se utilizzi Linux, configura Docker in modo da poterlo eseguire senza sudo.

  3. Attiva l'API Container Registry.

    Abilita l'API

  4. Configura l'autenticazione per Docker, in modo da poter eseguire il push delle immagini Docker a Container Registry:

    gcloud auth configure-docker
    

Creare ed eseguire il push dell'immagine Docker e creare un CustomJob

Il comando seguente crea un'immagine Docker basata su un'immagine container preaddestrata predefinita e sul tuo codice Python locale, esegue il push dell'immagine a Container Registry e crea un CustomJob.

gcloud ai custom-jobs create \
  --region=LOCATION \
  --display-name=JOB_NAME \
  --worker-pool-spec=machine-type=MACHINE_TYPE,replica-count=REPLICA_COUNT,executor-image-uri=EXECUTOR_IMAGE_URI,local-package-path=WORKING_DIRECTORY,script=SCRIPT_PATH

Sostituisci quanto segue:

  • LOCATION: l'area geografica in cui verrà eseguito il container o il pacchetto Python.

  • JOB_NAME: campo obbligatorio. Un nome visualizzato per il CustomJob.

  • MACHINE_TYPE: il tipo di macchina. Consulta la pagina relativa ai tipi di macchine disponibili per l'addestramento.

  • REPLICA_COUNT: il numero di repliche di worker da utilizzare. Nella maggior parte dei casi, impostalo su 1 per il tuo primo pool di worker.

  • EXECUTOR_IMAGE_URI: URI dell'immagine container che esegue il codice fornito. Fai riferimento ai container predefiniti disponibili per l'addestramento.

    Questa è l'immagine di base per la nuova immagine Docker che stai creando con questo comando.

  • WORKING_DIRECTORY: una directory nel file system locale contenente lo script del punto di ingresso che esegue il tuo codice di addestramento (vedi la voce di seguito).

    Puoi utilizzare la directory principale dello script o una directory di livello superiore. Potresti utilizzare una directory di livello superiore per specificare un nome di modulo Python completo (vedi il seguente elemento dell'elenco). Puoi anche utilizzare una directory di livello superiore se contiene un file requirements.txt o setup.py. Per scoprire di più, consulta la sezione seguente: Installare dipendenze.

    Tieni presente che, anche se specifichi una directory di livello superiore, questo comando copia solo la directory principale dello script del punto di ingresso nell'immagine Docker.

  • SCRIPT_PATH: il percorso, relativo a WORKING_DIRECTORY nel file system locale, allo script che rappresenta il punto di accesso per il tuo codice di addestramento. Può essere uno script Python (che termina con .py) o uno script Bash.

    Ad esempio, se vuoi eseguire /hello-world/trainer/task.py e WORKING_DIRECTORY è /hello-world, utilizza trainer/task.py per questo valore.

    Utilizza python-module invece di script

    Facoltativamente, puoi sostituire script=SCRIPT_PATH con python-module=PYTHON_MODULE per specificare il nome di un modulo Python in WORKING_DIRECTORY, da eseguire come punto di contatto per l'addestramento. Ad esempio, anziché script=trainer/task.py, puoi specificare python-module=trainer.task.

    In questo caso, il container Docker risultante carica il codice come modulo anziché come script. Potresti voler utilizzare questa opzione se lo script del punto di accesso importa altri moduli Python in WORKING_DIRECTORY.

Installare le dipendenze

Se utilizzi il pacchetto automatico, puoi installare le dipendenze Python nel container nello stesso modo in cui sono disponibili quando utilizzi il comando local-run di gcloud CLI's. Per informazioni sui vari modi per installare le dipendenze Python, leggi la sezione Installare dipendenze della guida al comando local-run.

La sintassi per specificare le dipendenze è leggermente diversa quando utilizzi il pacchetto automatico rispetto a quando usi il comando local-run. Anziché utilizzare i flag della riga di comando per specificare le dipendenze, devi utilizzare le opzioni nel valore del flag --worker-pool-spec. Inoltre, i valori all'interno di queste opzioni devono essere separati da punto e virgola anziché da virgole. Nello specifico, la sintassi

  • Anziché il flag --local-package-path del comando local-run, utilizza l'opzione local-package-path nel valore del flag --worker-pool-spec. Se la directory di lavoro specificata con questa opzione contiene un file requirements.txt o setup.py, la pacchettizzazione automatica delle installazioni si basa sulle dipendenze di questo file.

    L'esempio precedente dimostra questa sintassi.

  • (Facoltativo) Anziché il flag --requirements, utilizza l'opzione requirements nel valore del flag --worker-pool-spec. Anziché separare le dipendenze PyPI con le virgole, utilizza il punto e virgola.

  • (Facoltativo) Anziché il flag --extra-packages, utilizza l'opzione extra-packages nel valore del flag --worker-pool-spec. Anziché separare le dipendenze locali con le virgole, utilizza il punto e virgola.

  • (Facoltativo) Anziché il flag --extra-dirs, utilizza l'opzione extra-dirs nel valore del flag --worker-pool-spec. Anziché separare i percorsi delle directory con virgole, utilizza il punto e virgola.

L'esempio seguente mostra come installare le dipendenze utilizzando tutte le tecniche facoltative. Puoi specificare qualsiasi sottoinsieme. Per dimostrare la sintassi del punto e virgola, l'esempio specifica due valori per ogni opzione. Per ridurre la lunghezza dell'esempio, le altre opzioni --worker-pool-spec vengono sostituite con [...].

gcloud ai custom-jobs create \
  --region=LOCATION \
  --display-name=JOB_NAME \
  --worker-pool-spec=[...],requirements=PYPI_DEP_1;PYPI_DEP_2,extra-packages=LOCAL_DEP_1;LOCAL_DEP_2,extra-dirs=EXTRA_DIR_1;EXTRA_DIR_2

Per informazioni sui valori appropriati per questi segnaposto, consulta "rependencies di dipendenze" nella guida al comando local-run.

Senza imballaggio automatico

Se non utilizzi la pacchettizzazione automatica, puoi creare un elemento CustomJob con un comando simile a uno dei seguenti elementi. A seconda che tu abbia creato un'applicazione di addestramento Python o un'immagine container personalizzata, scegli una delle seguenti schede:

App di addestramento Python

gcloud ai custom-jobs create \
  --region=LOCATION \
  --display-name=JOB_NAME \
  --python-package-uris=PYTHON_PACKAGE_URIS \
  --worker-pool-spec=machine-type=MACHINE_TYPE,replica-count=REPLICA_COUNT,executor-image-uri=EXECUTOR_IMAGE_URI,python-module=PYTHON_MODULE

Sostituisci quanto segue:

  • LOCATION: l'area geografica in cui verrà eseguito il container o il pacchetto Python.
  • JOB_NAME: campo obbligatorio. Un nome visualizzato per il CustomJob.
  • PYTHON_PACKAGE_URIS: elenco separato da virgole di URI Cloud Storage che specificano i file del pacchetto Python che sono il programma di addestramento e i relativi pacchetti dipendenti. Il numero massimo di URI di pacchetto è 100.
  • MACHINE_TYPE: il tipo di macchina. Consulta la pagina relativa ai tipi di macchine disponibili per l'addestramento.
  • REPLICA_COUNT: il numero di repliche di worker da utilizzare. Nella maggior parte dei casi, impostalo su 1 per il tuo primo pool di worker.
  • EXECUTOR_IMAGE_URI: URI dell'immagine container che esegue il codice fornito. Fai riferimento ai container predefiniti disponibili per l'addestramento.
  • PYTHON_MODULE: il nome del modulo Python da eseguire dopo l'installazione dei pacchetti.

Immagine del container personalizzato

gcloud ai custom-jobs create \
  --region=LOCATION \
  --display-name=JOB_NAME \
  --worker-pool-spec=machine-type=MACHINE_TYPE,replica-count=REPLICA_COUNT,container-image-uri=CUSTOM_CONTAINER_IMAGE_URI

Sostituisci quanto segue:

  • LOCATION: l'area geografica in cui verrà eseguito il container o il pacchetto Python.
  • JOB_NAME: campo obbligatorio. Un nome visualizzato per il CustomJob.
  • MACHINE_TYPE: il tipo di macchina. Consulta la pagina relativa ai tipi di macchine disponibili per l'addestramento.
  • REPLICA_COUNT: il numero di repliche di worker da utilizzare. Nella maggior parte dei casi, impostalo su 1 per il tuo primo pool di worker.
  • CUSTOM_CONTAINER_IMAGE_URI: URI di un'immagine container in Artifact Registry, Container Registry o Docker Hub da eseguire su ogni replica worker.

Addestramento distribuito

Per eseguire l'addestramento distribuito, specifica il flag --worker-pool-spec più volte, una volta per ogni pool di worker.

Se utilizzi la pacchettizzazione automatica, devi specificare solo local-package-path, script e altre opzioni relative alla pacchettizzazione automatica nel primo pool di worker. Ometti i campi relativi al codice di addestramento nei pool di worker successivi, che utilizzeranno tutti lo stesso container di addestramento creato dalla creazione automatica.

Ad esempio, il seguente comando adatta un esempio di pacchetto automatico precedente per utilizzare un secondo pool di worker:

gcloud ai custom-jobs create \
  --region=LOCATION \
  --display-name=JOB_NAME \
  --worker-pool-spec=machine-type=MACHINE_TYPE,replica-count=REPLICA_COUNT,executor-image-uri=EXECUTOR_IMAGE_URI,local-package-path=WORKING_DIRECTORY,script=SCRIPT_PATH \
  --worker-pool-spec=machine-type=SECOND_POOL_MACHINE_TYPE,replica-count=SECOND_POOL_REPLICA_COUNT

Se non utilizzi la pacchettizzazione automatica, specifica ogni pool di worker in modo completo e indipendente; non omettere alcun campo.

I seguenti comandi consentono di adattare gli esempi precedenti per utilizzare un secondo pool di worker:

App di addestramento Python

gcloud ai custom-jobs create \
  --region=LOCATION \
  --display-name=JOB_NAME \
  --python-package-uris=PYTHON_PACKAGE_URIS \
  --worker-pool-spec=machine-type=MACHINE_TYPE,replica-count=REPLICA_COUNT,executor-image-uri=EXECUTOR_IMAGE_URI,python-module=PYTHON_MODULE \
  --worker-pool-spec=machine-type=SECOND_POOL_MACHINE_TYPE,replica-count=SECOND_POOL_REPLICA_COUNT,executor-image-uri=SECOND_POOL_EXECUTOR_IMAGE_URI,python-module=SECOND_POOL_PYTHON_MODULE

Immagine del container personalizzato

gcloud ai custom-jobs create \
  --region=LOCATION \
  --display-name=JOB_NAME \
  --worker-pool-spec=machine-type=MACHINE_TYPE,replica-count=REPLICA_COUNT,container-image-uri=CUSTOM_CONTAINER_IMAGE_URI \
  --worker-pool-spec=machine-type=SECOND_POOL_MACHINE_TYPE,replica-count=SECOND_POOL_REPLICA_COUNT,container-image-uri=SECOND_POOL_CUSTOM_CONTAINER_IMAGE_URI

Configurazione avanzata

Se vuoi specificare opzioni di configurazione non disponibili negli esempi precedenti, puoi utilizzare il flag --config per specificare il percorso di un file config.yaml nel tuo ambiente locale che contiene i campi di CustomJobSpec. Ad esempio:

gcloud ai custom-jobs create \
  --region=LOCATION \
  --display-name=JOB_NAME \
  --config=config.yaml

Ecco un esempio di file config.yaml.

Console

In Google Cloud Console non puoi creare direttamente una risorsa CustomJob. Tuttavia, puoi creare una risorsa TrainingPipeline che crei un CustomJob.

Le seguenti istruzioni descrivono come creare un elemento TrainingPipeline che crea un elemento CustomJob e non esegue altre operazioni. Se vuoi utilizzare funzionalità aggiuntive di TrainingPipeline, ad esempio l'addestramento con un set di dati gestito o la creazione di una risorsa Model alla fine dell'addestramento, leggi la sezione Creazione delle pipeline di addestramento.

  1. Nella sezione Cloud AI di Cloud Console, vai alla pagina Pipeline di addestramento.

    Vai alle pipeline di addestramento

  2. Fai clic su Crea per aprire il riquadro Addestra nuovo modello.

  3. Nel passaggio Addestramento, specifica le seguenti impostazioni:

    1. Nell'elenco a discesa Set di dati, seleziona Nessun set di dati gestito.

    2. Seleziona Formazione personalizzata (avanzata).

    Fai clic su Continua.

  4. Nel passaggio Dettagli modello, scegli Addestra nuovo modello o Addestra nuova versione. Se selezioni Addestra nuovo modello, inserisci un nome a tua scelta, MODEL_NAME, per il tuo modello. Fai clic su Continua.

  5. Nel passaggio Container di addestramento, specifica le seguenti impostazioni:

    1. Seleziona se utilizzare un contenitore predefinito o un contenitore personalizzato per l'addestramento.

    2. A seconda dell'opzione scelta, procedi in uno dei seguenti modi:

    3. Nel campo Directory di output del modello, puoi specificare l'URI Cloud Storage di una directory in un bucket a cui hai accesso. La directory non deve ancora esistere.

      Questo valore viene trasmesso a Vertex AI nel campo API baseOutputDirectory, che imposta diverse variabili di ambiente a cui può accedere l'applicazione di addestramento.

    4. Nel campo Argomenti, puoi specificare facoltativamente argomenti che possono essere utilizzati da Vertex AI all'avvio del codice di addestramento. Il comportamento di questi argomenti varia a seconda del tipo di contenitore in uso:

    Fai clic su Continua.

  6. Nel passaggio Ottimizzazione iperparametri, assicurati che la casella di controllo Abilita ottimizzazione iperparametri non sia selezionata. Fai clic su Continua.

  7. Nel passaggio Computing e prezzi, specifica le seguenti impostazioni:

    1. Nell'elenco a discesa Regione, seleziona un'area geograficache supporta l'addestramento personalizzato"

    2. Nella sezione Pool di worker 0, specifica le risorse di calcolo da utilizzare per l'addestramento.

      Se specifichi gli acceleratori, assicurati che il tipo di acceleratore scelto sia disponibile nell'area geografica selezionata.

      Se vuoi eseguire addestramento distribuito, fai clic suAggiungi altri pool di worker e specifica un ulteriore set di risorse di computing per ogni pool di worker aggiuntivo che vuoi.

    Fai clic su Continua.

  8. Nel passaggio Contenitore di previsioni, seleziona Nessun contenitore di previsione.

  9. Fai clic su Avvia addestramento per avviare la pipeline di addestramento personalizzato.

REST &CMD LINE

Prima di utilizzare uno qualsiasi dei dati della richiesta, effettua le seguenti sostituzioni:

  • LOCATION: l'area geografica in cui verrà eseguito il container o il pacchetto Python.
  • PROJECT_ID: il tuo ID progetto.
  • JOB_NAME: campo obbligatorio. Un nome visualizzato per il CustomJob.
  • Definisci il job di addestramento personalizzato:
    • MACHINE_TYPE: il tipo di macchina. Consulta la pagina relativa ai tipi di macchine disponibili per l'addestramento.
    • (Facoltativo) ACCELERATOR_TYPE: Il tipo di acceleratore da collegare al job.
    • (Facoltativo) ACCELERATOR_COUNT: Il numero di acceleratori da collegare al job.
    • (Facoltativo) DISK_TYPE: Il tipo di disco di avvio da utilizzare per il job: pd-standard (predefinito) o pd-ssd. Scopri di più sui tipi di disco.
    • (Facoltativo) DISK_SIZE: La dimensione in GB del disco di avvio da utilizzare per il job. Il valore predefinito è 100.
    • REPLICA_COUNT: il numero di repliche di worker da utilizzare. Nella maggior parte dei casi, impostalo su 1 per il tuo primo pool di worker.
    • Se la tua applicazione di addestramento viene eseguita in un container personalizzato, specifica quanto segue:
      • CUSTOM_CONTAINER_IMAGE_URI: URI di un'immagine container in Artifact Registry, Container Registry o Docker Hub da eseguire su ogni replica worker.
      • (Facoltativo) CUSTOM_CONTAINER_COMMAND: Il comando da richiamare all'avvio del container. Questo comando sostituisce il punto di accesso predefinito del container.
      • (Facoltativo) CUSTOM_CONTAINER_ARGS: Gli argomenti da trasmettere all'avvio del container.
    • Se la tua applicazione di addestramento è un pacchetto Python eseguito in un container predefinito, specifica quanto segue:
      • EXECUTOR_IMAGE_URI: URI dell'immagine container che esegue il codice fornito. Fai riferimento ai container predefiniti disponibili per l'addestramento.
      • PYTHON_PACKAGE_URIS: elenco separato da virgole di URI Cloud Storage che specificano i file del pacchetto Python che sono il programma di addestramento e i relativi pacchetti dipendenti. Il numero massimo di URI di pacchetto è 100.
      • PYTHON_MODULE: il nome del modulo Python da eseguire dopo l'installazione dei pacchetti.
      • (Facoltativo) PYTHON_PACKAGE_ARGS: Argomenti della riga di comando da trasmettere al modulo Python.
    • Informazioni sulle opzioni di pianificazione del lavoro.
    • (Facoltativo) TIMEOUT: Il tempo di esecuzione massimo per il job.
  • Specifica LABEL_NAME e LABEL_VALUE per qualsiasi etichetta che vuoi applicare a questo job personalizzato.

Metodo HTTP e URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/customJobs

Corpo JSON richiesta:

{
  "displayName": "JOB_NAME",
  "jobSpec": {
    "workerPoolSpecs": [
      {
        "machineSpec": {
          "machineType": MACHINE_TYPE,
          "acceleratorType": ACCELERATOR_TYPE,
          "acceleratorCount": ACCELERATOR_COUNT
        },
        "replicaCount": REPLICA_COUNT,
        "diskSpec": {
          "bootDiskType": DISK_TYPE,
          "bootDiskSizeGb": DISK_SIZE
        },

        // Union field task can be only one of the following:
        "containerSpec": {
          "imageUri": CUSTOM_CONTAINER_IMAGE_URI,
          "command": [
            CUSTOM_CONTAINER_COMMAND
          ],
          "args": [
            CUSTOM_CONTAINER_ARGS
          ]
        },
        "pythonPackageSpec": {
          "executorImageUri": EXECUTOR_IMAGE_URI,
          "packageUris": [
            PYTHON_PACKAGE_URIS
          ],
          "pythonModule": PYTHON_MODULE,
          "args": [
            PYTHON_PACKAGE_ARGS
          ]
        }
        // End of list of possible types for union field task.
      }
      // Specify one workerPoolSpec for single replica training, or multiple workerPoolSpecs
      // for distributed training.
    ],
    "scheduling": {
      "timeout": TIMEOUT
    }
  },
  "labels": {
    LABEL_NAME_1": LABEL_VALUE_1,
    LABEL_NAME_2": LABEL_VALUE_2
  }
}

Per inviare la richiesta, scegli una delle seguenti opzioni:

Curling

Salva il corpo della richiesta in un file denominato request.json ed esegui il seguente comando:

curl -X POST \
-H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/customJobs"

PowerShell

Salva il corpo della richiesta in un file denominato request.json ed esegui il seguente comando:

$cred = gcloud auth application-default print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/customJobs" | Select-Object -Expand Content

La risposta contiene informazioni sulle specifiche e sull'TRAININGPIPELINE_ID.

Node.js

Per informazioni su come installare e utilizzare la libreria client per Vertex AI, consulta le librerie client di Vertex AI. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Vertex AI.js.

/**
 * TODO(developer): Uncomment these variables before running the sample.\
 * (Not necessary if passing values as arguments)
 */

// const customJobDisplayName = 'YOUR_CUSTOM_JOB_DISPLAY_NAME';
// const containerImageUri = 'YOUR_CONTAINER_IMAGE_URI';
// const project = 'YOUR_PROJECT_ID';
// const location = 'YOUR_PROJECT_LOCATION';

// Imports the Google Cloud Job Service Client library
const {JobServiceClient} = require('@google-cloud/aiplatform');

// Specifies the location of the api endpoint
const clientOptions = {
  apiEndpoint: 'us-central1-aiplatform.googleapis.com',
};

// Instantiates a client
const jobServiceClient = new JobServiceClient(clientOptions);

async function createCustomJob() {
  // Configure the parent resource
  const parent = `projects/${project}/locations/${location}`;
  const customJob = {
    displayName: customJobDisplayName,
    jobSpec: {
      workerPoolSpecs: [
        {
          machineSpec: {
            machineType: 'n1-standard-4',
            acceleratorType: 'NVIDIA_TESLA_K80',
            acceleratorCount: 1,
          },
          replicaCount: 1,
          containerSpec: {
            imageUri: containerImageUri,
            command: [],
            args: [],
          },
        },
      ],
    },
  };
  const request = {parent, customJob};

  // Create custom job request
  const [response] = await jobServiceClient.createCustomJob(request);

  console.log('Create custom job response:\n', JSON.stringify(response));
}
createCustomJob();

Python

Per informazioni su come installare e utilizzare la libreria client per Vertex AI, consulta le librerie client di Vertex AI. Per maggiori informazioni, consulta la documentazione di riferimento dell'API Python AI Vertex.

from google.cloud import aiplatform

def create_custom_job_sample(
    project: str,
    display_name: str,
    container_image_uri: str,
    location: str = "us-central1",
    api_endpoint: str = "us-central1-aiplatform.googleapis.com",
):
    # The AI Platform services require regional API endpoints.
    client_options = {"api_endpoint": api_endpoint}
    # Initialize client that will be used to create and send requests.
    # This client only needs to be created once, and can be reused for multiple requests.
    client = aiplatform.gapic.JobServiceClient(client_options=client_options)
    custom_job = {
        "display_name": display_name,
        "job_spec": {
            "worker_pool_specs": [
                {
                    "machine_spec": {
                        "machine_type": "n1-standard-4",
                        "accelerator_type": aiplatform.gapic.AcceleratorType.NVIDIA_TESLA_K80,
                        "accelerator_count": 1,
                    },
                    "replica_count": 1,
                    "container_spec": {
                        "image_uri": container_image_uri,
                        "command": [],
                        "args": [],
                    },
                }
            ]
        },
    }
    parent = f"projects/{project}/locations/{location}"
    response = client.create_custom_job(parent=parent, custom_job=custom_job)
    print("response:", response)

Passaggi successivi

  • Consulta Creare pipeline di addestramento per scoprire come creare pipeline di addestramento per eseguire applicazioni di addestramento personalizzato su Vertex AI.