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.
Erstellen Sie ein benutzerdefiniertes Docker-Container-Image für SageMaker und verwenden Sie es für Modelltrainings in AWS Step Functions
Erstellt von Julia Bluszcz (AWS), Neha Sharma (AWS), Aubrey Oosthuizen (AWS), Mohan Gowda Purushothama (AWS) und Mateusz Zaremba (AWS)
Umgebung: Produktion | Technologien: Maschinelles Lernen und KI; DevOps | AWS-Services: Amazon ECR; Amazon SageMaker; AWS Step Functions |
Übersicht
Dieses Muster zeigt, wie Sie ein Docker-Container-Image für Amazon erstellen SageMaker und es für ein Trainingsmodell in AWS Step Functions verwenden. Indem Sie benutzerdefinierte Algorithmen in einem Container verpacken, können Sie fast jeden Code in der SageMaker Umgebung ausführen, unabhängig von Programmiersprache, Framework oder Abhängigkeiten.
In dem bereitgestellten SageMaker Beispiel-Notizbuch wird das benutzerdefinierte Docker-Container-Image in Amazon Elastic Container Registry (Amazon ECR) gespeichert. Step Functions verwendet dann den Container, der in Amazon ECR gespeichert ist, um ein Python-Verarbeitungsskript für SageMaker auszuführen. Anschließend exportiert der Container das Modell nach Amazon Simple Storage Service (Amazon S3).
Voraussetzungen und Einschränkungen
Voraussetzungen
Ein aktives AWS-Konto
Eine AWS Identity and Access Management (IAM) -Rolle für SageMaker mit Amazon S3 S3-Berechtigungen
Vertrautheit mit Python
Vertrautheit mit dem Amazon SageMaker Python SDK
Vertrautheit mit der AWS-Befehlszeilenschnittstelle (AWS CLI)
Vertrautheit mit dem AWS-SDK SDK for Python (Boto3)
Vertrautheit mit Amazon ECR
Vertrautheit mit Docker
Produktversionen
AWS Step Functions SDK für Datenwissenschaft, Version 2.3.0
Amazon SageMaker Python SDK versie 2.78.0
Architektur
Das folgende Diagramm zeigt einen Beispiel-Workflow für die Erstellung eines Docker-Container-Images für und SageMaker dessen anschließende Verwendung für ein Trainingsmodell in Step Functions:
Das Diagramm zeigt den folgenden Workflow:
Ein Datenwissenschaftler oder DevOps Ingenieur verwendet ein SageMaker Amazon-Notizbuch, um ein benutzerdefiniertes Docker-Container-Image zu erstellen.
Ein Datenwissenschaftler oder DevOps Ingenieur speichert das Docker-Container-Image in einem privaten Amazon ECR-Repository, das sich in einer privaten Registrierung befindet.
Ein Datenwissenschaftler oder DevOps Ingenieur verwendet den Docker-Container, um einen SageMaker Python-Verarbeitungsjob in einem Step Functions Functions-Workflow auszuführen.
Automatisierung und Skalierung
Das SageMaker Beispiel-Notizbuch in diesem Muster verwendet einen ml.m5.xlarge
Notebook-Instanztyp. Sie können den Instanztyp an Ihren Anwendungsfall anpassen. Weitere Informationen zu SageMaker Notebook-Instance-Typen finden Sie unter SageMaker Amazon-Preise
Tools
Amazon Elastic Container Registry (Amazon ECR) ist ein verwalteter Container-Image-Registry-Service, der sicher, skalierbar und zuverlässig ist.
Amazon SageMaker ist ein verwalteter Service für maschinelles Lernen (ML), der Ihnen hilft, ML-Modelle zu erstellen und zu trainieren und sie dann in einer produktionsbereiten gehosteten Umgebung bereitzustellen.
Das Amazon SageMaker Python SDK
ist eine Open-Source-Bibliothek für das Training und die Bereitstellung von Modellen für maschinelles Lernen. SageMaker AWS Step Functions ist ein serverloser Orchestrierungsservice, mit dem Sie AWS Lambda Lambda-Funktionen und andere AWS-Services kombinieren können, um geschäftskritische Anwendungen zu erstellen.
Das AWS Step Functions Data Science Python SDK
ist eine Open-Source-Bibliothek, mit der Sie Step Functions Functions-Workflows erstellen können, die Modelle für maschinelles Lernen verarbeiten und veröffentlichen.
Epen
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Richten Sie Amazon ECR ein und erstellen Sie eine neue private Registrierung. | Falls Sie dies noch nicht getan haben, richten Sie Amazon ECR ein, indem Sie den Anweisungen unter Einrichtung mit Amazon ECR im Amazon ECR-Benutzerhandbuch folgen. Jedes AWS-Konto ist mit einer standardmäßigen privaten Amazon ECR-Registrierung ausgestattet. | DevOps Ingenieur |
Erstellen Sie ein privates Amazon ECR-Repository. | Folgen Sie den Anweisungen unter Erstellen eines privaten Repositorys im Amazon ECR-Benutzerhandbuch. Hinweis: In dem Repository, das Sie erstellen, speichern Sie Ihre benutzerdefinierten Docker-Container-Images. | DevOps Ingenieur |
Erstellen Sie ein Dockerfile, das die Spezifikationen enthält, die für die Ausführung Ihres SageMaker Verarbeitungsjobs erforderlich sind. | Erstellen Sie ein Dockerfile, das die für die Ausführung Ihres SageMaker Verarbeitungsjobs erforderlichen Spezifikationen enthält, indem Sie ein Dockerfile konfigurieren. Eine Anleitung finden Sie im Amazon SageMaker Developer Guide unter Anpassung Ihres eigenen Trainingscontainers. Weitere Informationen zu Dockerfiles finden Sie in der Dockerfile-Referenz Beispiel: Jupyter-Notebook-Codezellen zum Erstellen eines Dockerfiles Zelle 1
Zelle 2
| DevOps Ingenieur |
Erstellen Sie Ihr Docker-Container-Image und übertragen Sie es auf Amazon ECR. |
Weitere Informationen finden Sie unter Container erstellen und registrieren Beispiel für Jupyter-Notebook-Codezellen zum Erstellen und Registrieren eines Docker-Images Wichtig: Bevor Sie die folgenden Zellen ausführen, stellen Sie sicher, dass Sie ein Dockerfile erstellt und im Verzeichnis namens gespeichert haben. Zelle 1
Zelle 2
Zelle 3
Zelle 4
Hinweis: Sie müssen Ihren Docker-Client bei Ihrer privaten Registrierung authentifizieren, damit Sie die Befehle | DevOps Ingenieur |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Erstellen Sie ein Python-Skript, das Ihre benutzerdefinierte Verarbeitungs- und Modelltrainingslogik enthält. | Schreiben Sie eine benutzerdefinierte Verarbeitungslogik, die in Ihrem Datenverarbeitungsskript ausgeführt werden soll. Speichern Sie es dann als Python-Skript mit dem Namen Weitere Informationen finden Sie unter Bringen Sie Ihr eigenes Modell mit aktiviertem SageMaker Skriptmodus Beispiel für ein Python-Skript, das benutzerdefinierte Verarbeitungs- und Modelltrainingslogik enthält
| Data Scientist |
Erstellen Sie einen Step Functions Functions-Workflow, der Ihren SageMaker Verarbeitungsjob als einen der Schritte enthält. | Installieren und importieren Sie das AWS Step Functions Data Science SDK Wichtig: Stellen Sie sicher, dass Sie in Ihrem AWS-Konto eine IAM-Ausführungsrolle für Step Functions erstellt Beispiel für die Einrichtung einer Umgebung und ein benutzerdefiniertes Trainingsskript zum Hochladen auf Amazon S3
Beispiel für eine Definition eines SageMaker Verarbeitungsschritts, die ein benutzerdefiniertes Amazon ECR-Image und ein Python-Skript verwendet Hinweis: Stellen Sie sicher, dass Sie den
Beispiel Step Functions Functions-Workflow, der einen SageMaker Verarbeitungsjob ausführt Hinweis: Dieser Beispiel-Workflow umfasst nur den SageMaker Verarbeitungs-Job-Schritt, keinen vollständigen Step Functions Functions-Workflow. Ein vollständiges Beispiel für einen Workflow finden Sie unter Beispiel-Notebooks SageMaker in
| Data Scientist |
Zugehörige Ressourcen
Daten verarbeiten (Amazon SageMaker Developer Guide)
Anpassung Ihres eigenen Trainingscontainers (Amazon SageMaker Developer Guide)