Übersicht über Container

Container in AI Platform sind eine Funktion, mit der Sie Ihre Anwendung in einem Docker-Image ausführen können. Sie können Ihren eigenen benutzerdefinierten Container erstellen, um Jobs auf AI Platform auszuführen. Dabei werden ML-Frameworks und -Versionen sowie Nicht-ML-Abhängigkeiten, Bibliotheken und Binärdateien verwendet, die auf AI Platform ansonsten nicht unterstützt werden.

Vorgehensweise zum Trainieren mit Containern

Ihre Trainingsanwendung, die in das ML-Framework Ihrer Wahl implementiert ist, bildet den Kern des Trainingsprozesses.

  1. Erstellen Sie mithilfe des ML-Frameworks Ihrer Wahl eine Anwendung, die Ihr Modell trainiert.
  2. Entscheiden Sie sich, ob Sie einen benutzerdefinierten Container verwenden möchten. Möglicherweise gibt es eine Laufzeitversion, die Ihre Abhängigkeiten bereits unterstützt. Andernfalls müssen Sie einen benutzerdefinierten Container für Ihren Trainingsjob erstellen. In Ihrem benutzerdefinierten Container installieren Sie Ihre Trainingsanwendung und alle zugehörigen Abhängigkeiten vorab in einem Image, das Sie dann zum Ausführen Ihres Trainingsjobs verwenden.
  3. Speichern Sie Ihre Trainings- und Bestätigungsdaten in einer Quelle, auf die AI Platform zugreifen kann. In der Regel werden die Daten in Cloud Storage, Cloud Bigtable oder einem anderen Google Cloud Platform-Speicherdienst abgelegt, der mit dem GCP-Projekt verknüpft ist, das Sie für AI Platform verwenden.
  4. Wenn Ihre Anwendung zur Ausführung bereit ist, erstellen Sie das Docker-Image und verschieben es mit Push in die Container Registry. Achten Sie darauf, dass der AI Platform-Dienst auf Ihre Registry zugreifen kann.
  5. Senden Sie Ihren Job mithilfe von gcloud beta ai-platform jobs submit training und geben Sie Ihre Argumente in einer config.yaml Datei oder den entsprechenden gcloud-Flags an.
  6. Der AI Platform-Trainingsdienst richtet Ressourcen für Ihren Job ein. Er weist gemäß Jobkonfiguration mindestens eine virtuelle Maschine (auch als Trainingsinstanz bezeichnet) zu. Richten Sie eine Trainingsinstanz ein, indem Sie den benutzerdefinierten Container verwenden, den Sie beim Senden Ihres Trainingsjobs als Teil des TrainingInput-Objekts angeben.
  7. Der Trainingsdienst führt Ihr Docker-Image aus und gibt dabei alle Befehlszeilenargumente weiter, die Sie beim Erstellen des Trainingsjobs angegeben haben.
  8. Informationen zum ausgeführten Job können Sie auf folgende Arten abrufen:
  9. Wenn der Trainingsjob erfolgreich abgeschlossen ist oder ein nicht behebbarer Fehler auftritt, stoppt AI Platform alle Jobvorgänge und bereinigt die Ressourcen.

Vorteile von benutzerdefinierten Containern

Mit benutzerdefinierten Containern können Sie alle für die Anwendung erforderlichen Abhängigkeiten angeben und vorinstallieren.

  • Schnellerer Programmstart: Wenn Sie einen benutzerdefinierten Container mit vorinstallierten Abhängigkeiten verwenden, sparen Sie die Zeit, die Ihre Trainingsanwendung andernfalls für die Installation von Abhängigkeiten beim Start benötigt.
  • Verwendung eines ML-Frameworks Ihrer Wahl: Sollten Sie keine AI Platform-Laufzeitversion finden, die das von Ihnen gewünschte ML-Framework unterstützt, können Sie einen benutzerdefinierten Container erstellen, der das von Ihnen ausgewählte Framework installiert und zum Ausführen von Jobs auf AI Platform verwendet. Sie können beispielsweise mit PyTorch trainieren.
  • Erweiterte Unterstützung für verteiltes Training: Mit benutzerdefinierten Containern können Sie verteiltes Training mit einem beliebigen ML-Framework durchführen.
  • Verwendung der neuesten Version: Sie können auch den neuesten Build oder die neueste Nebenversion eines ML-Frameworks verwenden. So können Sie beispielsweise einen benutzerdefinierten Container erstellen, um mit tf-nightly zu trainieren oder sich vorab TensorFlow 2.0 anzusehen.

Hyperparameter-Abstimmung mit benutzerdefinierten Containern

Geben Sie zum Durchführen der Hyperparameter-Abstimmung auf AI Platform einen Zielmesswert an und legen Sie fest, ob dieser minimiert oder maximiert werden soll. Sie möchten beispielsweise die Genauigkeit Ihres Modells maximieren oder den Modellverlust minimieren. Außerdem listen Sie die Hyperparameter auf, die Sie anpassen möchten, sowie einen Zielwert für jeden Hyperparameter. AI Platform führt mehrere Versuche mit Ihrer Trainingsanwendung durch und verfolgt und passt die Hyperparameter nach jedem Versuch an. Wenn der Job der Hyperparameter-Abstimmung abgeschlossen ist, gibt AI Platform die Werte für die effektivste Konfiguration der Hyperparameter sowie eine Zusammenfassung für jeden Test zurück.

Für die Hyperparameter-Abstimmung mit benutzerdefinierten Containern müssen Sie die folgenden Anpassungen vornehmen:

  • Im Dockerfile: Installieren Sie cloudml-hypertune.
  • Im Trainingscode:
    • Verwenden Sie cloudml-hypertune und rufen Sie die zugehörige Hilfsfunktion report_hyperparameter_tuning_metric auf, um die Ergebnisse jedes Tests melden zu lassen.
    • Fügen Sie für jeden Hyperparameter Befehlszeilenargumente hinzu und verwenden Sie zum Parsen von Argumenten einen Argumentparser wie z. B. argparse.
  • In der Jobanfrage: Fügen Sie dem TrainingInput-Objekt HyperparameterSpec hinzu.

Sehen Sie sich ein Beispiel für ein Training mit benutzerdefinierten Containern mithilfe der Hyperparameter-Abstimmung an oder erfahren Sie mehr über die Funktionsweise der Hyperparameter-Abstimmung auf AI Platform.

GPUs mit benutzerdefinierten Containern verwenden

Für das Training mit GPUs muss Ihr benutzerdefinierter Container einige spezielle Anforderungen erfüllen. Sie müssen ein anderes Docker-Image erstellen als für das Training mit CPUs.

  • Installieren Sie das CUDA-Toolkit und cuDNN in Ihrem Docker-Image. Wir empfehlen die Verwendung des nvidia/cuda-Images als Basis-Image. In diesem Image sind die entsprechenden Versionen des CUDA-Toolkits und von cuDNN bereits vorinstalliert. Außerdem können Sie die zugehörigen Umgebungsvariablen korrekt einrichten.
  • Installieren Sie Ihre Trainingsanwendung zusammen mit dem erforderlichen ML-Framework und anderen Abhängigkeiten im Docker-Image.

Sehen Sie sich ein Beispiel für ein Dockerfile zum Training mit GPUs an.

Weitere Informationen

Hat Ihnen diese Seite weitergeholfen? Teilen Sie uns Ihr Feedback mit:

Feedback geben zu...