Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Внимание
В этой статье содержатся сведения об использовании пакета SDK машинного обучения Azure версии 1. Пакет SDK версии 1 устарел с 31 марта 2025 г. Поддержка будет завершена 30 июня 2026 г. Вы можете установить и использовать пакет SDK версии 1 до этой даты.
Рекомендуется перейти на пакет SDK версии 2 до 30 июня 2026 г. Дополнительные сведения о пакете SDK версии 2 см. в статье "Что такое ИНТЕРФЕЙС командной строки Машинного обучения Azure" и пакет SDK для Python версии 2 исправочник по пакету SDK версии 2.
В некоторых случаях предварительно созданные образы Docker для вывода моделей и решений расширяемости для Машинного обучения Azure могут не соответствовать потребностям службы вывода.
В этом случае можно с помощью Dockerfile создать новый образ, используя один из готовых образов в качестве отправной точки. Расширение существующего готового образа Docker позволяет использовать сетевой стек и библиотеки Машинного обучения Azure, не создавая образ с нуля.
Преимущества и недостатки
Dockerfile позволяет полностью настроить образ перед развертыванием. Помимо прочего, вы получаете максимальный контроль над тем, какие зависимости или переменные среды заданы в контейнере.
Основной компромисс этого подхода заключается в том, что во время развертывания выполняется дополнительная сборка образа, которая замедляет процесс развертывания. Если вы можете использовать метод расширяемости пакета Python , развертывание выполняется быстрее.
Необходимые компоненты
Рабочая область Машинного обучения Azure. Руководство по созданию рабочей области см. в статье "Создание ресурсов для начала работы".
Знакомство с принципами создания Dockerfile.
Локальный рабочий экземпляр Docker, включая интерфейс командной строки (CLI)
docker
, ЛИБО Реестр контейнеров Azure (ACR), связанный с вашей рабочей областью Машинного обучения Azure.Предупреждение
Реестр контейнеров Azure для рабочей области создается при первом обучении или развертывании модели с помощью рабочей области. Если вы создали новую рабочую область, но не обучили или не создали модель, реестр контейнеров Azure не существует для рабочей области.
Создание и сборка Dockerfile
Ниже приведен пример Dockerfile, который использует предварительно созданный образ Docker машинного обучения Azure в качестве базового образа:
FROM mcr.microsoft.com/azureml/<image_name>:<tag>
COPY requirements.txt /tmp/requirements.txt
RUN pip install –r /tmp/requirements.txt
Затем разместите приведенный выше Dockerfile в каталоге со всеми необходимыми файлами и выполните следующую команду, чтобы создать образ:
docker build -f <above dockerfile> -t <image_name>:<tag> .
Совет
Подробные сведения о команде docker build
можно найти в документации по Docker.
Если команда docker build
недоступна в локальной среде, создайте образ Docker в облаке с помощью Реестра контейнеров Azure (ACR) для рабочей области машинного обучения Azure. Дополнительные сведения см. в руководстве по созданию и развертыванию образов контейнеров в облаке с помощью службы "Реестр контейнеров Azure".
Внимание
Прежде чем пытаться создать пользовательский базовый образ с помощью Реестра контейнеров Azure, Майкрософт рекомендует сначала проверить работу Dockerfile локально.
В следующих разделах содержатся более подробные сведения о Dockerfile.
Установка дополнительных пакетов
Если у вас есть другие пакеты apt
, которые необходимо установить в контейнере Ubuntu, их можно добавить в Dockerfile. В следующем примере показано, как использовать команду apt-get
из Dockerfile:
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
Кроме того, можно установить дополнительные пакеты pip из Dockerfile. В следующем примере показано использование команды pip install
:
RUN pip install <library>
Встраивание модели и кода в образы
Если в образ необходимо встроить модель и код, нужно задать следующие переменные среды в Dockerfile:
-
AZUREML_ENTRY_SCRIPT
: начальный сценарий кода. Этот файл содержит методыinit()
иrun()
. -
AZUREML_MODEL_DIR
: каталог, содержащий файлы модели. Начальный сценарий должен использовать его в качестве корневого каталога модели.
В следующем примере показано, как задать эти переменные среды в Dockerfile:
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
Пример Dockerfile
В следующем примере показано, как установить пакеты apt
, задать переменные среды и добавить код и модель в Dockerfile:
Замечание
В следующем примере образ mcr.microsoft.com/azureml/minimal-ubuntu20.04-py38-cpu-inference:latest
используется в качестве базового образа. Сведения о доступных изображениях см. в разделе "Предварительно созданные образы Docker" для вывода модели.
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
Следующие шаги
Сведения о том, как использовать Dockerfile с пакетом SDK Python для Машинного обучения Azure, см. в следующих документах:
- Использование собственного локального Dockerfile
- Использование готового образа Docker и создание пользовательского базового образа
Дополнительные сведения о развертывании модели см. в этой статье.
Сведения об устранении неполадок с развертыванием готовых образов Docker см. в этой статье.