SageMaker-Training- und -Inferenz-Toolkits - Amazon SageMaker AI

SageMaker-Training- und -Inferenz-Toolkits

Die Toolkits SageMaker Training und SageMaker-AI-Inferenz implementieren die Funktionen, die Sie benötigen, um Ihre Container an die Ausführung von Skripten, das Training von Algorithmen und die Bereitstellung von Modellen auf SageMaker AI 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 AI kompatibel ist.

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

Struktur der Container in den SageMaker-AI-Toolkits

Wenn ein Modell von SageMaker AI trainiert 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 einen Modelltrainingsjob ausführen, verwendet der SageMaker-AI-Container das Verzeichnis /opt/ml/input/ mit den JSON-Dateien, welche die Hyperparameter für den Algorithmus und das Netzwerklayout für das verteilte Training konfigurieren. Das Verzeichnis /opt/ml/input/ enthält auch Dateien, die die Kanäle angeben, über die SageMaker AI auf die Daten zugreift, die in Amazon Simple Storage Service (Amazon S3) gespeichert sind. Die Container-Bibliothek von SageMaker AI 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 Container mit benutzerdefinierten Trainingsalgorhythmen.

Wenn Sie ein trainiertes Modell auf SageMaker AI 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 des Trainings geschrieben wurden.

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

Weitere Informationen finden Sie unter Container mit benutzerdefiniertem Inferenzcode.

Einzelne versus mehrere Container

Sie können entweder separate Docker-Images für den Trainingsalgorithmus und Inferenzcode bereitstellen oder beides in einem einzigen Docker-Image kombinieren. Beachten Sie beim Erstellen von Docker-Images für die Verwendung mit SageMaker AI 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 Training 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 Trainingscontainer. Das ist gängige Praxis, wenn Sie GPUs zu Trainings einsetzen, Ihr Inferenzcode aber für CPUs optimiert ist.

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

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

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