Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Wichtig
Dieser Artikel enthält Informationen zur Verwendung des Azure Machine Learning SDK v1. Das SDK v1 wird ab dem 31. März 2025 nicht mehr unterstützt und endet am 30. Juni 2026. Sie können das SDK v1 bis zu diesem Datum installieren und verwenden.
Es wird empfohlen, vor dem 30. Juni 2026 zum SDK v2 zu wechseln. Weitere Informationen zum SDK v2 finden Sie unter What is the Azure Machine Learning Python SDK v2 and the SDK v2 reference.
In einigen Fällen erfüllen die vordefinierten Docker-Images für Modell-Ableitungs - und Erweiterbarkeitslösungen für Azure Machine Learning möglicherweise nicht Ihre Rückschlussdienstanforderungen.
In diesem Fall können Sie ein Dockerfile verwenden, um ein neues Image zu erstellen, indem Sie eines der vordefinierten Images als Ausgangspunkt verwenden. Durch die Erweiterung eines vordefinierten Docker-Images können Sie den Netzwerkstapel und die Bibliotheken von Azure Machine Learning nutzen, ohne ein Image von Grund auf neu zu erstellen.
Vor- und Nachteile
Die Verwendung eines Dockerfile ermöglicht eine vollständige Anpassung des Images vor der Bereitstellung. So können sie genau steuern, welche Abhängigkeiten, Umgebungsvariablen und anderen Einstellungen im Container festgelegt sind.
Der Hauptnachteil dieses Ansatzes ist, dass während der Bereitstellung ein zusätzlicher Buildvorgang für Images durchgeführt wird. Hierdurch wird der Bereitstellungsprozess verlangsamt. Wenn Sie die Python-Paketerweiterungsmethode verwenden können, ist die Bereitstellung schneller.
Voraussetzungen
Ein Azure Machine Learning-Arbeitsbereich. Ein Tutorial zum Erstellen eines Arbeitsbereichs finden Sie unter Erstellen von Ressourcen für die ersten Schritte.
Kenntnisse in Bezug auf die Erstellung eines Dockerfiles.
Entweder eine lokal funktionsfähige Installation von Docker, einschließlich
docker
-CLI, ODER eine ACR-Instanz (Azure Container Registry), die Ihrem Azure Machine Learning-Arbeitsbereich zugeordnet ist.Warnung
Die Azure Container Registry für Ihren Arbeitsbereich wird erstellt, wenn Sie ein Modell zum ersten Mal über den Arbeitsbereich trainieren oder bereitstellen. Wenn Sie einen neuen Arbeitsbereich erstellt haben, aber kein Modell trainiert oder erstellt haben, ist keine Azure-Containerregistrierung für den Arbeitsbereich vorhanden.
Durchführen der Erstellung und des Buildvorgangs für ein Dockerfile
Das folgende Beispiel ist eine Dockerfile, die ein vordefiniertes Docker-Image von Azure Machine Learning als Basisimage verwendet:
FROM mcr.microsoft.com/azureml/<image_name>:<tag>
COPY requirements.txt /tmp/requirements.txt
RUN pip install –r /tmp/requirements.txt
Anschließend fügen Sie das obige Dockerfile mit allen erforderlichen Dateien in das Verzeichnis ein und führen den folgenden Befehl aus, um den Buildvorgang für das Image durchzuführen:
docker build -f <above dockerfile> -t <image_name>:<tag> .
Tipp
Ausführlichere Informationen zu docker build
finden Sie in der Docker-Dokumentation.
Wenn der Befehl docker build
lokal nicht verfügbar ist, sollten Sie die ACR-Instanz (Azure Container Registry) Ihres Azure Machine Learning-Arbeitsbereichs nutzen, um das Docker-Image in der Cloud zu kompilieren. Weitere Informationen finden Sie unter Tutorial: Erstellen und Bereitstellen von Containerimages mit Azure Container Registry.
Wichtig
Die Empfehlung von Microsoft lautet, dass Sie zunächst überprüfen sollten, ob Ihr Dockerfile lokal funktioniert. Versuchen Sie erst dann, über die Azure Container Registry-Instanz ein benutzerdefiniertes Basisimage zu erstellen.
Die folgenden Abschnitte enthalten ausführlichere Details zum Dockerfile.
Installieren von zusätzlichen Paketen
Falls noch weitere apt
-Pakete im Ubuntu-Container installiert werden müssen, können Sie sie im Dockerfile hinzufügen. Im folgenden Beispiel wird veranschaulicht, wie Sie den Befehl apt-get
aus einem Dockerfile verwenden:
FROM <prebuilt docker image from MCR>
# Switch to root to install apt packages
USER root:root
RUN apt-get update && \
apt-get install -y \
<package-1> \
...
<package-n> && \
apt-get clean -y && \
rm -rf /var/lib/apt/lists/*
# Switch back to non-root user
USER dockeruser
Sie können auch zusätzliche pip-Pakete über einen Dockerfile installieren. Im folgenden Beispiel wird die Verwendung von pip install
veranschaulicht:
RUN pip install <library>
Einbinden des Modells und Codes in Images
Wenn Sie das Modell und den Code in das Image einbinden möchten, müssen Sie im Dockerfile die folgenden Umgebungsvariablen festlegen:
AZUREML_ENTRY_SCRIPT
: Das Eingabeskript Ihres Codes. Diese Datei enthält die Methodeninit()
undrun()
.AZUREML_MODEL_DIR
: Das Verzeichnis, das die Modelldateien enthält. Im Eingabeskript sollte dieses Verzeichnis als Stammverzeichnis des Modells verwendet werden.
Im folgenden Beispiel wird das Festlegen dieser Umgebungsvariablen im Dockerfile veranschaulicht:
FROM <prebuilt docker image from MCR>
# Code
COPY <local_code_directory> /var/azureml-app
ENV AZUREML_ENTRY_SCRIPT=<entryscript_file_name>
# Model
COPY <model_directory> /var/azureml-app/azureml-models
ENV AZUREML_MODEL_DIR=/var/azureml-app/azureml-models
Beispiel für Dockerfile
Im folgenden Beispiel wird das Installieren von apt
-Paketen, Festlegen von Umgebungsvariablen und Einbinden von Code und Modellen in das Dockerfile veranschaulicht:
Hinweis
Im folgenden Beispiel wird das mcr.microsoft.com/azureml/minimal-ubuntu20.04-py38-cpu-inference:latest
Bild als Basisbild verwendet. Informationen zu den verfügbaren Images finden Sie unter Vorabversion von Docker-Images für modellierte Ableitungen.
FROM mcr.microsoft.com/azureml/minimal-ubuntu20.04-py38-cpu-inference:latest
USER root:root
# Install libpng-tools and opencv
RUN apt-get update && \
apt-get install -y \
libpng-tools \
python3-opencv && \
apt-get clean -y && \
rm -rf /var/lib/apt/lists/*
# Switch back to non-root user
USER dockeruser
# Code
COPY code /var/azureml-app
ENV AZUREML_ENTRY_SCRIPT=score.py
# Model
COPY model /var/azureml-app/azureml-models
ENV AZUREML_MODEL_DIR=/var/azureml-app/azureml-models
Nächste Schritte
Informationen zur Verwendung eines Dockerfiles mit dem Python-SDK für Azure Machine Learning finden Sie in den folgenden Dokumenten:
- Verwenden Ihres eigenen lokalen Dockerfiles
- Verwenden eines vordefinierten Docker-Images und Erstellen eines benutzerdefinierten Basisimages
Weitere Informationen zum Bereitstellen eines Modells finden Sie in diesem Artikel.
Informationen zur Problembehandlung für Bereitstellungen von vordefinierten Docker-Images finden Sie in diesem Artikel.