Принцип работы Машинное обучение Azure: архитектура и концепции (версия 1)

ПРИМЕНИМО К:расширение Azure CLI ml v1Python SDK azureml v1

Внимание

В этой статье содержатся сведения об использовании пакета SDK Машинное обучение Azure версии 1. Пакет SDK версии 1 устарел с 31 марта 2025 г. Поддержка будет завершена 30 июня 2026 г. Вы можете установить и использовать пакет SDK версии 1 до этой даты. Существующие рабочие процессы, использующие пакет SDK версии 1, будут продолжать работать после даты окончания поддержки. Однако они могут быть подвержены рискам безопасности или критическим изменениям в случае изменений архитектуры в продукте.

Рекомендуется перейти на пакет SDK версии 2 до 30 июня 2026 г. Дополнительные сведения о SDK версии 2 см. в разделе Что такое Машинное обучение Azure CLI и Python SDK v2? и справочнике по SDK версии 2.

Внимание

В некоторых командах Azure CLI в этой статье используется расширение azure-cli-ml или v1 для Машинное обучение Azure. Поддержка CLI версии 1 закончилась 30 сентября 2025 г. Корпорация Майкрософт больше не будет предоставлять техническую поддержку или обновления для этой службы. Существующие рабочие процессы, использующие CLI версии 1, будут продолжать работать после даты окончания поддержки. Однако они могут быть подвержены рискам безопасности или критическим изменениям в случае изменений архитектуры в продукте.

Рекомендуется как можно скорее перейти к расширению mlили версии 2. Дополнительные сведения о расширении версии 2 см. в разделе Машинное обучение Azure расширение CLI и пакет SDK Python версии 2.

Эта статья относится к первой версии (версии 1) интерфейса командной строки и пакета SDK Машинное обучение Azure. Сведения о двух версиях (версия 2) см. в разделе How Машинное обучение Azure works (v2).

Узнайте об архитектуре и концепциях Машинное обучение Azure. В этой статье приведены общие сведения о компонентах и их взаимодействии между собой в процессе построения, развертывания и поддержки моделей машинного обучения.

Рабочая область

Рабочая область машинного обучения является ресурсом верхнего уровня для Машинное обучение Azure.

Diagram: архитектура рабочей области Машинное обучение Azure и ее компонентов

Используйте рабочую область в качестве централизованного места для:

Рабочая область включает другие Azure ресурсы, которые он использует:

  • Реестр контейнеров Azure (ACR): регистрирует контейнеры Docker, используемые во время обучения и при развертывании модели. Чтобы сократить затраты, реестр ACR создается только при создании образов развертывания.
  • Учетная запись служба хранилища Azure: служит хранилищем данных по умолчанию для рабочей области. Записные книжки Jupyter, которые вы используете с экземплярами вычислений Машинное обучение Azure, также хранятся здесь.
  • приложение Azure Insights. Хранит сведения о мониторинге моделей.
  • Azure Key Vault: хранит секреты, используемые целевыми объектами вычислений и другими конфиденциальными сведениями, необходимыми рабочей области.

Вы можете использовать рабочую область совместно с другими пользователями.

Вычисления

Целевой объект вычислений — это любая машина или набор машин, используемые вами для запуска на них сценария обучения или для размещения развертывания вашей службы. В качестве целевого объекта вычислений можно использовать локальный компьютер или удаленный ресурс вычислений. Используя целевые объекты вычислений, можно начать обучение на локальном компьютере, а затем горизонтально масштабировать его в облако, не меняя сценарий обучения.

Машинное обучение Azure представлено две полностью управляемые облачные виртуальные машины, настроенные для задач машинного обучения:

  • Вычислительный экземпляр: вычислительные экземпляры — это виртуальные машины, которые содержат ряд установленных инструментов и сред для машинного обучения. Используйте вычислительный экземпляр в первую очередь в качестве рабочей станции разработки. Можно начать выполнять примерные блокноты без какой-либо настройки. Используйте вычислительный экземпляр в качестве целевого объекта вычислений для заданий обучения и вывода.

  • Вычислительные кластеры: вычислительные кластеры — это кластер виртуальных машин с возможностями масштабирования с несколькими узлами. Вычислительные кластеры лучше подходят в качестве целевых объектов вычислений для крупных заданий и рабочей среды. Кластер автоматически масштабируется при отправке задания. Используйте его в качестве целевого объекта вычислений для обучения или для развертываний разработки или тестирования.

Дополнительные сведения о целевых объектах вычислений для обучения см. в разделе Целевые объекты вычислений обучения. Дополнительные сведения о целевых объектах вычислений для развертывания см. в разделе Целевые объекты развертывания.

Наборы данных и хранилища данных

Машинное обучение Azure Наборы данных упрощают доступ к данным и облегчают работу с данными. При создании набора данных вы создадите ссылку на расположение источника данных вместе с копией метаданных. Так как данные остаются в существующем расположении, вы не несете дополнительных затрат на хранение, и вы не рискуете целостностью источников данных.

Для получения дополнительной информации см. раздел Создание и регистрация наборов данных Машинное обучение Azure. Дополнительные примеры использования наборов данных см. в записных книжках .

Наборы данных используют datastore для безопасного подключения к службам хранилища Azure. Хранилища данных содержат сведения о подключениях, при этом не подвергая риску ваши учетные данные для проверки подлинности и целостность исходного источника данных. Они хранят сведения о подключении, такие как идентификатор подписки и авторизация по токену в Key Vault, связанный с рабочей областью, чтобы обеспечить безопасный доступ к вашему хранилищу данных без необходимости жестко прописывать их в сценарии.

Среды

Рабочая область>Среды

Среда — это инкапсуляция среды, в которой производится обучение или оценка вашей модели машинного обучения. Среда определяет пакеты Python, переменные окружения и настройки программного обеспечения для ваших скриптов обучения и оценки.

Примеры кода см. в разделе "Управление средами" статьи использование сред.

эксперименты;

Рабочая область>Эксперименты

Эксперимент представляет собой совокупность нескольких запусков указанного сценария. Он всегда принадлежит рабочей среде. При отправке запуска укажите имя эксперимента. Сведения о запуске хранятся под этим экспериментом. Если на момент отправки эксперимента имя не существует, автоматически создается новый эксперимент.

Пример использования эксперимента см. в руководстве по обучению первой модели.

Запуски

Рабочая область>Эксперименты>Выполнение

Выполнение — это однократный запуск скрипта обучения. Обычно эксперимент содержит несколько запусков.

Машинное обучение Azure записывает все запуски и сохраняет следующие сведения в эксперименте:

  • метаданные о запуске (метка времени, длительность и т. д.);
  • Метрики, которые логирует ваш скрипт
  • Выходные файлы, которые эксперимент автоматически собирает или которые вы явно загружаете
  • моментальный снимок каталога, содержащего скрипты, до запуска;

При отправке скрипта для обучения модели создается запуск. Запуск может иметь ноль или более дочерних запусков. Например, запуск верхнего уровня может иметь два дочерних запуска, и каждый из этих дочерних запусков может иметь собственный дочерний запуск.

Конфигурации выполнения

Рабочая область>Эксперименты>Выполнение>Конфигурация запуска

Конфигурация запуска определяет, как запустить скрипт в указанном целевом объекте вычислений. Используйте конфигурацию для указания скрипта, целевого объекта вычислений, среды Машинное обучение Azure, любых конфигураций для распределенных заданий и некоторых дополнительных свойств. Дополнительные сведения о полном наборе настраиваемых параметров для запусков см. в описании класса ScriptRunConfig.

Конфигурацию запуска можно сохранить в файле внутри каталога, содержащего скрипт обучения. Кроме того, его можно создать как объект в памяти и использовать его для отправки запуска.

Примеры конфигураций запусков см. в разделе Настройка запуска обучения.

Моментальные снимки

Рабочая область>Эксперименты>Выполнение>Моментальный снимок

При отправке запуска Машинное обучение Azure сжимает каталог, содержащий скрипт в виде ZIP-файла, и отправляет его в целевой объект вычислений. Затем zip-файл извлекается, и скрипт запускается там. Машинное обучение Azure также сохраняет ZIP-файл в виде моментального снимка в рамках записи выполнения. Любой пользователь с доступом к рабочей области может просмотреть запись о выполнении и загрузить моментальный снимок.

Ведение журнала

Машинное обучение Azure автоматически регистрирует стандартные метрики выполнения. Однако можно также использовать пакет SDK Python для регистрации произвольных метрик.

Журналы можно просматривать несколькими способами: отслеживать состояние выполнения в режиме реального времени или просматривать результаты после завершения. Дополнительные сведения см. в статье Мониторинг и просмотр журналов запуска машинного обучения.

Примечание.

Чтобы предотвратить включение ненужных файлов в моментальный снимок, создайте файл игнорирования (.gitignore или .amlignore) в каталоге. Добавьте исключаемые файлы и каталоги в этот файл. Дополнительные сведения о синтаксисе, который будет использоваться в этом файле, см. в разделе синтаксис и шаблоны для .gitignore. Файл .amlignore использует тот же синтаксис. Если оба файла существуют, используется файл .amlignore, а файл .gitignore не используется.

Отслеживание и интеграция Git

При запуске обучения и установке исходного каталога в локальный репозиторий Git журнал выполнения сохраняет сведения о репозитории. Эта функция работает с запусками, которые вы отправляете с помощью конфигурации выполнения скрипта или конвейера машинного обучения. Он также работает для запусков, которые вы отправляете из SDK или интерфейса командной строки для машинного обучения.

Дополнительные сведения см. в разделе Git integration for Машинное обучение Azure.

Рабочий процесс обучения

При запуске эксперимента для обучения модели выполняются следующие действия. На схеме рабочего процесса обучения показаны следующие действия:

  • Вы вызываете Машинное обучение Azure, используя идентификатор, связанный с моментальным снимком кода, который был сохранен в предыдущем разделе.

  • Машинное обучение Azure создает идентификатор выполнения (необязательно) и маркер службы Машинное обучение. Целевые объекты вычислений, такие как вычисления машинного обучения и виртуальные машины, используют этот токен для взаимодействия со службой машинного обучения.

  • Вы выбираете либо управляемую вычислительную цель, например Машинное обучение Compute, либо неуправляемую вычислительную цель, как виртуальные машины, чтобы запускать задачи обучения. Ниже приведены потоки данных для обоих сценариев:

    • К виртуальным машинам и HDInsight осуществляется доступ с использованием учетных данных SSH, которые хранятся в хранилище ключей службы Microsoft в рамках подписки. Машинное обучение Azure выполняет код управления в целевом объекте вычислений, который:
    1. Подготавливает среду. Docker — это вариант для виртуальных машин и локальных компьютеров. Чтобы понять, как работают эксперименты в контейнерах Docker, ознакомьтесь с следующими шагами по вычислительным ресурсам для машинного обучения.
    2. Скачивает код.
    3. Настраивает переменные и конфигурации среды.
    4. Запускает пользовательские скрипты (моментальный снимок кода, упомянутого в предыдущем разделе).
    • Машинное обучение Компьютерное обеспечение, доступ осуществляется через удостоверение, управляемое рабочей областью. Так как Машинное обучение Compute является управляемым целевым вычислительным ресурсом (под управлением корпорации Майкрософт), он осуществляется в рамках вашей подписки на Microsoft.
    1. При необходимости запускает удаленную сборку Docker.
    2. Записывает код управления в общую папку Файлы Azure пользователя.
    3. Запускает контейнер с начальной командой. Эта команда — это код управления, описанный на предыдущем шаге.
  • После завершения выполнения можно запрашивать запуски и метрики. На схеме потоков этот шаг происходит, когда целевой объект вычислений обучения записывает метрики выполнения обратно в Машинное обучение Azure из хранилища в базе данных Azure Cosmos DB. Клиенты могут вызывать Машинное обучение Azure. Машинное обучение извлекает метрики из базы данных Azure Cosmos DB и возвращает их клиенту.

Рабочий процесс обучения

Модели

В простейшем смысле модель представляет собой фрагмент кода, который принимает входные данные и создает выходные данные. Создание модели машинного обучения включает в себя выбор алгоритма, предоставление ему данных и настройку гиперпараметров. Обучение — это итеративный процесс, который создает обученную модель, включающую в себя все, чему модель научилась в процессе обучения.

Вы можете принести модель, обученную за пределами Машинное обучение Azure. Вы также можете обучить модель, отправив запускэксперимента в вычислительную цель в Машинное обучение Azure. Когда вы получите модель, ее нужно будет зарегистрировать в рабочей области.

Машинное обучение Azure не зависит от платформы. Для создания модели можно использовать любую популярную платформу машинного обучения, например Scikit-learn, XGBoost, PyTorch, TensorFlow или Chainer.

Пример обучения модели с помощью Scikit-learn см. в разделе Tutorial: обучение модели классификации изображений с помощью Машинное обучение Azure.

Реестр моделей

Рабочая область>Модели

Реестр model позволяет отслеживать все модели в рабочей области Машинное обучение Azure.

Модели идентифицируются по имени и версии. При регистрации модели с уже имеющимся именем реестр предполагает, что это новая версия. Версия увеличивается, и новая модель регистрируется под тем же именем.

При регистрации модели вы можете указать дополнительные теги метаданных, а затем использовать эти теги для поиска моделей.

Совет

Зарегистрированная модель — это логический контейнер для одного или нескольких файлов, составляющих эту модель. Например, если у вас есть модель, которая хранится в нескольких файлах, их можно зарегистрировать в качестве одной модели в рабочей области Машинное обучение Azure. После регистрации можно скачать или развернуть зарегистрированную модель и получить все зарегистрированные файлы.

Нельзя удалить зарегистрированную модель, которую использует активное развертывание.

Пример регистрации модели см. в разделе Train модель классификации изображений с Машинное обучение Azure.

Развертывание

Вы разворачиваете зарегистрированную модель в качестве конечной точки службы. Для этого необходимы следующие компоненты.

  • Среда. Среда инкапсулирует зависимости, необходимые для выполнения модели для вывода.
  • Код выставления оценки. Этот скрипт принимает запросы, оценивает их с помощью модели и возвращает результаты.
  • Конфигурация вывода. Конфигурация вывода определяет среду, сценарий входа и другие компоненты, необходимые для запуска модели в качестве службы.

Дополнительные сведения об этих компонентах см. в разделе Развертывание моделей с использованием Машинное обучение Azure.

Конечные точки

Рабочая область>Конечные точки

Конечная точка — это экземпляр вашей модели в виде веб-службы, которую вы размещаете в облаке.

Конечная точка веб-службы

При развертывании модели в качестве веб-службы можно развернуть конечную точку на Экземпляры контейнеров Azure или Служба Azure Kubernetes. Вы создаете службу из вашей модели, скрипта и связанных файлов. Эти файлы попадают в базовый образ контейнера, который содержит среду выполнения для модели. На изображении есть конечная точка HTTP с балансировкой нагрузки, которая получает запросы оценки, отправленные веб-службе.

Можно включить телеметрию Application Insights или телеметрию модели, чтобы отслеживать состояние веб-службы. У вас есть эксклюзивный доступ к данным телеметрии. Данные сохраняются в вашем Application Insights и в экземплярах вашей учетной записи хранения. Если включить автоматическое масштабирование, Azure автоматически масштабирует развертывание.

На следующей схеме показан рабочий процесс вывода для модели, развернутой в качестве конечной точки веб-службы.

Ниже приведены сведения:

  • Вы регистрируете модель с помощью клиента, например пакета SDK для Машинное обучение Azure.
  • Изображение создается с помощью модели, файла оценки и других зависимостей модели.
  • Вы создаете и сохраняете образ Docker в Реестр контейнеров Azure.
  • Веб-служба развертывается в целевом объекте вычислений (Экземпляры контейнеров или AKS) с помощью образа, созданного на предыдущем шаге.
  • Сведения о запросе оценки хранятся в Application Insights, которое находится в вашей подписке.
  • Телеметрия также отправляется в подписку Microsoft Azure.

Рабочий процесс вывода

Пример развертывания модели в качестве веб-службы см. в разделе Учебник. Обучение и развертывание модели.

Конечные точки в реальном времени

При развертывании обученной модели в конструкторе можно развернуть эту модель как конечную точку в реальном времени. Конечная точка реального времени обычно получает один запрос через REST интерфейс и возвращает прогноз мгновенно. Этот подход контрастирует с пакетной обработкой, которая обрабатывает несколько значений одновременно и сохраняет результаты после завершения в хранилище данных.

Конечные точки конвейера

Конечные точки конвейера позволяют программным образом вызывать конвейеры машинного обучения через конечную точку REST. Конечные точки конвейера позволяют автоматизировать рабочие процессы конвейера.

Конечная точка конвейера — это коллекция опубликованных конвейеров. Эта логическая организация позволяет управлять несколькими конвейерами и вызывать их с помощью одной конечной точки. Каждый опубликованный конвейер в конечной точке конвейера имеет несколько версий. Для конечной точки можно выбрать конвейер по умолчанию или указать версию в вызове функции REST.

Автоматизация

интерфейс командной строки Машинное обучение Azure

Интерфейс командной строки Машинное обучение Azure версии 1 — это расширение Azure CLI, кроссплатформенный интерфейс командной строки для платформы Azure. Это расширение предоставляет команды для автоматизации действий машинного обучения.

Конвейеры машинного обучения

Используйте конвейеры машинного обучения для создания рабочих процессов и управления ими, которые объединяют этапы машинного обучения. Например, конвейер может включать этапы подготовки данных, обучения и развертывания модели, а также вывода и оценки. Каждый этап может охватывать несколько шагов, каждый из которых может автоматически выполняться в различных целевых объектах вычисления.

Шаги конвейера можно использовать повторно, и их можно запускать без повторного выполнения предыдущих шагов, если выходные данные этих шагов не изменились. Например, можно переобучить модель без повторного запуска дорогостоящих шагов подготовки данных, если данные не изменились. Кроме того, конвейеры позволяют специалистам по обработке и анализу данных параллельно работать над разными частями рабочего процесса машинного обучения.

Мониторинг и ведение журналов

Машинное обучение Azure предоставляет следующие возможности мониторинга и ведения журнала:

Взаимодействие с рабочей областью

Студия

Студия машинного обучения Azure предоставляет веб-представление всех артефактов в рабочей области. Можно просматривать результаты и сведения о наборах данных, экспериментах, конвейерах, моделях и конечных точках. Также можно управлять вычислительными ресурсами и хранилищами данных в студии.

Студия также использует интерактивные инструменты, которые являются частью Машинное обучение Azure:

Средства программирования

Внимание

Средства, помеченные (предварительная версия) в следующем списке, в настоящее время находятся в общедоступной предварительной версии. Предварительная версия предоставляется без соглашения об уровне обслуживания и не рекомендована для производственных рабочих нагрузок. Некоторые функции могут не поддерживаться или их возможности могут быть ограничены. Дополнительные сведения см. в разделе Supplemental Terms of Use for Microsoft Azure Previews.

Следующие шаги

Чтобы приступить к работе с Машинное обучение Azure, ознакомьтесь со следующими сведениями: