Verwenden der Toolkits für SageMaker-Training und -Inferenz - Amazon SageMaker

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.

Verwenden der Toolkits für SageMaker-Training und -Inferenz

Die Toolkits SageMaker-Training und SageMaker-Inferenz implementieren die Funktionen, die Sie benötigen, um Ihre Container an die Ausführung von Skripten, die Schulung von Algorithmen und die Bereitstellung von Modellen auf SageMaker anzupassen. Bei der Installation definiert die Bibliothek Folgendes für Benutzer:

  • Die Speicherorte für das Speichern von Code und anderen Ressourcen.

  • Der Eintrittspunkt, der den Code enthält, der beim Starten des Containers ausgeführt werden soll. Ihre Dockerfile muss den Code kopieren, der an dem Speicherort ausgeführt werden muss, der von einem Container erwartet wird, der mit SageMaker kompatibel ist.

  • Andere Informationen, die ein Container für die Verwaltung von Bereitstellungen für Schulung und Inferenz benötigt.

Struktur der Container in den SageMaker-Toolkits

Wenn ein Modell von SageMaker geschult wird, wird die folgende Ordnerstruktur im Verzeichnis /opt/ml des Containers erstellt.

/opt/ml ├── input │ ├── config │ │ ├── hyperparameters.json │ │ └── resourceConfig.json │ └── data │ └── <channel_name> │ └── <input data> ├── model │ ├── code │ ├── output │ └── failure

Wenn Sie eine Aufgabe zur Schulung eines Modells ausführen, verwendet der SageMaker-Container das /opt/ml/input/ Verzeichnis mit den JSON-Dateien, welche die Hyperparameter für den Algorithmus und das Netzwerklayout für die verteilte Schulung konfigurieren. Das /opt/ml/input/ Verzeichnis enthält auch Dateien, die die Kanäle angeben, über die SageMaker auf die Daten zugreift, die in Amazon Simple Storage Service (Amazon S3) gespeichert sind. Die SageMaker Containers-Bibliothek platziert die Skripte, die der Container im Verzeichnis /opt/ml/code/ ausführt. Ihr Skript sollte das von Ihrem Algorithmus generierte Modell in das Verzeichnis /opt/ml/model/ schreiben. Weitere Informationen finden Sie unter Verwenden Ihrer eigenen Trainingsalgorithmen.

Wenn Sie ein geschultes Modell auf SageMaker hosten, um Rückschlüsse zu ziehen, stellen Sie das Modell auf einem HTTP-Endpunkt bereit. Das Modell erstellt Echtzeitprognosen als Antwort auf Inferenzanforderungen. Der Container muss einen Serving-Stack enthalten, um diese Anforderungen zu verarbeiten.

In einem Hosting- oder Batch-Transformationscontainer befinden sich die Modelldateien im selben Ordner, in den sie während der Schulung geschrieben wurden.

/opt/ml/model │ └── <model files>

Weitere Informationen finden Sie unter Verwenden Ihres eigenen Inferenzcodes.

Einzelne versus mehrere Container

Sie können entweder separate Docker-Images für den Schulungsalgorithmus und Inferenzcode bereitstellen oder beides in einem einzigen Docker-Image kombinieren. Beachten Sie beim Erstellen von Docker-Images für die Verwendung mit SageMaker Folgendes:

  • Durch die Bereitstellung von zwei Docker-Images können die Speicheranforderungen sowie die Kosten steigen, da allgemeine Bibliotheken möglicherweise dupliziert werden.

  • Im Allgemeinen starten kleinere Container für Schulung und Hosting schneller. Modelle lernen schneller und der Hosting-Service kann durch die automatische Skalierung schneller auf erhöhten Datenverkehr reagieren.

  • Sie können unter Umständen einen Inferenzcontainer schreiben, der erheblich kleiner ist als der Schulungscontainer. Das ist gängige Praxis, wenn Sie GPUs zur Schulungen einsetzen, Ihr Inferenzcode aber für CPUs optimiert ist.

  • In SageMaker müssen Docker-Container ohne privilegierten Zugriff ausgeführt werden.

  • Sowohl die von Ihnen erstellten als auch die von SageMaker bereitgestellten Docker-Container können Nachrichten an die Dateien Stdout und Stderr senden. SageMaker sendet diese Nachrichten an Amazon CloudWatch Logs in Ihrem AWS Konto.

Mehr Informationen über das Erstellen von SageMaker-Containern und zur Ausführung von Skripten in ihnen finden Sie in den Repositorys SageMaker-Training-Toolkit und SageMaker-Inferenz-Toolkit auf GitHub. Es enthält auch Listen wichtiger Umgebungsvariablen und die Umgebungsvariablen, die von SageMaker Containers bereitgestellt werden.