Docker-Container für das Training und die Bereitstellung von Modellen - Amazon SageMaker KI

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Docker-Container für das Training und die Bereitstellung von Modellen

Amazon SageMaker AI verwendet in großem Umfang Docker-Container für Build- und Runtime-Aufgaben. SageMaker AI bietet vorgefertigte Docker-Images für seine integrierten Algorithmen und die unterstützten Deep-Learning-Frameworks, die für Training und Inferenz verwendet werden. Durch die Verwendung von Containern können Sie Machine-Learning-Algorithmen trainieren und Modelle in jeder Größenordnung schnell und zuverlässig bereitstellen. Die Themen in diesem Abschnitt zeigen, wie Sie diese Container für Ihre eigenen Anwendungsfälle einsetzen können. Informationen darüber, wie Sie Ihre eigenen Container zur Verwendung mit Amazon SageMaker Studio Classic mitbringen können, finden Sie unterBringen Sie Ihr eigenes SageMaker KI-Image mit.

Szenarien für das Ausführen von Skripten, das Trainieren von Algorithmen oder das Bereitstellen von Modellen mit SageMaker KI

Amazon SageMaker AI verwendet bei der Ausführung von Skripten, beim Trainieren von Algorithmen und beim Bereitstellen von Modellen immer Docker-Container. Wie intensiv Sie mit Containern umgehen, hängt von Ihrem Anwendungsfall ab.

Der folgende Entscheidungsbaum veranschaulicht drei Hauptszenarien: Anwendungsfälle für die Verwendung vorgefertigter Docker-Container mit SageMaker KI; Anwendungsfälle für die Erweiterung eines vorgefertigten Docker-Containers; Anwendungsfall für die Erstellung Ihres eigenen Containers.

Entscheidungsbaum für Container-Anwendungsfälle.

Anwendungsfälle für die Verwendung vorgefertigter Docker-Container mit KI SageMaker

Beachten Sie bei der Verwendung von Containern mit SageMaker KI die folgenden Anwendungsfälle:

  • Vordefinierter SageMaker KI-Algorithmus — Verwenden Sie das Image, das mit dem integrierten Algorithmus geliefert wird. Weitere Informationen finden Sie unter Verwenden der in Amazon SageMaker AI integrierten Algorithmen oder vortrainierten Modellen.

  • Benutzerdefiniertes Modell mit SageMaker vorgefertigtem KI-Container — Wenn Sie ein benutzerdefiniertes Modell trainieren oder einsetzen, aber ein Framework verwenden, das über einen vorgefertigten SageMaker KI-Container mit TensorFlow und verfügt PyTorch, wählen Sie eine der folgenden Optionen:

    • Wenn Sie kein benutzerdefiniertes Paket benötigen und der Container bereits alle erforderlichen Pakete enthält: Verwenden Sie das vorgefertigte Docker-Image, das mit Ihrem Framework verknüpft ist. Weitere Informationen finden Sie unter Vorgefertigte KI-Docker-Images SageMaker .

    • Wenn Sie ein benutzerdefiniertes Paket in einem der vorgefertigten Container installieren müssen: Vergewissern Sie sich, dass das vorgefertigte Docker-Image eine Datei requirements.txt zulässt, oder erweitern Sie den vorgefertigten Container auf der Grundlage der folgenden Anwendungsfälle.

Anwendungsfälle für die Erweiterung eines vorgefertigten Docker-Containers

Im Folgenden finden Sie Anwendungsfälle für die Erweiterung eines vorgefertigten Docker-Containers:

  • Sie können die Abhängigkeiten nicht importieren – Erweitern Sie das vorgefertigte Docker-Image, das Ihrem Framework zugeordnet ist. Weitere Informationen finden Sie unter Erweitern eines vorgefertigten Containers.

  • Sie können die Abhängigkeiten im vorgefertigten Container nicht importieren und der vorgefertigte Container unterstützt requirements.txt – Fügen Sie alle erforderlichen Abhängigkeiten in requirements.txt hinzu. Die folgenden Frameworks unterstützen die Verwendung von requirements.txt.

Anwendungsfall für den Bau Ihres eigenen Containers

Wenn Sie ein benutzerdefiniertes Modell erstellen oder trainieren und ein benutzerdefiniertes Framework benötigen, das kein vorgefertigtes Image hat, erstellen Sie einen benutzerdefinierten Container.

Als Beispiel für einen Anwendungsfall für das Training und die Bereitstellung eines TensorFlow Modells zeigt der folgende Leitfaden, wie Sie ermitteln können, welche Option aus den vorherigen Abschnitten von Anwendungsfällen für den jeweiligen Fall geeignet ist.

Gehen Sie davon aus, dass Sie die folgenden Anforderungen für das Training und die Bereitstellung eines TensorFlow Modells erfüllen.

Nachdem Sie den benötigten Containertyp bestimmt haben, enthält die folgende Liste Einzelheiten zu den zuvor aufgelisteten Optionen.

  • Verwenden Sie einen integrierten SageMaker KI-Algorithmus oder ein Framework. In den meisten Anwendungsfällen können Sie die integrierten Algorithmen und Frameworks verwenden, ohne sich Gedanken über Container machen zu müssen. Sie können diese Algorithmen über die SageMaker KI-Konsole, das AWS Command Line Interface (AWS CLI), ein Python-Notizbuch oder das Amazon SageMaker Python SDK trainieren und bereitstellen. Sie können dies tun, indem Sie bei der Erstellung Ihres Schätzers den Algorithmus oder die Framework-Version angeben. Die verfügbaren integrierten Algorithmen werden unter dem Thema Integrierte Algorithmen und vortrainierte Modelle in Amazon SageMaker einzeln aufgeführt und beschrieben. Weitere Informationen über die verfügbaren Frameworks finden Sie unter ML-Frameworks und Sprachen. Ein Beispiel für das Trainieren und Bereitstellen eines integrierten Algorithmus mithilfe eines Jupyter-Notebooks, das in einer SageMaker Notebook-Instance ausgeführt wird, finden Sie im Thema. Leitfaden zur Einrichtung von Amazon SageMaker AI

  • Verwenden Sie vorgefertigte KI-Container-Images SageMaker . Alternativ können Sie die integrierten Algorithmen und Frameworks mithilfe von Docker-Containern verwenden. SageMaker AI stellt Container für seine integrierten Algorithmen und vorgefertigte Docker-Images für einige der gängigsten Frameworks für maschinelles Lernen wie Apache,, und MXNet TensorFlow Chainer bereit. PyTorch Eine vollständige Liste der verfügbaren SageMaker KI-Images finden Sie unter Verfügbare Deep Learning Containers Learning-Container-Images. Auch Machine-Learning-Bibliotheken wie scikit-learn und SparkML werden unterstützt. Wenn Sie das Amazon SageMaker Python SDK verwenden, können Sie die Container bereitstellen, indem Sie den vollständigen Container-URI an die jeweilige SageMaker Estimator AI-SDK-Klasse übergeben. Die vollständige Liste der Deep-Learning-Frameworks, die derzeit von SageMaker KI unterstützt werden, finden Sie unterVorgefertigte SageMaker KI-Docker-Images für Deep Learning. Weitere Informationen über die vordefinierten Container-Images von scikit-learn und SparkML finden Sie unter Zugreifen auf Docker-Images für Scikit-Learn und Spark ML. Weitere Informationen zur Verwendung von Frameworks mit dem Amazon SageMaker Python SDK finden Sie in den entsprechenden Themen unterFrameworks und Sprachen für Machine Learning.

  • Erweitern Sie ein vorgefertigtes SageMaker KI-Container-Image. Wenn Sie einen vorgefertigten SageMaker KI-Algorithmus erweitern oder ein Docker-Image modellieren möchten, können Sie das SageMaker KI-Image an Ihre Bedürfnisse anpassen. Ein Beispiel finden Sie unter Erweiterung unserer PyTorch Container.

  • Passen Sie ein vorhandenes Container-Image an: Wenn Sie ein bereits vorhandenes Container-Image so anpassen möchten, dass es mit SageMaker KI funktioniert, müssen Sie den Docker-Container ändern, um entweder das SageMaker Training- oder das Inference-Toolkit zu aktivieren. Ein Beispiel, wie Sie eigene Container zum Trainieren und Hosten eines Algorithmus erstellen können, finden Sie unter Bring Your Own R Algorithm.

Problembehebung bei Docker Container und Bereitstellungen

Im Folgenden sind häufig auftretende Fehler aufgeführt, auf die Sie bei der Verwendung von Docker Container mit SageMaker KI. Auf jeden Fehler folgt eine Lösung für den Fehler.

  • Fehler: SageMaker KI hat das verloren Docker Daemon.

    Starten Sie Docker mit dem folgenden Befehl neu, um diesen Fehler zu beheben.

    sudo service docker restart
  • Fehler: Das /tmp Verzeichnis Ihres Docker Der Container hat keinen Speicherplatz mehr.

    Docker Container verwenden die /tmp Partitionen / und, um Code zu speichern. Diese Partitionen können leicht gefüllt werden, wenn große Codemodule im lokalen Modus verwendet werden. Das SageMaker AI Python SDK unterstützt die Angabe eines benutzerdefinierten temporären Verzeichnisses für Ihr Stammverzeichnis im lokalen Modus, um dieses Problem zu vermeiden.

    Um das benutzerdefinierte temporäre Verzeichnis im Amazon Elastic Block Store-Volume Storage anzugeben, erstellen Sie eine Datei im folgenden Pfad ~/.sagemaker/config.yaml und fügen Sie die folgende Konfiguration hinzu. Das Verzeichnis, als das Sie angeben, container_root muss bereits vorhanden sein. Das SageMaker AI Python SDK wird nicht versuchen, es zu erstellen.

    local: container_root: /home/ec2-user/SageMaker/temp

    Bei dieser Konfiguration verwendet der lokale Modus das /temp Verzeichnis und nicht das /tmp Standardverzeichnis.

  • Fehler bei geringem Speicherplatz auf SageMaker Notebook-Instanzen

    A Docker Ein Container, der auf SageMaker Notebook-Instances ausgeführt wird, verwendet standardmäßig das Amazon EBS-Root-Volume der Notebook-Instance. Um Fehler bei geringem Speicherplatz zu beheben, geben Sie den Pfad des Amazon EBS-Volumes an, das an die Notebook-Instance angehängt ist, als Teil des Volume-Parameters von Docker Befehle.

    docker run -v EBS-volume-path:container-path