Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
ПРИМЕНЯЕТСЯ К:Расширение Azure CLI ML v2 (текущее)
Python SDK azureai-ml v2 (текущая)
Среды Машинного обучения Azure определяют среды выполнения для заданий или развертываний и инкапсулируют зависимости для кода. Машинное обучение Azure использует спецификацию среды для создания контейнера Docker, в котором выполняется код обучения или оценки в указанном целевом объекте вычислений. Среду можно определить на основе спецификации conda, образа Docker или контекста сборки Docker.
Из этой статьи вы узнаете, как создавать среды Машинное обучение Azure и управлять ими с помощью пакета SDK и CLI версии 2.
Предварительные условия
Рабочая область Машинного обучения Azure. Инструкции по созданию рабочей области см. в разделе "Создание рабочей области".
Интерфейс командной строки Azure и расширение
ml
или Python SDK v2 для Azure Machine Learning:Чтобы установить Azure CLI и расширение, см. статью
ml
".Примеры в этой статье предполагают, что вы используете оболочку Bash или совместимую с ней. Например, можно использовать оболочку в системе Linux или подсистеме Windows для Linux.
Совет
Для полнофункциональной среды разработки используйте Visual Studio Code и расширение машинного обучения Azure для управления ресурсами Azure Machine Learning и обучения моделей машинного обучения.
Клонирование репозитория примеров
Чтобы запустить примеры обучения, сначала клонируйте репозиторий примеров. В примерах командной строки войдите в директорию cli
. В примерах SDK выполните команду "cd sdk/python/assets/environment
", чтобы перейти в каталог:
git clone --depth 1 https://github.com/Azure/azureml-examples
Параметр --depth 1
клонирует только последний коммит в репозитории, что сокращает время завершения операции.
Подключение к рабочей области
Совет
Используйте следующие вкладки, чтобы выбрать метод, который вы хотите использовать для работы с средами. Выбор вкладки автоматически переключает все вкладки в этой статье на одну и ту же вкладку. Вы можете выбрать другую вкладку в любое время.
При использовании Azure CLI требуются параметры идентификатора — подписка, группа ресурсов и имя рабочей области. Хотя эти параметры можно указать для каждой команды, можно также задать значения по умолчанию, используемые для всех команд. Используйте следующие команды, чтобы задать значения по умолчанию. Замените <subscription ID>
, <Azure Machine Learning workspace name>
а <resource group>
также значениями конфигурации:
az account set --subscription <subscription ID>
az configure --defaults workspace=<Azure Machine Learning workspace name> group=<resource group>
Организованные среды
Существует два типа сред в Azure Machine Learning: курируемые и пользовательские среды. Курированные среды — это стандартные среды, содержащие популярные платформы и инструменты машинного обучения. Пользовательские среды определяются пользователем и могут быть созданы с помощью команды az ml environment create
.
Среды с управляемыми настройками предоставляются службой Azure Machine Learning и доступны по умолчанию. Машинное обучение Azure регулярно обновляет эти среды с последними выпусками версии платформы и поддерживает их для исправлений ошибок и исправлений безопасности. Они поддерживают кэшированные образы Docker, что снижает затраты на подготовку заданий и время развертывания модели.
Эти подготовленные среды можно использовать готовыми к использованию для обучения или развертывания, ссылаясь на определённую версию или последнюю версию среды. Используйте следующий синтаксис: azureml://registries/azureml/environment/<curated-environment-name>/versions/<version-number>
или azureml://registries/azureml/environment/<curated-environment-name>/labels/latest
. Вы также можете использовать их в качестве ориентира для собственных пользовательских сред, изменив файлы Dockerfiles, которые лежат в основе этих подготовленных сред.
Вы можете просмотреть набор доступных курируемых сред в пользовательском интерфейсе Студия машинного обучения Azure или с помощью интерфейса командной строки (версии 2).az ml environment list
Совет
При работе с курируемыми средами в ИНТЕРФЕЙСе командной строки или пакете SDK имя среды начинается с AzureML-
имени курированной среды. При использовании студии машинного обучения Azure они не имеют этого префикса. Причина этой разницы состоит в том, что пользовательский интерфейс студии отображает готовые и пользовательские среды на отдельных вкладках, поэтому префикс не требуется. CLI и SDK не имеют такого разделения, поэтому префикс используется для различения между курируемыми и пользовательскими средами.
Создание пользовательской среды
Вы можете определить среду из образа Docker, контекста сборки Docker и спецификации conda с помощью образа Docker.
Создание среды на основе образа Docker
Чтобы определить среду на основе образа Docker, укажите универсальный код ресурса (URI) образа, размещенного в реестре, например в Docker Hub или в Реестре контейнеров Azure.
Следующий пример представляет собой файл спецификации YAML для среды, определенной на основе образа Docker. Образ из официального репозитория PyTorch в Docker Hub указан с помощью свойства image
в файле YAML.
$schema: https://azuremlschemas.azureedge.net/latest/environment.schema.json
name: docker-image-example
image: pytorch/pytorch:latest
description: Environment created from a Docker image.
Чтобы создать среду:
az ml environment create --file assets/environment/docker-image.yml
Совет
Машинное обучение Azure поддерживает набор базовых образов на основе ЦП и GPU Ubuntu Linux с общими системными зависимостями. Например, образы GPU содержат Miniconda, OpenMPI, CUDA, cuDNN и NCCL. Вы можете использовать эти образы для своих сред или использовать соответствующие файлы Dockerfile в качестве эталонных при создании собственных пользовательских образов.
Набор базовых образов и соответствующих файлов Dockerfile см. в репозитории AzureML-Containers.
Создание среды на основе контекста сборки Docker
Вместо определения среды из предварительно созданного образа можно также определить среду из контекста сборки Docker. Для этого укажите каталог, который служит контекстом сборки. Этот каталог должен содержать Dockerfile (не больше 1 МБ) и любые другие файлы, необходимые для сборки образа.
Следующий пример представляет собой файл спецификации YAML для среды, определенной на основе контекста сборки. Локальный путь к папке контекста сборки указывается в поле build.path
, а относительный путь к файлу Dockerfile в этой папке контекста сборки указывается в поле build.dockerfile_path
. Если в YAML отсутствует build.dockerfile_path
, Azure Machine Learning будет искать Dockerfile с именем Dockerfile
в корне контекста сборки.
В этом примере контекст сборки содержит файл Dockerfile с именем Dockerfile
и файл requirements.txt
, на который ссылается файл Dockerfile для установки пакетов Python.
$schema: https://azuremlschemas.azureedge.net/latest/environment.schema.json
name: docker-context-example
build:
path: docker-contexts/python-and-pip
Чтобы создать среду:
az ml environment create --file assets/environment/docker-context.yml
Машинное обучение Azure начинает процесс создания образа из контекста сборки при создании среды. Вы можете отслеживать состояние сборки и просматривать журналы сборки в пользовательском интерфейсе Studio.
Создание среды на основе спецификации conda
Среду можно определить с помощью стандартного файла конфигурации YAML, который включает зависимости для среды conda. Сведения об этом стандартном формате см. в статье "Создание среды вручную ".
Необходимо также указать базовый образ Docker для этой среды. Машинное обучение Azure создает среду conda на основе предоставленного образа Docker. При установке некоторых зависимостей Python в образе Docker эти пакеты не будут существовать в среде выполнения, что приводит к сбоям среды выполнения. По умолчанию Машинное обучение Azure создает среду Conda с заданными зависимостями и выполняет задание в этой среде вместо использования библиотек Python, установленных на базовом образе.
Следующий пример представляет собой файл спецификации YAML для среды, определенной на основе спецификации conda. Здесь относительный путь к файлу conda из YAML-файла среды Azure Machine Learning указывается через свойство conda_file
. Можно также определить встроенную спецификацию conda с помощью свойства conda_file
, а не определять ее в отдельном файле.
$schema: https://azuremlschemas.azureedge.net/latest/environment.schema.json
name: docker-image-plus-conda-example
image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04
conda_file: conda-yamls/pydata.yml
description: Environment created from a Docker image plus Conda environment.
Чтобы создать среду:
az ml environment create --file assets/environment/docker-image-plus-conda.yaml
Машинное обучение Azure создает окончательный образ Docker из этой спецификации среды, когда среда используется в задании или развертывании. Вы также можете запустить сборку среды вручную в пользовательском интерфейсе Studio.
Управление средами
Пакет SDK и CLI версии 2 также позволяют управлять жизненным циклом ресурсов среды Машинное обучение Azure.
Список
Перечислите все среды в вашей рабочей области:
az ml environment list
Перечислите все версии среды с заданным именем.
az ml environment list --name docker-image-example
Показать
Получение сведений об определенной среде:
az ml environment show --name docker-image-example --version 1
Обновить
Обновление изменяемых свойств определенной среды:
az ml environment update --name docker-image-example --version 1 --set description="This is an updated description."
Внимание
Для сред можно обновить только свойства description
и tags
. Все остальные свойства являются неизменяемыми. Если необходимо изменить какие-либо из этих свойств, следует создать новую версию среды.
Архив
Архивация среды скрывает ее по умолчанию из запросов списка (az ml environment list
). Вы можете по-прежнему указывать прямые ссылки на архивную среду и использовать ее в рабочих процессах. Можно архивировать все версии среды или только определенную версию.
Если вы не указываете версию, архивируются все версии среды под этим именем. Если вы создаете новую версию среды в контейнере архивной среды, эта новая версия автоматически также отмечается как архивная.
Архивируйте все версии среды:
az ml environment archive --name docker-image-example
Архивация конкретной версии среды:
az ml environment archive --name docker-image-example --version 1
Внимание
Архивация версии среды не удаляет кэшированный образ в реестре контейнеров. Если вы хотите удалить кэшированный образ, связанный с определенной средой, можно использовать команду az acr repository delete в связанном репозитории среды.
Использование сред для обучения
Чтобы использовать настраиваемую среду для задания обучения, укажите environment
поле конфигурации YAML задания. Можно либо ссылаться на существующую зарегистрированную среду Azure Machine Learning с помощью environment: azureml:<environment-name>:<environment-version>
или environment: azureml:<environment-name>@latest
(чтобы ссылаться на последнюю версию среды), либо определить встроенную спецификацию среды. Если вы определяете встроенную среду, не указывайте name
поля и version
поля, так как эти среды рассматриваются как "отмена регистрации" сред и не отслеживаются в реестре ресурсов среды.
При отправке задания обучения создание новой среды может занять несколько минут. Длительность зависит от размера необходимых зависимостей. Среды кэшируются службой. Поскольку определение среды остается неизменным, полное время настройки задается только один раз.
Дополнительные сведения об использовании сред в заданиях см. в разделе "Обучение моделей".
Использование сред для развертывания моделей
Среды также можно использовать для развертывания моделей как для оценки в реальном времени, так и для пакетной оценки. Для этого укажите поле environment
в конфигурации YAML развертывания.
Дополнительные сведения об использовании сред в развертываниях см. в статье "Развертывание и оценка модели машинного обучения с помощью сетевой конечной точки".