Monitoraggio dei job di addestramento

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

A seconda delle dimensioni del set di dati e della complessità del modello, l'addestramento può richiedere molto tempo. L'addestramento con dati reali può durare molte ore. Durante l'esecuzione puoi monitorare diversi aspetti del job.

Verifica dello stato del job

Per lo stato generale, il modo più semplice per controllare il job è la pagina Job di addestramento AI Platform nella console Google Cloud. Puoi ottenere gli stessi dettagli in modo programmatico e con Google Cloud CLI.

console

  1. Apri la pagina Job di AI Platform Training in Google Cloud Console.

    Apri Job in Google Cloud Console

  2. Fai clic sul nome del job nell'elenco per aprire la pagina Dettagli job.

  3. Individua lo stato del job nella parte superiore del report. L'icona e il testo descrivono lo stato attuale del job.

    Le informazioni sullo stato del lavoro nella parte superiore della pagina Dettagli job.

Filtrare i job

Nella pagina Job puoi filtrare i job in base a diversi parametri, tra cui Tipo, JobID, Stato e ora di creazione del job.

  1. Fai clic Campo Filtra per prefisso, disponibile sopra l'elenco dei job. Seleziona un prefisso da utilizzare per il filtro. Ad esempio, seleziona Tipo.
  2. Per completare il filtro, fai clic sul suffisso che vuoi utilizzare. Ad esempio, le opzioni di suffisso per il prefisso Type sono:

    • Addestramento con codice personalizzato
    • Formazione su algoritmi integrati
    • Previsione
  3. Il filtro viene applicato all'elenco Job e il nome del filtro viene visualizzato nel campo del filtro. Ad esempio, se hai selezionato Formazione codice personalizzato, in alto viene visualizzato il filtro Tipo:addestramento codice personalizzato e l'elenco lavori. Se necessario, puoi aggiungere più filtri.

Visualizzazione delle prove di iperparametri

Nella pagina Dettagli job puoi visualizzare le metriche per ogni prova nella tabella Prove HyperTune. Questa tabella viene visualizzata solo per i job che utilizzano l'ottimizzazione degli iperparametri. Puoi attivare/disattivare le metriche in modo da visualizzare le prove in base al valore rmse, Training steps e learning_rate più alto o più basso.

Per visualizzare i log relativi a una prova specifica, fai clic sull'icona more_vert quindi fai clic su Visualizza log.

gcloud

Utilizza gcloud ai-platform jobs describe per ottenere dettagli sullo stato attuale del job sulla riga di comando:

gcloud ai-platform jobs describe job_name

Puoi ottenere un elenco dei job associati al progetto che includono lo stato del job e i tempi di creazione con gcloud ai-platform jobs list. Nota che questo comando nella sua forma più semplice elenca tutti i job mai creati per il tuo progetto. Dovresti definire l'ambito della tua richiesta per limitare il numero di offerte di lavoro segnalate. Per iniziare, fai riferimento agli esempi che seguono:

Utilizza l'argomento --limit per limitare il numero di job. Questo esempio elenca i cinque job più recenti:

gcloud ai-platform jobs list --limit=5

Utilizza l'argomento --filter per limitare l'elenco dei job a quelli con un determinato valore di attributo. Puoi filtrare uno o più attributi dell'oggetto Job. Oltre agli attributi principali del job, puoi filtrare gli oggetti all'interno del job, ad esempio l'oggetto TrainingInput.

Esempi di filtro dell'elenco:

  • Elenca tutti i job avviati dopo un determinato periodo di tempo. Questo esempio utilizza le 7 di sera del 15 gennaio 2017:

    gcloud ai-platform jobs list --filter='createTime>2017-01-15T19:00'
    
  • Elenca gli ultimi tre job con nomi che iniziano con una determinata stringa. Ad esempio, la stringa può rappresentare il nome che utilizzi per tutti i job di addestramento di un determinato modello. Questo esempio utilizza un modello in cui l'identificatore del job è 'census' con un suffisso che rappresenta un indice incrementato per ogni job:

    gcloud ai-platform jobs list --filter='jobId:census*' --limit=3
    
  • Elenca tutti i job non riusciti i cui nomi iniziano con 'rnn':

    gcloud ai-platform jobs list --filter='jobId:rnn* AND state:FAILED'
    

Per maggiori dettagli sulle espressioni supportate dall'opzione di filtro, consulta la documentazione per il comando gcloud.

Python

  1. Assembla la stringa identificatore del job combinando il nome del progetto e il nome del lavoro nel modulo: 'projects/your_project_name/jobs/your_job_name':

    projectName = 'your_project_name'
    projectId = 'projects/{}'.format(projectName)
    jobName = 'your_job_name'
    jobId = '{}/jobs/{}'.format(projectId, jobName)
    
  2. Modulo la richiesta a projects.jobs.get:

    request = ml.projects().jobs().get(name=jobId)
    
  3. Esegui la richiesta (in questo esempio la chiamata execute viene inserita in un blocco try per rilevare le eccezioni):

    response = None
    
    try:
        response = request.execute()
    except errors.HttpError, err:
        # Something went wrong. Handle the exception in an appropriate
        #  way for your application.
    
  4. Controlla la risposta per assicurarti che, indipendentemente dagli errori HTTP, la chiamata di servizio abbia restituito dati.

    if response == None:
        # Treat this condition as an error as best suits your
        # application.
    
  5. Recupera dati sullo stato L'oggetto risposta è un dizionario contenente tutti i membri applicabili della risorsa Job, tra cui la risorsa completa TrainingInput e i membri applicabili della risorsa TrainingOutput. L'esempio seguente stampa lo stato del job e il numero di unità ML utilizzate dal job.

    print('Job status for {}.{}:'.format(projectName, jobName))
    print('    state : {}'.format(response['state']))
    print('    consumedMLUnits : {}'.format(
        response['trainingOutput']['consumedMLUnits']))
    

I job possono non riuscire in caso di problemi con l'applicazione di addestramento o con l'infrastruttura di AI Platform Training. Puoi utilizzare Cloud Logging per avviare il debug.

Puoi anche utilizzare una shell interattiva per ispezionare i container di addestramento mentre il job di addestramento è in esecuzione.

Monitoraggio del consumo delle risorse

Nella pagina Dettagli job sono disponibili i seguenti grafici sull'utilizzo delle risorse:

  • L'utilizzo aggregato di CPU o GPU del job e l'utilizzo della memoria. Questi sono suddivisi per master, worker e server dei parametri.
  • L'utilizzo della rete del job, misurato in byte al secondo. Sono disponibili grafici separati per i byte inviati e i byte ricevuti.
  1. Vai alla pagina Job di AI Platform Training in Google Cloud Console.

    Vai alla pagina AI Platform Training Jobs

  2. Trova il tuo lavoro nell'elenco.

  3. Fai clic sul nome del job nell'elenco per aprire la pagina Dettagli job.

  4. Seleziona le schede CPU, GPU o Rete per visualizzare i grafici di utilizzo delle risorse associati.

Puoi anche accedere alle informazioni sulle risorse online utilizzate dai job di addestramento con Cloud Monitoring. AI Platform Training esporta le metriche in Cloud Monitoring.

Ogni tipo di metrica di AI Platform Training include "training" nel suo nome. Ad esempio, ml.googleapis.com/training/cpu/utilization o ml.googleapis.com/training/accelerator/memory/utilization.

Monitoraggio con TensorBoard

Puoi configurare la tua applicazione di addestramento in modo da salvare i dati di riepilogo che puoi esaminare e visualizzare utilizzando TensorBoard.

Salva i dati di riepilogo in una località di Cloud Storage e punta TensorBoard in tale località per esaminare i dati. Puoi anche indirizzare TensorBoard a una directory con sottodirectory contenenti l'output di più job.

Scopri di più su TensorBoard e AI Platform Training nella guida introduttiva.

Passaggi successivi