Zephyrnet-Logo

Beschleunigen Sie ML-Workflows mit dem lokalen Modus von Amazon SageMaker Studio und der Docker-Unterstützung | Amazon Web Services

Datum:

Wir freuen uns, zwei neue Funktionen bekannt zu geben Amazon SageMaker-Studio Das wird die iterative Entwicklung für Praktiker des maschinellen Lernens (ML) beschleunigen: Lokaler Modus und Docker-Unterstützung. Die Entwicklung von ML-Modellen erfordert oft langsame Iterationszyklen, da Entwickler zwischen Codierung, Schulung und Bereitstellung wechseln. Bei jedem Schritt muss auf den Start von Remote-Rechenressourcen gewartet werden, was die Validierung von Implementierungen und das Einholen von Feedback zu Änderungen verzögert.

Mit dem lokalen Modus können Entwickler jetzt Modelle trainieren und testen, Code debuggen und End-to-End-Pipelines direkt auf ihrer SageMaker Studio-Notebook-Instanz validieren, ohne dass Remote-Rechenressourcen hochgefahren werden müssen. Dadurch wird der Iterationszyklus von Minuten auf Sekunden verkürzt und die Entwicklerproduktivität gesteigert. Die Docker-Unterstützung in SageMaker Studio-Notebooks ermöglicht es Entwicklern, mühelos Docker-Container zu erstellen und auf vorgefertigte Container zuzugreifen. Dadurch wird eine konsistente Entwicklungsumgebung für das gesamte Team bereitgestellt und zeitaufwändiges Setup und Abhängigkeitsmanagement vermieden.

Der lokale Modus und die Docker-Unterstützung bieten einen optimierten Arbeitsablauf für die Validierung von Codeänderungen und das Prototyping von Modellen mithilfe lokaler Container, die auf einem SageMaker Studio-Notebook ausgeführt werden

Beispiel. In diesem Beitrag führen wir Sie durch die Einrichtung des lokalen Modus in SageMaker Studio, die Ausführung eines Beispieltrainingsjobs und die Bereitstellung des Modells auf einem Amazon Sage Maker Endpunkt von einem SageMaker Studio-Notebook aus.

Lokaler Modus von SageMaker Studio

SageMaker Studio führt den lokalen Modus ein, der es Ihnen ermöglicht, SageMaker-Schulungs-, Inferenz-, Stapeltransformations- und Verarbeitungsjobs direkt auf Ihren JupyterLab-, Code-Editor- oder SageMaker Studio Classic-Notebook-Instanzen auszuführen, ohne dass Remote-Rechenressourcen erforderlich sind. Zu den Vorteilen der Verwendung des lokalen Modus gehören:

  • Sofortige Validierung und Tests von Arbeitsabläufen direkt in integrierten Entwicklungsumgebungen (IDEs)
  • Schnellere Iteration durch lokale Ausführungen für kleinere Jobs, um Ausgaben zu überprüfen und Probleme frühzeitig zu erkennen
  • Verbesserte Entwicklungs- und Debugging-Effizienz durch Eliminierung des Wartens auf Remote-Schulungsaufträge
  • Sofortiges Feedback zu Codeänderungen, bevor vollständige Jobs in der Cloud ausgeführt werden

Die folgende Abbildung veranschaulicht den Arbeitsablauf im lokalen Modus in SageMaker.

Workflow im lokalen Modus auf SageMaker

Um den lokalen Modus zu verwenden, legen Sie fest instance_type='local' beim Ausführen von SageMaker Python SDK-Jobs wie Training und Inferenz. Dadurch werden sie auf den von Ihren SageMaker Studio-IDEs verwendeten Instanzen ausgeführt, anstatt Cloud-Ressourcen bereitzustellen.

Obwohl bestimmte Funktionen wie verteiltes Training nur in der Cloud verfügbar sind, entfällt im lokalen Modus die Notwendigkeit, den Kontext für schnelle Iterationen zu wechseln. Wenn Sie bereit sind, die volle Leistung und Skalierbarkeit von SageMaker zu nutzen, können Sie Ihren Workflow nahtlos in der Cloud ausführen.

Docker-Unterstützung in SageMaker Studio

SageMaker Studio ermöglicht jetzt auch das lokale Erstellen und Ausführen von Docker-Containern auf Ihrer SageMaker Studio-Notebook-Instanz. Mit dieser neuen Funktion können Sie Docker-Images in SageMaker Studio erstellen und validieren, bevor Sie sie für SageMaker-Training und -Inferenz verwenden.

Das folgende Diagramm veranschaulicht die übergeordnete Docker-Orchestrierungsarchitektur in SageMaker Studio.

hochrangige Docker-Orchestrierungsarchitektur innerhalb von SageMaker Studio

Mit der Docker-Unterstützung in SageMaker Studio können Sie:

  • Erstellen Sie Docker-Container mit integrierten Modellen und Abhängigkeiten direkt in SageMaker Studio
  • Eliminieren Sie die Notwendigkeit externer Docker-Build-Prozesse, um die Image-Erstellung zu vereinfachen
  • Führen Sie Container lokal aus, um die Funktionalität zu überprüfen, bevor Sie Modelle in der Produktion bereitstellen
  • Verwenden Sie lokale Container wieder, wenn Sie sie für Schulungen und Hosting in SageMaker bereitstellen

Obwohl einige erweiterte Docker-Funktionen wie Multi-Container und benutzerdefinierte Netzwerke zum jetzigen Zeitpunkt nicht unterstützt werden, ist die Kernfunktion zum Erstellen und Ausführen verfügbar, um die Entwicklung von Containern für Bring-Your-Own-Container-Workflows (BYOC) zu beschleunigen.

Voraussetzungen:

Um den lokalen Modus in SageMaker Studio-Anwendungen verwenden zu können, müssen Sie die folgenden Voraussetzungen erfüllen:

  • Zum Abrufen von Bildern Amazon Elastic Container-Registrierung (Amazon ECR), das Konto, das das ECR-Bild hostet, muss dem Benutzer Zugriffsberechtigungen erteilen Identitäts- und Zugriffsmanagement (IAM)-Rolle. Die Rolle der Domäne muss auch den Amazon ECR-Zugriff ermöglichen.
  • Um den lokalen Modus und die Docker-Funktionen zu aktivieren, müssen Sie Folgendes festlegen EnableDockerAccess Parameter für die Domäne auf „true“ setzen DockerSettings Verwendung der AWS-Befehlszeilenschnittstelle (AWS CLI). Dadurch können Benutzer in der Domäne den lokalen Modus und Docker-Funktionen nutzen. Standardmäßig sind der lokale Modus und Docker in SageMaker Studio deaktiviert. Alle vorhandenen SageMaker Studio-Apps müssen neu gestartet werden, damit das Docker-Dienst-Update wirksam wird. Das Folgende ist ein Beispiel für einen AWS CLI-Befehl zum Aktualisieren einer SageMaker Studio-Domäne:
aws sagemaker --region <REGION> 
update-domain --domain-id <DOMAIN-ID> 
--domain-settings-for-update '{"DockerSettings": {"EnableDockerAccess": "ENABLED"}}'

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ecr:CompleteLayerUpload",
        "ecr:UploadLayerPart",
        "ecr:InitiateLayerUpload",
        "ecr:BatchCheckLayerAvailability",
        "ecr:PutImage"
      ],
      "Resource": "arn:aws:ecr:us-east-2:123456789012:repository/<repositoryname>"
    },
    {
      "Effect": "Allow",
      "Action": "ecr:GetAuthorizationToken",
      "Resource": "*"
    }
  ]
}

Führen Sie Python-Dateien in SageMaker Studio-Bereichen im lokalen Modus aus

SageMaker Studio JupyterLab und Code Editor (basierend auf Code-OSS, Visual Studio Code – Open Source) erweitert SageMaker Studio, sodass Sie Ihren Analyse- und ML-Code mit der beliebten, kompakten IDE schreiben, testen, debuggen und ausführen können. Weitere Informationen zu den ersten Schritten mit SageMaker Studio-IDEs finden Sie unter Steigern Sie die Produktivität mit Amazon SageMaker Studio: Einführung von JupyterLab Spaces und generativen KI-Tools und Neu – Code-Editor, basierend auf Code-OSS VS Code Open Source, jetzt in Amazon SageMaker Studio verfügbar. Führen Sie die folgenden Schritte aus:

Führen Sie Python-Dateien in SageMaker Studio-Bereichen im lokalen Modus aus Führen Sie Python-Dateien in SageMaker Studio-Bereichen im lokalen Modus aus

  • Erstellen Sie ein neues Terminal.  Führen Sie Python-Dateien in SageMaker Studio-Bereichen im lokalen Modus aus Führen Sie Python-Dateien in SageMaker Studio-Bereichen im lokalen Modus aus
  • Installieren Sie die Docker-CLI und das Docker Compose-Plugin gemäß den folgenden Anweisungen GitHub Repo. Wenn verkettete Befehle fehlschlagen, führen Sie die Befehle einzeln aus.

Führen Sie Python-Dateien in SageMaker Studio-Bereichen im lokalen Modus aus Führen Sie Python-Dateien in SageMaker Studio-Bereichen im lokalen Modus aus Sie müssen das SageMaker SDK auf die neueste Version aktualisieren.

  • Führen Sie pip install sagemaker -Uq im Terminal.

Nur für den Code-Editor müssen Sie die Python-Umgebung so einstellen, dass sie im aktuellen Terminal ausgeführt wird.

  • Im Code-Editor auf der Datei-Menüwählen Voreinstellungen und Einstellungen .

Führen Sie Python-Dateien in SageMaker Studio-Bereichen im lokalen Modus aus

  • Suchen und auswählen Terminal: Im Dateiverzeichnis ausführen.

Führen Sie Python-Dateien in SageMaker Studio-Bereichen im lokalen Modus aus

  • Öffnen Sie im Code-Editor oder JupyterLab die scikit_learn_script_mode_local_training_and_serving Ordner und führen Sie die scikit_learn_script_mode_local_training_and_serving.py Datei.

Sie können das Skript ausführen, indem Sie auswählen Führen Sie im Code-Editor oder über die CLI in einem JupyterLab-Terminal. Führen Sie Python-Dateien in SageMaker Studio-Bereichen im lokalen Modus aus Führen Sie Python-Dateien in SageMaker Studio-Bereichen im lokalen Modus aus Sie können sehen, wie das Modell vor Ort trainiert wird. Anschließend stellen Sie das Modell lokal auf einem SageMaker-Endpunkt bereit und berechnen den quadratischen Mittelwertfehler (RMSE). Führen Sie Python-Dateien in SageMaker Studio-Bereichen im lokalen Modus aus Führen Sie Python-Dateien in SageMaker Studio-Bereichen im lokalen Modus aus

Simulieren Sie Training und Inferenz in SageMaker Studio Classic im lokalen Modus

Sie können in SageMaker Studio Classic auch ein Notebook verwenden, um einen kleinen Schulungsauftrag auszuführen CIFAR10 Verwenden Sie den lokalen Modus, stellen Sie das Modell lokal bereit und führen Sie Inferenzen durch.

Richten Sie Ihr Notizbuch ein

Führen Sie die folgenden Schritte aus, um das Notebook einzurichten:

  • Öffnen Sie SageMaker Studio Classic und klonen Sie Folgendes GitHub Repo.

Simulieren Sie Training und Inferenz in SageMaker Studio Classic im lokalen Modus

  • Öffnen Sie den Microsoft Store auf Ihrem Windows-PC. pytorch_local_mode_cifar10.ipynb notebook in blog/pytorch_cnn_cifar10.

Simulieren Sie Training und Inferenz in SageMaker Studio Classic im lokalen Modus

  • Aussichten für Bild, wählen PyTorch 2.1.0 Python 3.10 CPU Optimized.

Simulieren Sie Training und Inferenz in SageMaker Studio Classic im lokalen Modus Vergewissern Sie sich, dass Ihr Notebook die richtige Instanz- und Kernelauswahl anzeigt. Simulieren Sie Training und Inferenz in SageMaker Studio Classic im lokalen Modus

  • Öffnen Sie ein Terminal, indem Sie wählen Starten Sie das Terminal im aktuellen SageMaker-Image.

Simulieren Sie Training und Inferenz in SageMaker Studio Classic im lokalen Modus

  • Installieren Sie die Docker-CLI und das Docker Compose-Plugin gemäß den folgenden Anweisungen GitHub Repo.

Da Sie Docker von SageMaker Studio Classic verwenden, entfernen Sie sudo, wenn Sie Befehle ausführen, da das Terminal bereits unter Superuser ausgeführt wird. Für SageMaker Studio Classic hängen die Installationsbefehle vom SageMaker Studio-App-Image-Betriebssystem ab. DLC-basierte Framework-Images basieren beispielsweise auf Ubuntu, in dem die folgenden Anweisungen funktionieren würden. Für ein Debian-basiertes Image wie DataScience Images müssen Sie jedoch die folgenden Anweisungen befolgen GitHub Repo. Wenn verkettete Befehle fehlschlagen, führen Sie die Befehle einzeln aus. Die Docker-Version sollte angezeigt werden. Simulieren Sie Training und Inferenz in SageMaker Studio Classic im lokalen Modus

  • Lassen Sie das Terminalfenster geöffnet, kehren Sie zum Notebook zurück und beginnen Sie, es Zelle für Zelle auszuführen.

Stellen Sie sicher, dass Sie die Zelle mit laufen lassen pip install -U sagemaker Sie verwenden also die neueste Version des SageMaker Python SDK.

Lokale Ausbildung

Wenn Sie mit der Ausführung des lokalen SageMaker-Schulungsauftrags beginnen, werden die folgenden Protokollzeilen angezeigt:

INFO:sagemaker.local.image:'Docker Compose' found using Docker CLI.
INFO:sagemaker.local.local_session:Starting training job

Dies weist darauf hin, dass das Training lokal mit Docker ausgeführt wurde.

Simulieren Sie Training und Inferenz in SageMaker Studio Classic im lokalen Modus

Seien Sie geduldig, während die pytorch-training:2.1-cpu-py310 Docker-Image wird gezogen. Aufgrund der Größe (5.2 GB) kann es einige Minuten dauern.

Docker-Images werden im Root-Volume der SageMaker Studio-App-Instanz gespeichert, auf das Endbenutzer nicht zugreifen können. Die einzige Möglichkeit, auf Docker-Images zuzugreifen und mit ihnen zu interagieren, sind die offengelegten Docker-API-Operationen.

Aus Gründen der Vertraulichkeit der Benutzer greift die SageMaker Studio-Plattform niemals auf benutzerspezifische Bilder zu und speichert diese auch nicht.

Wenn das Training abgeschlossen ist, können Sie die folgenden Erfolgsprotokollzeilen sehen:

8zlz1zbfta-sagemaker-local exited with code 0
Aborting on container exit...
Container 8zlz1zbfta-sagemaker-local  Stopping
Container 8zlz1zbfta-sagemaker-local  Stopped
INFO:sagemaker.local.image:===== Job Complete =====

Simulieren Sie Training und Inferenz in SageMaker Studio Classic im lokalen Modus

Lokale Schlussfolgerung

Führen Sie die folgenden Schritte aus:

  • Stellen Sie den SageMaker-Endpunkt im lokalen SageMaker-Modus bereit.

Seien Sie geduldig, während die pytorch-inference:2.1-cpu-py310 Docker-Image wird gezogen. Aufgrund der Größe (4.32 GB) kann es einige Minuten dauern.

Simulieren Sie Training und Inferenz in SageMaker Studio Classic im lokalen Modus

  • Rufen Sie den lokal bereitgestellten SageMaker-Endpunkt mithilfe der Testbilder auf.

Simulieren Sie Training und Inferenz in SageMaker Studio Classic im lokalen Modus

Sie können die vorhergesagten Klassen sehen: Frosch, Schiff, Auto und Flugzeug:

Predicted:  frog ship  car plane

Simulieren Sie Training und Inferenz in SageMaker Studio Classic im lokalen Modus

  • Da der lokale SageMaker-Endpunkt noch aktiv ist, navigieren Sie zurück zum geöffneten Terminalfenster und listen Sie die ausgeführten Container auf:

docker ps

Sie können das Laufen sehen pytorch-inference:2.1-cpu-py310 Container, der den SageMaker-Endpunkt unterstützt.

Simulieren Sie Training und Inferenz in SageMaker Studio Classic im lokalen Modus

  • Um den lokalen Endpunkt von SageMaker herunterzufahren und den laufenden Container zu stoppen, führen Sie den Bereinigungscode aus, da Sie jeweils nur einen lokalen Endpunkt ausführen können.

Simulieren Sie Training und Inferenz in SageMaker Studio Classic im lokalen Modus

  • Um sicherzustellen, dass der Docker-Container nicht verfügbar ist, können Sie zum geöffneten Terminalfenster navigieren, „docker ps“ ausführen und sicherstellen, dass keine Container ausgeführt werden.
  • Wenn Sie sehen, dass ein Container ausgeführt wird, führen Sie ihn aus docker stop <CONTAINER_ID> um es zu stoppen.

Tipps zur Verwendung des lokalen SageMaker-Modus

Wenn Sie SageMaker zum ersten Mal verwenden, lesen Sie Trainieren Sie Modelle für maschinelles Lernen. Weitere Informationen zum Bereitstellen von Modellen zur Inferenz mit SageMaker finden Sie unter Stellen Sie Modelle zur Inferenz bereit.

Beachten Sie die folgenden Empfehlungen:

  • Drucken Sie Eingabe- und Ausgabedateien und Ordner, um das Laden von Datensätzen und Modellen zu verstehen
  • Verwenden Sie 1–2 Epochen und kleine Datensätze für schnelle Tests
  • Installieren Sie Abhängigkeiten in einer Docker-Datei vor, um die Umgebungseinrichtung zu optimieren
  • Isolieren Sie Serialisierungscode in Endpunkten zum Debuggen

Konfigurieren Sie die Docker-Installation als Lebenszykluskonfiguration

Sie können den Docker-Installationsprozess als Lifecycle Configuration (LCC)-Skript definieren, um die Einrichtung bei jedem Start eines neuen SageMaker Studio-Bereichs zu vereinfachen. LCCs sind Skripte, die SageMaker bei Ereignissen wie der Raumerstellung ausführt. Siehe die Jupyter-Labor, Code-Editor, oder SageMaker Studio Classic LCC-Setup (mit Docker-Installationscli als Referenz), um mehr zu erfahren.

Konfigurieren Sie die Docker-Installation als Lebenszykluskonfiguration

Konfigurieren Sie die Docker-Installation als Lebenszykluskonfiguration

Erstellen und testen Sie benutzerdefinierte Docker-Images in SageMaker Studio-Bereichen

In diesem Schritt installieren Sie Docker im App-Bereich JupyterLab (oder Code-Editor) und verwenden Docker, um benutzerdefinierte Docker-Images mit SageMaker Studio-Bereichen zu erstellen, zu testen und zu veröffentlichen. Spaces werden verwendet, um den Speicher- und Ressourcenbedarf einiger SageMaker Studio-Anwendungen zu verwalten. Jeder Bereich hat eine 1:1-Beziehung zu einer Instanz einer Anwendung. Jede erstellte unterstützte Anwendung erhält ihren eigenen Bereich. Weitere Informationen zu SageMaker-Bereichen finden Sie unter Steigern Sie die Produktivität mit Amazon SageMaker Studio: Einführung von JupyterLab Spaces und generativen KI-Tools. Stellen Sie sicher, dass Sie einen neuen Speicherplatz mit mindestens 30 GB Speicher bereitstellen, um ausreichend Speicherplatz für Docker-Images und -Artefakte zu bieten.

Installieren Sie Docker in einem Space

Führen Sie die folgenden Befehle aus, um die Docker-CLI und das Docker-Compose-Plugin in einem JupyterLab-Bereich zu installieren GitHub Repo. SageMaker Studio Unterstützt nur Docker-Version 20.10.X.

Erstellen Sie Docker-Images

Um zu bestätigen, dass Docker in Ihrem JupyterLab-Bereich installiert ist und funktioniert, führen Sie den folgenden Code aus:

# to verify docker service
sagemaker-user@default:~$ docker version
Client: Docker Engine - Community
Version:           24.0.7
API version:       1.41 (downgraded from 1.43)
Go version:        go1.20.10
Git commit:        afdd53b
Built:             Thu Oct 26 09:07:41 2023
OS/Arch:           linux/amd64
Context:           default

Server:
Engine:
Version:          20.10.25
API version:      1.41 (minimum version 1.12)
Go version:       go1.20.10
Git commit:       5df983c
Built:            Fri Oct 13 22:46:59 2023
OS/Arch:          linux/amd64
Experimental:     false
containerd:
Version:          1.7.2
GitCommit:        0cae528dd6cb557f7201036e9f43420650207b58
runc:
Version:          1.1.7
GitCommit:        f19387a6bec4944c770f7668ab51c4348d9c2f38
docker-init:
Version:          0.19.0
GitCommit:        de40ad0

Führen Sie die folgenden Schritte aus, um ein benutzerdefiniertes Docker-Image in einem JupyterLab-Bereich (oder Code-Editor) zu erstellen:

  • Erstellen Sie eine leere Docker-Datei:

touch Dockerfile

  • Bearbeiten Sie die Docker-Datei mit den folgenden Befehlen, die ein einfaches Flask-Webserver-Image aus dem Basis-Image python:3.10.13-bullseye erstellen, auf dem gehostet wird Docker-Hub:
# Use the specified Python base image
FROM python:3.10.13-bullseye

# Create a code dir
RUN mkdir /code/

# Set the working directory in the container
WORKDIR /code

# Upgrade pip and install required packages
RUN python3 -m pip install --upgrade pip && 
python3 -m pip install flask

# Copy the app.py file to the container
COPY app.py /code/

# Set the command to run the app
ENTRYPOINT ["python", "app.py"]

Der folgende Code zeigt den Inhalt einer Beispiel-Flask-Anwendungsdatei app.py:

from flask import Flask, jsonify

app = Flask(__name__)

@app.route('/')
def hello():
return jsonify({"response": "Hello"})

if __name__ == '__main__':
app.run(host='0.0.0.0', port=6006)

Darüber hinaus können Sie die Referenz-Dockerfile-Befehle aktualisieren, um Pakete und Artefakte Ihrer Wahl einzuschließen.

  • Erstellen Sie ein Docker-Image mit der Referenz-Dockerdatei:

docker build --network sagemaker --tag myflaskapp:v1 --file ./Dockerfile .

Include --network sagemaker in Ihrem Docker-Build-Befehl ein, andernfalls schlägt der Build fehl. Container können nicht in der Docker-Standardbrücke oder in benutzerdefinierten Docker-Netzwerken ausgeführt werden. Container werden im selben Netzwerk wie der SageMaker Studio-Anwendungscontainer ausgeführt. Benutzer können sagemaker nur für den Netzwerknamen verwenden.

  • Wenn Ihr Build abgeschlossen ist, überprüfen Sie, ob das Image vorhanden ist. Kennzeichnen Sie den Build erneut als ECR-Image und übertragen Sie ihn. Wenn Sie auf Berechtigungsprobleme stoßen, führen Sie den Befehl aws ecr get-login-password… aus und versuchen Sie, den Docker-Push/Pull erneut auszuführen:
sagemaker-user@default:~$ docker image list
REPOSITORY      TAG       IMAGE ID       CREATED          SIZE
myflaskapp      v1        d623f1538f20   27 minutes ago   489MB

sagemaker-user@default:~$ docker tag myflaskapp:v1 123456789012.dkr.ecr.us-east-2.amazonaws.com/myflaskapp:v1

sagemaker-user@default:~$ docker image list
REPOSITORY                                                  TAG       IMAGE ID       CREATED          SIZE
123456789012.dkr.ecr.us-east-2.amazonaws.com/myflaskapp     latest    d623f1538f20   27 minutes ago   489MB
myflaskapp                                                  v1        d623f1538f20   27 minutes ago   489MB

sagemaker-user@default:~$ aws ecr get-login-password --region region | docker login --username AWS --password-stdin aws_account_id.dkr.ecr.region.amazonaws.com

sagemaker-user@default:~$ docker push 123456789012.dkr.ecr.us-east-2.amazonaws.com/myflaskapp:latest

Testen Sie Docker-Images

Durch die Installation von Docker in einem SageMaker Studio-Bereich von JupyterLab (oder Code Editor) können Sie vorgefertigte oder benutzerdefinierte Docker-Images als Container (oder containerisierte Anwendungen) testen. In diesem Abschnitt verwenden wir den Befehl „docker run“, um Docker-Container in einem SageMaker Studio-Bereich bereitzustellen, um containerisierte Arbeitslasten wie REST-Webdienste und Python-Skripte zu testen. Führen Sie die folgenden Schritte aus:

sagemaker-user@default:~$ docker image list
REPOSITORY                                                  TAG       IMAGE ID       CREATED       SIZE

  • Wenn das Testbild nicht vorhanden ist, führen Sie Docker Pull aus, um das Bild auf Ihren lokalen Computer zu ziehen:

sagemaker-user@default:~$ docker pull 123456789012.dkr.ecr.us-east-2.amazonaws.com/myflaskapp:v1

  • Wenn Authentifizierungsprobleme auftreten, führen Sie die folgenden Befehle aus:

aws ecr get-login-password --region region | docker login --username AWS --password-stdin aws_account_id.dkr.ecr.region.amazonaws.com

  • Erstellen Sie einen Container, um Ihre Arbeitslast zu testen:

docker run --network sagemaker 123456789012.dkr.ecr.us-east-2.amazonaws.com/myflaskapp:v1

Dadurch wird eine neue Containerinstanz gestartet und die mit Dockers ENTRYPOINT definierte Anwendung ausgeführt:

sagemaker-user@default:~$ docker run --network sagemaker 905418447590.dkr.ecr.us-east-2.amazonaws.com/myflaskapp:v1
* Serving Flask app 'app'
* Debug mode: off
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
* Running on all addresses (0.0.0.0)
* Running on http://127.0.0.1:6006
* Running on http://169.255.255.2:6006

  • Um zu testen, ob Ihr Web-Endpunkt aktiv ist, navigieren Sie zur URL https://<sagemaker-space-id>.studio.us-east-2.sagemaker.aws/jupyterlab/default/proxy/6006/.

Sie sollten eine JSON-Antwort ähnlich dem folgenden Screenshot sehen.

Konfigurieren Sie die Docker-Installation als Lebenszykluskonfiguration

Aufräumen

Um unnötige Kosten zu vermeiden, löschen Sie die Ressourcen, die Sie beim Ausführen der Beispiele in diesem Beitrag erstellt haben:

  1. Wählen Sie in Ihrer SageMaker Studio-Domäne Studio-Klassiker im Navigationsbereich und wählen Sie dann aus Stoppen.
  2. Wählen Sie in Ihrer SageMaker Studio-Domäne Jupyter-Labor or Code-Editor Wählen Sie im Navigationsbereich Ihre App aus und klicken Sie dann auf Stoppen.

Zusammenfassung

Der lokale Modus und die Docker-Unterstützung von SageMaker Studio ermöglichen es Entwicklern, ML-Implementierungen schneller zu erstellen, zu testen und zu iterieren, ohne ihren Arbeitsbereich verlassen zu müssen. Durch den sofortigen Zugriff auf Testumgebungen und -ausgaben optimieren diese Funktionen Arbeitsabläufe und verbessern die Produktivität. Probieren Sie die lokale Modell- und Docker-Unterstützung von SageMaker Studio mit unserem aus Quick-Onboard-Funktion, mit dem Sie innerhalb weniger Minuten eine neue Domain für einzelne Benutzer einrichten können. Teilen Sie Ihre Gedanken im Kommentarbereich mit!


Über die Autoren

Shweta SinghShweta Singh ist Senior Product Manager im Amazon SageMaker Machine Learning (ML)-Plattformteam bei AWS und leitet das SageMaker Python SDK. Sie ist seit über 5 Jahren in verschiedenen Produktrollen bei Amazon tätig. Sie hat einen Bachelor of Science in Computer Engineering und einen Master of Science in Financial Engineering, beide von der New York University

Eitan SelaEitan Sela ist ein spezialisierter Lösungsarchitekt für generative KI und maschinelles Lernen bei AWS. Er arbeitet mit AWS-Kunden zusammen, um ihnen Beratung und technische Unterstützung zu bieten und sie beim Aufbau und Betrieb von Lösungen für generative KI und maschinelles Lernen auf AWS zu unterstützen. In seiner Freizeit joggt Eitan gerne und liest die neuesten Artikel zum maschinellen Lernen.

Pranav MurthyPranav Murthy ist ein AI/ML Specialist Solutions Architect bei AWS. Er konzentriert sich darauf, Kunden beim Erstellen, Trainieren, Bereitstellen und Migrieren von Workloads für maschinelles Lernen (ML) zu SageMaker zu unterstützen. Zuvor arbeitete er in der Halbleiterindustrie und entwickelte große Modelle für Computer Vision (CV) und Natural Language Processing (NLP), um Halbleiterprozesse mithilfe modernster ML-Techniken zu verbessern. In seiner Freizeit spielt er gerne Schach und reist. Sie finden Pranav auf LinkedIn.

Mufaddal RohawalaMufaddal Rohawala ist Softwareentwickler bei AWS. Er arbeitet an der SageMaker Python SDK-Bibliothek für Amazon SageMaker. In seiner Freizeit reist er gerne, macht Outdoor-Aktivitäten und ist Fußballfan.

spot_img

Neueste Intelligenz

spot_img