Wdrażanie modelu przy użyciu niestandardowego obrazu podstawowego platformy DockerDeploy a model using a custom Docker base image

Dowiedz się, jak używać niestandardowego obrazu podstawowego platformy Docker podczas wdrażania wytrenowane modele za pomocą Azure Machine Learning.Learn how to use a custom Docker base image when deploying trained models with Azure Machine Learning.

Azure Machine Learning użyje domyślnego podstawowego obrazu platformy Docker, jeśli żaden nie zostanie określony.Azure Machine Learning will use a default base Docker image if none is specified. Określony obraz platformy Docker używany z programem można znaleźć w pliku azureml.core.runconfig.DEFAULT_CPU_IMAGE .You can find the specific Docker image used with azureml.core.runconfig.DEFAULT_CPU_IMAGE. Możesz również użyć Azure Machine Learning, aby wybrać określony obraz podstawowy, lub użyć obrazu niestandardowego, który po prostu po prostu udostępnisz.You can also use Azure Machine Learning environments to select a specific base image, or use a custom one that you provide.

Obraz podstawowy jest używany jako punkt początkowy podczas tworzenia obrazu dla wdrożenia.A base image is used as the starting point when an image is created for a deployment. Udostępnia podstawowy system operacyjny i składniki.It provides the underlying operating system and components. Następnie proces wdrażania dodaje do obrazu dodatkowe składniki, takie jak model, środowisko conda i inne zasoby.The deployment process then adds additional components, such as your model, conda environment, and other assets, to the image.

Zazwyczaj niestandardowy obraz podstawowy tworzy się, gdy chcesz zarządzać zależnościami przy użyciu platformy Docker, zachować ściślejszą kontrolę nad wersjami składników lub zaoszczędzić czas podczas wdrażania.Typically, you create a custom base image when you want to use Docker to manage your dependencies, maintain tighter control over component versions or save time during deployment. Można również zainstalować oprogramowanie wymagane przez model, w przypadku którego proces instalacji zajmuje dużo czasu.You might also want to install software required by your model, where the installation process takes a long time. Zainstalowanie oprogramowania podczas tworzenia obrazu podstawowego oznacza, że nie trzeba instalować go dla każdego wdrożenia.Installing the software when creating the base image means that you don't have to install it for each deployment.

Ważne

Podczas wdrażania modelu nie można zastąpić podstawowych składników, takich jak serwer internetowy lub IoT Edge składników.When you deploy a model, you cannot override core components such as the web server or IoT Edge components. Te składniki zapewniają znane środowisko pracy, które jest testowane i obsługiwane przez firmę Microsoft.These components provide a known working environment that is tested and supported by Microsoft.

Ostrzeżenie

Firma Microsoft może nie być w stanie rozwiązać problemów spowodowanych przez obraz niestandardowy.Microsoft may not be able to help troubleshoot problems caused by a custom image. Jeśli wystąpią problemy, może zostać wyświetlony monit o użycie obrazu domyślnego lub jednego z obrazów dostępnych przez firmę Microsoft, aby sprawdzić, czy problem jest specyficzny dla danego obrazu.If you encounter problems, you may be asked to use the default image or one of the images Microsoft provides to see if the problem is specific to your image.

Ten dokument został podzielić na dwie sekcje:This document is broken into two sections:

  • Tworzenie niestandardowego obrazu podstawowego: udostępnia administratorom i metodyce DevOps informacje dotyczące tworzenia obrazu niestandardowego i konfigurowania uwierzytelniania w usłudze Azure Container Registry przy użyciu interfejsu wiersza polecenia platformy Azure i interfejsu Machine Learning wiersza polecenia.Create a custom base image: Provides information to admins and DevOps on creating a custom image and configuring authentication to an Azure Container Registry using the Azure CLI and Machine Learning CLI.
  • Wdrażanie modelu przy użyciu niestandardowego obrazu podstawowego: udostępnia informacje dla badaczy danych i metodyki DevOps/inżynierów ds. uczenia maszynowego dotyczące używania obrazów niestandardowych podczas wdrażania wytrenowany model z zestawu SDK języka Python lub interfejsu wiersza polecenia uczenia maszynowego.Deploy a model using a custom base image: Provides information to Data Scientists and DevOps / ML Engineers on using custom images when deploying a trained model from the Python SDK or ML CLI.

Wymagania wstępnePrerequisites

Tworzenie niestandardowego obrazu podstawowegoCreate a custom base image

W informacjach w tej sekcji przyjęto założenie, że używasz Azure Container Registry do przechowywania obrazów platformy Docker.The information in this section assumes that you are using an Azure Container Registry to store Docker images. Podczas planowania tworzenia niestandardowych obrazów dla aplikacji należy użyć następującej Azure Machine Learning:Use the following checklist when planning to create custom images for Azure Machine Learning:

  • Czy będziesz używać aplikacji utworzonej Azure Container Registry dla Azure Machine Learning roboczego, czy autonomicznego Azure Container Registry?Will you use the Azure Container Registry created for the Azure Machine Learning workspace, or a standalone Azure Container Registry?

    W przypadku korzystania z obrazów przechowywanych w rejestrze kontenerów dla obszaru roboczego nie trzeba uwierzytelniać się w rejestrze.When using images stored in the container registry for the workspace, you do not need to authenticate to the registry. Uwierzytelnianie jest obsługiwane przez obszar roboczy.Authentication is handled by the workspace.

    Ostrzeżenie

    Adres Azure Container Registry obszaru roboczego jest tworzony podczas pierwszego trenowania lub wdrażania modelu przy użyciu obszaru roboczego.The Azure Container Registry for your workspace is created the first time you train or deploy a model using the workspace. Jeśli utworzono nowy obszar roboczy, ale nie został on wytrenowany ani utworzony model, nie Azure Container Registry dla tego obszaru roboczego.If you've created a new workspace, but not trained or created a model, no Azure Container Registry will exist for the workspace.

    W przypadku korzystania z obrazów przechowywanych w autonomicznym rejestrze kontenerów należy skonfigurować jednostkę usługi, która ma co najmniej dostęp do odczytu.When using images stored in a standalone container registry, you will need to configure a service principal that has at least read access. Następnie podaj identyfikator jednostki usługi (nazwę użytkownika) i hasło wszystkim użytkownikom, którzy będą korzystali z obrazów z rejestru.You then provide the service principal ID (username) and password to anyone that uses images from the registry. Wyjątek stanowi sytuacja, gdy rejestr kontenerów zostanie publicznie dostępny.The exception is if you make the container registry publicly accessible.

    Aby uzyskać informacje na temat tworzenia prywatnego Azure Container Registry, zobacz Tworzenie prywatnego rejestru kontenerów.For information on creating a private Azure Container Registry, see Create a private container registry.

    Aby uzyskać informacje na temat używania jednostki usługi z Azure Container Registry, zobacz Azure Container Registry uwierzytelniania za pomocą jednostki usługi.For information on using service principals with Azure Container Registry, see Azure Container Registry authentication with service principals.

  • Azure Container Registry i informacje o obrazie: podaj nazwę obrazu wszystkim osobom, które muszą z niego korzystać.Azure Container Registry and image information: Provide the image name to anyone that needs to use it. Na przykład obraz o nazwie , przechowywany w rejestrze o nazwie , jest przywołyny jako podczas używania obrazu myimage myregistry do myregistry.azurecr.io/myimage wdrażania modeluFor example, an image named myimage, stored in a registry named myregistry, is referenced as myregistry.azurecr.io/myimage when using the image for model deployment

Wymagania obrazuImage requirements

Azure Machine Learning obsługuje tylko obrazy platformy Docker, które zapewniają następujące oprogramowanie:Azure Machine Learning only supports Docker images that provide the following software:

  • Ubuntu 16.04 lub więcej.Ubuntu 16.04 or greater.
  • Conda 4.5.# lub więcej.Conda 4.5.# or greater.
  • Python 3.6+.Python 3.6+.

Aby korzystać z zestawów danych, zainstaluj pakiet libfuse-dev.To use Datasets, please install the libfuse-dev package. Pamiętaj również, aby zainstalować wszystkie pakiety przestrzeni użytkownika, które mogą być potrzebne.Also make sure to install any user space packages you may need.

Usługa Azure ML utrzymuje zestaw podstawowych obrazów procesora CPU i procesora GPU opublikowanych w usłudze Microsoft Container Registry, z których można opcjonalnie korzystać (lub odwoływać się) zamiast tworzyć własny obraz niestandardowy.Azure ML maintains a set of CPU and GPU base images published to Microsoft Container Registry that you can optionally leverage (or reference) instead of creating your own custom image. Aby wyświetlić pliki Dockerfile dla tych obrazów, zapoznaj się z repozytorium GitHub Azure/AzureML-Containers.To see the Dockerfiles for those images, refer to the Azure/AzureML-Containers GitHub repository.

W przypadku obrazów procesora GPU usługa Azure ML oferuje obecnie zarówno obrazy podstawowe cuda9, jak i cuda10.For GPU images, Azure ML currently offers both cuda9 and cuda10 base images. Główne zależności zainstalowane w tych obrazach podstawowych to:The major dependencies installed in these base images are:

ZależnościDependencies Procesor IntelMPIIntelMPI CPU OpenMPI CPUOpenMPI CPU IntelMPI GPUIntelMPI GPU OpenMPI GPUOpenMPI GPU
minicondaminiconda = = 4.5.11==4.5.11 = = 4.5.11==4.5.11 = = 4.5.11==4.5.11 = = 4.5.11==4.5.11
Mpimpi intelmpi==2018.3.222intelmpi==2018.3.222 openmpi==3.1.2openmpi==3.1.2 intelmpi==2018.3.222intelmpi==2018.3.222 openmpi==3.1.2openmpi==3.1.2
cudacuda - - 9.0/10.09.0/10.0 9.0/10.0/10.19.0/10.0/10.1
cudnncudnn - - 7.4/7.57.4/7.5 7.4/7.57.4/7.5
ncclnccl - - 2,42.4 2,42.4
gitgit 2.7.42.7.4 2.7.42.7.4 2.7.42.7.4 2.7.42.7.4

Obrazy procesora CPU są zbudowane z systemu ubuntu16.04.The CPU images are built from ubuntu16.04. Obrazy procesora GPU dla systemu Cuda9 są oparte na procesorze nvidia/cuda:9.0-cudnn7-devel-ubuntu16.04.The GPU images for cuda9 are built from nvidia/cuda:9.0-cudnn7-devel-ubuntu16.04. Obrazy procesorów GPU dla systemu Cuda10 są oparte na procesorze nvidia/cuda:10.0-cudnn7-devel-ubuntu16.04.The GPU images for cuda10 are built from nvidia/cuda:10.0-cudnn7-devel-ubuntu16.04.

Ważne

W przypadku korzystania z niestandardowych obrazów platformy Docker zaleca się przypięcie wersji pakietu w celu zapewnienia lepszej odtwarzalności.When using custom Docker images, it is recommended that you pin package versions in order to better ensure reproducibility.

Uzyskiwanie informacji o rejestrze kontenerówGet container registry information

W tej sekcji dowiesz się, jak uzyskać nazwę Azure Container Registry dla Azure Machine Learning roboczego.In this section, learn how to get the name of the Azure Container Registry for your Azure Machine Learning workspace.

Ostrzeżenie

Obszar Azure Container Registry jest tworzony podczas pierwszego trenowania lub wdrażania modelu przy użyciu obszaru roboczego.The Azure Container Registry for your workspace is created the first time you train or deploy a model using the workspace. Jeśli utworzono nowy obszar roboczy, ale nie został on wytrenowany ani utworzony model, nie Azure Container Registry dla tego obszaru roboczego.If you've created a new workspace, but not trained or created a model, no Azure Container Registry will exist for the workspace.

Jeśli już wytrenowaliśmy lub wdrożyliśmy modele przy użyciu Azure Machine Learning, dla obszaru roboczego został utworzony rejestr kontenerów.If you've already trained or deployed models using Azure Machine Learning, a container registry was created for your workspace. Aby znaleźć nazwę tego rejestru kontenerów, należy wykonać następujące czynności:To find the name of this container registry, use the following steps:

  1. Otwórz nową powłokę lub wiersz polecenia i użyj następującego polecenia, aby uwierzytelnić się w subskrypcji platformy Azure:Open a new shell or command-prompt and use the following command to authenticate to your Azure subscription:

    az login
    

    Postępuj zgodnie z monitami, aby uwierzytelnić się w subskrypcji.Follow the prompts to authenticate to the subscription.

    Porada

    Po zalogowaniu zostanie wyświetlona lista subskrypcji skojarzonych z Twoim kontem platformy Azure.After logging in, you see a list of subscriptions associated with your Azure account. Informacje o subskrypcji isDefault: true są aktualnie aktywowanymi subskrypcjami poleceń interfejsu wiersza polecenia platformy Azure.The subscription information with isDefault: true is the currently activated subscription for Azure CLI commands. Ta subskrypcja musi być taka sama, która zawiera obszar roboczy Azure Machine Learning.This subscription must be the same one that contains your Azure Machine Learning workspace. Identyfikator subskrypcji można znaleźć na Azure Portal , odwiedzając stronę przeglądu obszaru roboczego.You can find the subscription ID from the Azure portal by visiting the overview page for your workspace. Możesz również użyć zestawu SDK, aby uzyskać identyfikator subskrypcji z obiektu obszaru roboczego.You can also use the SDK to get the subscription ID from the workspace object. Na przykład Workspace.from_config().subscription_id.For example, Workspace.from_config().subscription_id.

    Aby wybrać inną subskrypcję, użyj az account set -s <subscription name or ID> polecenia i określ nazwę lub Identyfikator subskrypcji do przełączenia.To select another subscription, use the az account set -s <subscription name or ID> command and specify the subscription name or ID to switch to. Aby uzyskać więcej informacji na temat wyboru subskrypcji, zobacz Korzystanie z wielu subskrypcji platformy Azure.For more information about subscription selection, see Use multiple Azure Subscriptions.

  2. Użyj następującego polecenia, aby wyświetlić listę rejestru kontenerów dla obszaru roboczego.Use the following command to list the container registry for the workspace. Zastąp <myworkspace> nazwą Azure Machine Learning obszaru roboczego.Replace <myworkspace> with your Azure Machine Learning workspace name. Zastąp <resourcegroup> grupę zasobów platformy Azure zawierającą obszar roboczy:Replace <resourcegroup> with the Azure resource group that contains your workspace:

    az ml workspace show -w <myworkspace> -g <resourcegroup> --query containerRegistry
    

    Porada

    Jeśli zostanie wyświetlony komunikat o błędzie z informacją, że rozszerzenie ml nie jest zainstalowane, użyj następującego polecenia, aby je zainstalować:If you get an error message stating that the ml extension isn't installed, use the following command to install it:

    az extension add -n azure-cli-ml
    

    Zwrócone informacje są podobne do następującego tekstu:The information returned is similar to the following text:

    /subscriptions/<subscription_id>/resourceGroups/<resource_group>/providers/Microsoft.ContainerRegistry/registries/<registry_name>
    

    Wartość <registry_name> to nazwa nazwy Azure Container Registry obszaru roboczego.The <registry_name> value is the name of the Azure Container Registry for your workspace.

Tworzenie niestandardowego obrazu podstawowegoBuild a custom base image

Kroki opisane w tej sekcji dotyczące tworzenia niestandardowego obrazu platformy Docker w Azure Container Registry.The steps in this section walk-through creating a custom Docker image in your Azure Container Registry. Przykładowe pliki dockerfile można znaleźć w repozytorium GitHub Azure/AzureML-Containers).For sample dockerfiles, see the Azure/AzureML-Containers GitHub repo).

  1. Utwórz nowy plik tekstowy o nazwie Dockerfile i użyj następującego tekstu jako zawartości:Create a new text file named Dockerfile, and use the following text as the contents:

    FROM ubuntu:16.04
    
    ARG CONDA_VERSION=4.7.12
    ARG PYTHON_VERSION=3.7
    ARG AZUREML_SDK_VERSION=1.13.0
    ARG INFERENCE_SCHEMA_VERSION=1.1.0
    
    ENV LANG=C.UTF-8 LC_ALL=C.UTF-8
    ENV PATH /opt/miniconda/bin:$PATH
    ENV DEBIAN_FRONTEND=noninteractive
    
    RUN apt-get update --fix-missing && \
        apt-get install -y wget bzip2 && \
        apt-get install -y fuse && \
        apt-get clean -y && \
        rm -rf /var/lib/apt/lists/*
    
    RUN useradd --create-home dockeruser
    WORKDIR /home/dockeruser
    USER dockeruser
    
    RUN wget --quiet https://repo.anaconda.com/miniconda/Miniconda3-${CONDA_VERSION}-Linux-x86_64.sh -O ~/miniconda.sh && \
        /bin/bash ~/miniconda.sh -b -p ~/miniconda && \
        rm ~/miniconda.sh && \
        ~/miniconda/bin/conda clean -tipsy
    ENV PATH="/home/dockeruser/miniconda/bin/:${PATH}"
    
    RUN conda install -y conda=${CONDA_VERSION} python=${PYTHON_VERSION} && \
        pip install azureml-defaults==${AZUREML_SDK_VERSION} inference-schema==${INFERENCE_SCHEMA_VERSION} &&\
        conda clean -aqy && \
        rm -rf ~/miniconda/pkgs && \
        find ~/miniconda/ -type d -name __pycache__ -prune -exec rm -rf {} \;
    
  2. W powłoki lub wierszu polecenia użyj następującego polecenia, aby uwierzytelnić się w Azure Container Registry.From a shell or command-prompt, use the following to authenticate to the Azure Container Registry. Zastąp wartość nazwą rejestru kontenerów, w którym chcesz <registry_name> przechowywać obraz:Replace the <registry_name> with the name of the container registry you want to store the image in:

    az acr login --name <registry_name>
    
  3. Aby przekazać plik Dockerfile i skompilować go, użyj następującego polecenia.To upload the Dockerfile, and build it, use the following command. Zastąp <registry_name> wartość nazwą rejestru kontenerów, w którym chcesz przechowywać obraz:Replace <registry_name> with the name of the container registry you want to store the image in:

    az acr build --image myimage:v1 --registry <registry_name> --file Dockerfile .
    

    Porada

    W tym przykładzie do obrazu :v1 jest stosowany tag .In this example, a tag of :v1 is applied to the image. Jeśli tag nie zostanie podany, zostanie :latest zastosowany tag .If no tag is provided, a tag of :latest is applied.

    Podczas procesu kompilacji informacje są przesyłane strumieniowo do wiersza polecenia.During the build process, information is streamed to back to the command line. Jeśli kompilacja powiedzie się, zostanie wyświetlony komunikat podobny do następującego tekstu:If the build is successful, you receive a message similar to the following text:

    Run ID: cda was successful after 2m56s
    

Aby uzyskać więcej informacji na temat tworzenia obrazów za pomocą Azure Container Registry, zobacz Build and run a container image using zadania usługi Azure Container Registry (Kompilowanie i uruchamianie obrazu kontenera przy użyciu zadania usługi Azure Container RegistryFor more information on building images with an Azure Container Registry, see Build and run a container image using Azure Container Registry Tasks

Aby uzyskać więcej informacji na temat przekazywania istniejących obrazów do Azure Container Registry, zobacz Push your first image to a private Docker container registry (Wypychanie pierwszego obrazu do prywatnego rejestru kontenerów platformy Docker).For more information on uploading existing images to an Azure Container Registry, see Push your first image to a private Docker container registry.

Używanie niestandardowego obrazu podstawowegoUse a custom base image

Aby użyć obrazu niestandardowego, potrzebne są następujące informacje:To use a custom image, you need the following information:

  • Nazwa obrazu.The image name. Na przykład jest mcr.microsoft.com/azureml/o16n-sample-user-base/ubuntu-miniconda:latest to ścieżka do prostego obrazu platformy Docker dostarczonego przez firmę Microsoft.For example, mcr.microsoft.com/azureml/o16n-sample-user-base/ubuntu-miniconda:latest is the path to a simple Docker Image provided by Microsoft.

    Ważne

    W przypadku utworzonych obrazów niestandardowych pamiętaj, aby dołączyć tagi, które zostały użyte z obrazem.For custom images that you've created, be sure to include any tags that were used with the image. Na przykład jeśli obraz został utworzony przy użyciu określonego tagu, takiego jak :v1 .For example, if your image was created with a specific tag, such as :v1. Jeśli podczas tworzenia obrazu nie używasz określonego tagu, został :latest zastosowany tag .If you did not use a specific tag when creating the image, a tag of :latest was applied.

  • Jeśli obraz znajduje się w prywatnym repozytorium, potrzebne są następujące informacje:If the image is in a private repository, you need the following information:

    • Adres rejestru.The registry address. Na przykład myregistry.azureecr.io.For example, myregistry.azureecr.io.
    • Nazwa użytkownika i hasło jednostki usługi z dostępem do odczytu do rejestru.A service principal username and password that has read access to the registry.

    Jeśli nie masz tych informacji, porozmawiaj z administratorem w celu Azure Container Registry zawierającego Twój obraz.If you do not have this information, speak to the administrator for the Azure Container Registry that contains your image.

Publicznie dostępne obrazy podstawowePublicly available base images

Firma Microsoft udostępnia kilka obrazów platformy Docker w publicznie dostępnym repozytorium, którego można użyć w krokach w tej sekcji:Microsoft provides several docker images on a publicly accessible repository, which can be used with the steps in this section:

ObrazImage OpisDescription
mcr.microsoft.com/azureml/o16n-sample-user-base/ubuntu-miniconda Podstawowy obraz dla Azure Machine LearningCore image for Azure Machine Learning
mcr.microsoft.com/azureml/onnxruntime:latest Zawiera środowisko uruchomieniowe ONNX do wnioskowania procesora CPUContains ONNX Runtime for CPU inferencing
mcr.microsoft.com/azureml/onnxruntime:latest-cuda Zawiera środowisko uruchomieniowe ONNX i cuda dla procesora GPUContains the ONNX Runtime and CUDA for GPU
mcr.microsoft.com/azureml/onnxruntime:latest-tensorrt Zawiera środowisko uruchomieniowe ONNX i tensorRT dla procesora GPUContains ONNX Runtime and TensorRT for GPU
mcr.microsoft.com/azureml/onnxruntime:latest-openvino-vadm Zawiera środowisko uruchomieniowe ONNX i projekt OpenVINO dla akceleratora usługi Intel Vision oparty na procesorachVPU Movidius TM MyriadXContains ONNX Runtime and OpenVINO for Intel Vision Accelerator Design based on MovidiusTM MyriadX VPUs
mcr.microsoft.com/azureml/onnxruntime:latest-openvino-myriad Zawiera środowisko uruchomieniowe ONNX i pamięć USB OpenVINO for Intel MovidiusTMContains ONNX Runtime and OpenVINO for Intel MovidiusTM USB sticks

Aby uzyskać więcej informacji na temat obrazów podstawowych środowiska uruchomieniowego ONNX, zobacz sekcję plik dockerfile środowiska uruchomieniowego ONNX w repozytorium GitHub.For more information about the ONNX Runtime base images see the ONNX Runtime dockerfile section in the GitHub repo.

Porada

Ponieważ te obrazy są publicznie dostępne, podczas korzystania z nich nie trzeba podaniem adresu, nazwy użytkownika ani hasła.Since these images are publicly available, you do not need to provide an address, username or password when using them.

Aby uzyskać więcej informacji, zobacz Azure Machine Learning repozytorium kontenerów w witrynie GitHub.For more information, see Azure Machine Learning containers repository on GitHub.

Używanie obrazu z zestawem SDK Azure Machine Learning SDKUse an image with the Azure Machine Learning SDK

Aby użyć obrazu przechowywanego w Azure Container Registry dla obszaru roboczego lub publicznie dostępnego rejestru kontenerów, ustaw następujące atrybuty środowiska: To use an image stored in the Azure Container Registry for your workspace, or a container registry that is publicly accessible, set the following Environment attributes:

  • docker.enabled=True
  • docker.base_image: ustaw wartość na rejestr i ścieżkę do obrazu.docker.base_image: Set to the registry and path to the image.
from azureml.core.environment import Environment
# Create the environment
myenv = Environment(name="myenv")
# Enable Docker and reference an image
myenv.docker.enabled = True
myenv.docker.base_image = "mcr.microsoft.com/azureml/o16n-sample-user-base/ubuntu-miniconda:latest"

Aby użyć obrazu z prywatnego rejestru kontenerów, który nie znajduje się w obszarze roboczym, należy użyć funkcji , aby określić adres repozytorium oraz nazwę użytkownika docker.base_image_registry i hasło:To use an image from a private container registry that is not in your workspace, you must use docker.base_image_registry to specify the address of the repository and a user name and password:

# Set the container registry information
myenv.docker.base_image_registry.address = "myregistry.azurecr.io"
myenv.docker.base_image_registry.username = "username"
myenv.docker.base_image_registry.password = "password"

myenv.inferencing_stack_version = "latest"  # This will install the inference specific apt packages.

# Define the packages needed by the model and scripts
from azureml.core.conda_dependencies import CondaDependencies
conda_dep = CondaDependencies()
# you must list azureml-defaults as a pip dependency
conda_dep.add_pip_package("azureml-defaults")
myenv.python.conda_dependencies=conda_dep

Musisz dodać wartość azureml-defaults z wersją >= 1.0.45 jako zależność pip.You must add azureml-defaults with version >= 1.0.45 as a pip dependency. Ten pakiet zawiera funkcje potrzebne do hostowania modelu jako usługi internetowej.This package contains the functionality needed to host the model as a web service. Należy również ustawić inferencing_stack_version w środowisku na "latest", co spowoduje zainstalowanie określonych pakietów apt wymaganych przez usługę internetową.You must also set inferencing_stack_version property on the environment to "latest", this will install specific apt packages needed by web service.

Po zdefiniowaniu środowiska użyj go z obiektem InferenceConfig, aby zdefiniować środowisko wnioskowania, w którym będzie uruchamiany model i usługa internetowa.After defining the environment, use it with an InferenceConfig object to define the inference environment in which the model and web service will run.

from azureml.core.model import InferenceConfig
# Use environment in InferenceConfig
inference_config = InferenceConfig(entry_script="score.py",
                                   environment=myenv)

W tym momencie możesz kontynuować wdrażanie.At this point, you can continue with deployment. Na przykład poniższy fragment kodu wdroży usługę internetową lokalnie przy użyciu konfiguracji wnioskowania i obrazu niestandardowego:For example, the following code snippet would deploy a web service locally using the inference configuration and custom image:

from azureml.core.webservice import LocalWebservice, Webservice

deployment_config = LocalWebservice.deploy_configuration(port=8890)
service = Model.deploy(ws, "myservice", [model], inference_config, deployment_config)
service.wait_for_deployment(show_output = True)
print(service.state)

Aby uzyskać więcej informacji na temat wdrażania, zobacz Wdrażanie modeli za pomocą Azure Machine Learning.For more information on deployment, see Deploy models with Azure Machine Learning.

Aby uzyskać więcej informacji na temat dostosowywania środowiska Python, zobacz Tworzenie środowisk do trenowania i wdrażania oraz zarządzanie nimi.For more information on customizing your Python environment, see Create and manage environments for training and deployment.

Używanie obrazu z interfejsem wiersza polecenia Machine Learning interfejsu wiersza poleceniaUse an image with the Machine Learning CLI

Ważne

Obecnie interfejs wiersza Machine Learning może używać obrazów z witryny Azure Container Registry dla obszaru roboczego lub publicznie dostępnych repozytoriów.Currently the Machine Learning CLI can use images from the Azure Container Registry for your workspace or publicly accessible repositories. Nie może używać obrazów z autonomicznych rejestrów prywatnych.It cannot use images from standalone private registries.

Przed wdrożeniem modelu przy użyciu interfejsu wiersza Machine Learning utwórz środowisko korzystające z obrazu niestandardowego.Before deploying a model using the Machine Learning CLI, create an environment that uses the custom image. Następnie utwórz plik konfiguracji wnioskowania, który odwołuje się do środowiska.Then create an inference configuration file that references the environment. Środowisko można również zdefiniować bezpośrednio w pliku konfiguracji wnioskowania.You can also define the environment directly in the inference configuration file. Poniższy dokument JSON pokazuje, jak odwoływać się do obrazu w publicznym rejestrze kontenerów.The following JSON document demonstrates how to reference an image in a public container registry. W tym przykładzie środowisko jest zdefiniowane w tekście:In this example, the environment is defined inline:

{
    "entryScript": "score.py",
    "environment": {
        "docker": {
            "arguments": [],
            "baseDockerfile": null,
            "baseImage": "mcr.microsoft.com/azureml/o16n-sample-user-base/ubuntu-miniconda:latest",
            "enabled": false,
            "sharedVolumes": true,
            "shmSize": null
        },
        "environmentVariables": {
            "EXAMPLE_ENV_VAR": "EXAMPLE_VALUE"
        },
        "name": "my-deploy-env",
        "python": {
            "baseCondaEnvironment": null,
            "condaDependencies": {
                "channels": [
                    "conda-forge"
                ],
                "dependencies": [
                    "python=3.6.2",
                    {
                        "pip": [
                            "azureml-defaults",
                            "azureml-telemetry",
                            "scikit-learn",
                            "inference-schema[numpy-support]"
                        ]
                    }
                ],
                "name": "project_environment"
            },
            "condaDependenciesFile": null,
            "interpreterPath": "python",
            "userManagedDependencies": false
        },
        "version": "1"
    }
}

Ten plik jest używany z az ml model deploy poleceniem .This file is used with the az ml model deploy command. Parametr --ic służy do określania pliku konfiguracji wnioskowania.The --ic parameter is used to specify the inference configuration file.

az ml model deploy -n myservice -m mymodel:1 --ic inferenceconfig.json --dc deploymentconfig.json --ct akscomputetarget

Aby uzyskać więcej informacji na temat wdrażania modelu przy użyciu interfejsu wiersza polecenia uczenia maszynowego, zobacz sekcję "Rejestracja, profilowanie i wdrażanie modelu" w artykule Rozszerzenie interfejsu wiersza polecenia dla Azure Machine Learning uczenia maszynowego.For more information on deploying a model using the ML CLI, see the "model registration, profiling, and deployment" section of the CLI extension for Azure Machine Learning article.

Następne krokiNext steps