Trainingsjobs überwachen

Je nach Größe des Datasets und Komplexität des Modells kann das Training viel Zeit in Anspruch nehmen. Das Training mit realen Daten kann viele Stunden dauern. Sie können jedoch verschiedene Aspekte des Jobs während seiner Ausführung überwachen.

Jobstatus prüfen

Der Gesamtstatus lässt sich am einfachsten auf der Seite Jobs unter "AI Platform Training" in der Cloud Console prüfen. Dieselben Details können auch programmgesteuert und mit dem gcloud-Befehlszeilentool abgerufen werden.

Console

  1. Öffnen Sie in der Cloud Console die Seite Jobs für AI Platform Training.

    Jobs in der Cloud Console öffnen

  2. Klicken Sie in der Liste auf den Namen des jeweiligen Jobs, um die Seite mit den Jobdetails zu öffnen.

  3. Der Jobstatus ist oben im Bericht aufgeführt. Das Symbol und der Text beschreiben den aktuellen Status des Jobs.

    Jobstatusinformationen oben auf der Seite

Jobs filtern

Auf der Seite Jobs können Sie die Jobs nach unterschiedlichen Parametern filtern, darunter Typ, Job-ID, Status und Zeit der Joberstellung.

  1. Klicken Sie in das FeldNach Präfix filtern. Dieses Feld befindet sich über der Liste der Jobs. Wählen Sie ein Präfix aus, das Sie zum Filtern verwenden möchten. Wählen Sie beispielsweise Typ aus.
  2. Klicken Sie zur Vervollständigung des Filters auf das Filtersuffix, das Sie verwenden möchten. Die Suffixoptionen für das Präfix Typ sind beispielsweise:

    • Training mit benutzerdefiniertem Code
    • Training mit integrierten Algorithmen
    • Vorhersage
  3. Der Filter wird auf die Liste Jobs angewendet. Der Name des Filters wird im Filterfeld angezeigt. Wenn Sie beispielsweise Training mit benutzerdefiniertem Code ausgewählt haben, wird oben der Filter Typ:Training mit benutzerdefiniertem Code angezeigt und zur Filterung der Jobliste verwendet. Bei Bedarf können Sie mehrere Filter hinzufügen.

Hyperparameter-Tests aufrufen

Auf der Seite Jobdetails können Sie Messwerte für die einzelnen Tests in der Tabelle HyperTune-Tests aufrufen. Diese Tabelle wird nur für Jobs angezeigt, die die Hyperparameter-Abstimmung verwenden. Sie können zwischen den Messwerten wechseln, um Tests nach dem höchsten oder niedrigsten Wert für rmse, Training steps und learning_rate anzeigen zu lassen.

Wenn Sie Logs für einen bestimmten Test ansehen möchten, klicken Sie auf das Symbolmore_vertund dann auf Logs ansehen.

gcloud

Mit gcloud ai-platform jobs describe können Sie über die Befehlszeile Details zum aktuellen Status des Jobs abrufen:

gcloud ai-platform jobs describe job_name

Mit gcloud ai-platform jobs list können Sie eine Liste der mit Ihrem Projekt verknüpften Jobs abrufen, die den Jobstatus und die Erstellungszeit enthält. Beachten Sie, dass dieser Befehl in seiner einfachsten Form alle Jobs auflistet, die für das Projekt erstellt wurden. Daher sollten Sie ein Limit in der Anfrage festlegen, um die Anzahl der zurückgegebenen Jobs zu beschränken. Die folgenden Beispiele sollten fürs Erste genügen:

Mit dem Argument --limit können Sie die Anzahl der Jobs einschränken. In diesem Beispiel werden die neuesten fünf Jobs aufgelistet:

gcloud ai-platform jobs list --limit=5

Mit dem Argument --filter können Sie die Jobliste auf Jobs mit einem bestimmten Attributwert einschränken. Sie können ein oder mehrere Attribute des Objekts Job als Filter angeben. Neben dem Filtern nach grundlegenden Jobattributen besteht auch die Möglichkeit, nach Objekten innerhalb des Jobs zu filtern, zum Beispiel nach dem Objekt TrainingInput.

Beispiele zum Filtern der Liste:

  • Alle Jobs auflisten, die nach einem bestimmten Zeitpunkt gestartet wurden. Im folgenden Beispiel wird der 15. Januar 2017, 19:00 Uhr verwendet:

    gcloud ai-platform jobs list --filter='createTime>2017-01-15T19:00'
    
  • Die letzten drei Jobs auflisten, deren Namen mit einem bestimmten String beginnen. Der String könnte beispielsweise der Name sein, den Sie für alle Trainingsjobs für ein bestimmtes Modell verwenden. Im folgenden Beispiel wird ein Modell verwendet, dessen Jobkennung "census" lautet. Sie hat als Suffix einen Index, der für jeden Job erhöht wird:

    gcloud ai-platform jobs list --filter='jobId:census*' --limit=3
    
  • Alle fehlgeschlagenen Jobs auflisten, deren Namen mit "rnn" beginnen:

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

Einzelheiten zu den Ausdrücken, die von der Filteroption unterstützt werden, finden Sie in der Dokumentation zum gcloud-Befehl.

Python

  1. Stellen Sie den Job-ID-String zusammen. Kombinieren Sie dazu den Projektnamen so mit dem Jobnamen: '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. Erstellen Sie die an "projects.jobs.get" gehende Anfrage:

    request = ml.projects().jobs().get(name=jobId)
    
  3. Führen Sie die Anfrage aus. In diesem Beispiel wird der Aufruf execute in einem try-Block platziert, um Ausnahmen abzufangen:

    response = None
    
    try:
        response = request.execute()
    except errors.HttpError, err:
        # Something went wrong. Handle the exception in an appropriate
        #  way for your application.
    
  4. Prüfen Sie die Antwort, um zu bestätigen, dass der Dienstaufruf ungeachtet von eventuellen HTTP-Fehlern Daten zurückgegeben hat.

    if response == None:
        # Treat this condition as an error as best suits your
        # application.
    
  5. Rufen Sie Statusdaten ab. Das Antwortobjekt ist ein Wörterbuch, das alle gültigen Mitglieder der Ressource Job enthält, einschließlich der vollständigen Ressource TrainingInput und der gültigen Mitglieder der Ressource TrainingOutput. Im folgenden Beispiel werden der Jobstatus und die Anzahl der vom Job verbrauchten ML-Einheiten ausgegeben.

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

Jobs können aufgrund von Problemen mit der Trainingsanwendung oder der AI Platform Training-Infrastruktur fehlschlagen. Sie können Cloud Logging verwenden, um das Debugging zu starten.

Ressourcenverbrauch überwachen

Auf der Seite Jobdetails finden Sie die folgenden Diagramme zur Ressourcenauslastung für Ihre Trainingsjobs:

  • Die aggregierte CPU- oder GPU-Auslastung des Jobs und die Speicherauslastung. Diese sind nach Master, Worker und Parameterserver unterteilt.
  • Die Netzwerkauslastung des Jobs, gemessen in Byte pro Sekunde. Es gibt separate Diagramme für gesendete und empfangene Byte.
  1. Rufen Sie in der Cloud Console die Seite Jobs unter "AI Platform Training" auf:

    Zur Seite "Jobs" unter "AI Platform Training"

  2. Suchen Sie den Job in der Liste.

  3. Klicken Sie in der Liste auf den Namen des jeweiligen Jobs, um die Seite mit den Jobdetails zu öffnen.

  4. Wählen Sie die Tabs CPU, GPU oder Netzwerk aus, um die zugehörigen Diagramme zur Ressourcenauslastung aufzurufen.

Sie können auch mit Cloud Monitoring auf Informationen zu den Onlineressourcen zugreifen, die Ihre Trainingsjobs verwenden. AI Platform Training exportiert Messwerte nach Cloud Monitoring.

Jeder Messwerttyp für AI Platform Training enthält im Namen "training". Beispiel: ml.googleapis.com/training/cpu/utilizationoder ml.googleapis.com/training/accelerator/memory/utilization.

Mit TensorBoard überwachen

Die Trainingsanwendung lässt sich so konfigurieren, dass Übersichtsdaten gespeichert werden, die Sie dann mit TensorBoard untersuchen und visualisieren können.

Speichern Sie die Übersichtsdaten an einem Cloud Storage-Speicherort und fügen Sie in TensorBoard einen Verweis auf diesen Speicherort ein, um die Daten zu untersuchen. Sie können in TensorBoard auf ein Verzeichnis mit Unterverzeichnissen verweisen, das die Ausgaben mehrerer Jobs enthält.

Weitere Informationen zu TensorBoard und AI Platform Training finden Sie im Startleitfaden.

Weitere Informationen