Monitoraggio dei job di addestramento

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

Controllo dello stato del lavoro in corso...

Per lo stato generale, il modo più semplice per verificare il tuo job è la pagina AI Platform Training Jobs 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 nella console Google Cloud.

    Apri job nella console Google Cloud

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

  3. Trovi 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 lavoro.

Filtro dei job

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

  1. Fai clic all'interno della Filtra per prefisso, che si trova sopra l'elenco dei job. Seleziona un prefisso da usare per i filtri. Ad esempio, seleziona Tipo.
  2. Per completare il filtro, fai clic sul suffisso del filtro che vuoi utilizzare. Ad esempio, le opzioni del suffisso per il prefisso Type sono:

    • Addestramento con codice personalizzato
    • Addestramento con 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 Addestramento codice personalizzato, il filtro Tipo:Addestramento codice personalizzato viene visualizzato in alto e filtra l'elenco dei job. 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 di HyperTune. Questa tabella viene visualizzata solo per i job che utilizzano l'ottimizzazione degli iperparametri. Puoi attivare/disattivare le metriche per mostrare le prove per rmse, Training steps e learning_rate più alta o più bassa.

Per visualizzare i log per una prova specifica, fai clic sull'icona more_vert e fai clic su Visualizza log.

gcloud

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

gcloud ai-platform jobs describe job_name

Puoi ottenere un elenco di job associati al tuo progetto che include lo stato del job e l'ora di creazione con gcloud ai-platform jobs list. Tieni presente che questo comando nella sua forma più semplice elenca tutti i job creati per il tuo progetto. Devi definire l'ambito della richiesta per limitare il numero di job segnalati. I seguenti esempi dovrebbero aiutarti a iniziare:

Utilizza l'argomento --limit per limitare il numero di job. Questo esempio elenca i 5 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 dell'attributo. Puoi filtrare in base a uno o più attributi dell'oggetto Job. Oltre agli attributi principali del job, puoi filtrare in base agli oggetti all'interno del job, ad esempio l'oggetto TrainingInput.

Esempi di filtraggio dell'elenco:

  • Elenca tutti i job avviati dopo un determinato periodo di tempo. In questo esempio vengono utilizzate le 7 della 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 utilizzato per tutti i job di addestramento di un determinato modello. Questo esempio utilizza un modello in cui l 'identificatore del job è "censimento" con un suffisso con 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 i dettagli delle espressioni supportate dall'opzione di filtro, consulta la documentazione relativa al comando gcloud.

Python

  1. Crea la stringa dell'identificatore del job combinando il nome del progetto e il nome del job 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. Crea 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 la chiamata di servizio abbia restituito dati, indipendentemente dagli errori HTTP.

    if response == None:
        # Treat this condition as an error as best suits your
        # application.
    
  5. Ottieni 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 consumate 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 se si verifica un problema 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 è in esecuzione il job di addestramento.

Monitoraggio del consumo delle risorse

Puoi trovare i seguenti grafici sull'utilizzo delle risorse per i tuoi job di addestramento nella pagina Dettagli job:

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

    Vai alla pagina Job di addestramento AI Platform

  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 etichettate 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 metrics in Cloud Monitoring.

Ogni tipo di metrica di AI Platform Training include la parola "training" nel 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 con TensorBoard.

Salva i dati di riepilogo in una posizione di Cloud Storage e indirizza TensorBoard a quella posizione per esaminarli. Puoi anche indirizzare TensorBoard a una directory con sottodirectory che contengono l'output di più job.

Leggi ulteriori informazioni su TensorBoard e sull'AI Platform Training nella guida introduttiva.

Passaggi successivi