Машинное обучение Azure (ML) - это комплексный инструмент для управления конвейерами машинного обучения и глубокого обучения. Он может автоматизировать обучение в больших пулах вычислительных ресурсов и помочь вам развернуть модели в производственной среде и управлять логическими выводами для производственных приложений.

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

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

Что такое машинное обучение Azure?

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

Azure ML поддерживает широкий спектр языков, включая Python и R, а также ряд пакетов SDK. Вы также можете использовать студию машинного обучения Azure, которая предоставляет рабочее пространство для моделей машинного обучения без кода или с низким уровнем кода и моделей глубокого обучения (DL).

Azure ML предоставляет множество инструментов для сквозных операций машинного обучения, в том числе:

  • Конструктор машинного обучения Azure (предварительная версия) предоставляет модули перетаскивания для создания экспериментов и развертывания конвейеров.
  • Блокноты Jupyter - позволяет использовать готовые примеры блокнотов или создавать свои собственные уникальные блокноты.
  • Сценарии или записные книжки R, которые позволяют использовать R SDK при написании собственной кодовой базы или использовать модули R с дизайнером.
  • Many Models Solution Accelerator - (предварительная версия) на основе Azure ML, это решение позволяет создавать, обучать и управлять сотнями или тысячами моделей машинного обучения.

Azure ML предоставляет гораздо больше возможностей, таких как интерфейс командной строки для машинного обучения и

Расширение Visual Studio Code. Платформа работает с фреймворками с открытым исходным кодом, такими как TensorFlow, PyTorch, Ray RLlib для обучения с подкреплением и другими. Он также интегрируется с широким спектром внешних библиотек, таких как Git и MLFlow.

Компоненты машинного обучения Azure

Давайте рассмотрим основные компоненты экосистемы машинного обучения Azure.

Рабочая среда

Рабочая область - это центральный ресурс в Azure, содержащий конвейеры машинного обучения и все связанные ресурсы. Это координационный центр для:

  • Управление ресурсами, используемыми для обучения и развертывания моделей машинного обучения
  • Хранение активов, используемых и созданных конвейерами машинного обучения Azure

Рабочая область включает в себя другие ресурсы Azure, которые используются рабочей областью: Реестр контейнеров Azure (ACR); Учетная запись хранения Azure, используемая в качестве хранилища данных по умолчанию для рабочей области; Azure Application Insights, используемый для мониторинга; и Azure Key Vault, в котором хранятся секреты, используемые для выполнения моделей.

Вычисляет

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

Вычислить экземпляр

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

Вычислительный кластер

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

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

Наборы данных Azure упрощают доступ к вашим данным и их использование. Azure ML создает ссылки на ваши данные вместе с копией их метаданных. Данные не копируются в Azure ML - они остаются на месте, поэтому нет дополнительных затрат на хранение и риска для целостности и безопасности данных.

Модели

В простейшем случае модель - это код, который принимает входные данные и производит выходные данные. Модель машинного обучения обычно включает алгоритм, набор входных данных и гиперпараметры, которые влияют на то, как алгоритм генерирует выходные данные или прогнозы. После одного или нескольких раундов обучения модель «узнала» все, что она может, из входного набора данных и может генерировать прогнозы на основе невидимых данных.

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

Прогоны и эксперименты

Прогон - это одно выполнение сценария обучения. Эксперимент - это набор прогонов. Оба хранятся как часть рабочего пространства. Машинное обучение Azure записывает данные каждого запуска и хранит информацию в эксперименте. Это включает:

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

У прогонов могут быть «дочерние прогоны», и вы можете вкладывать несколько уровней прогонов друг в друга. Это позволяет автоматизировать сложные тренировочные процедуры.

Снимки

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

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

Под капотом: рабочий процесс

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

Каждый раз, когда вы запускаете эксперимент в Azure ML, выполняются следующие шаги:

  1. Запрашивается запуск с идентификатором моментального снимка, который указывает на моментальный снимок каталога, содержащего модель кода и обучающие сценарии.
  2. Azure ML запускается, создает идентификатор запуска и токен службы машинного обучения, которые могут использоваться целевыми объектами вычислений на более поздних этапах.
  3. Пользователь выбирает цель вычислений для запуска - это может быть размещенная цель (один из двух типов вычислительных ресурсов Azure ML) или не размещенная цель, которая представляет собой обычную виртуальную машину, на которой пользователь установил машинное обучение. среда.

Поток данных работает следующим образом:

  1. Целевой объект вычислений получает учетные данные SSH из хранилища ключей, которое является частью подписки Azure.
  2. Код управления машинным обучением Azure записывается в общую папку под учетной записью Azure Files пользователя (узнайте, как работают файлы Azure).
  3. Azure ML загружает моментальный снимок в вычислительный экземпляр.
  4. Azure ML настраивает требуемую среду на целевом объекте вычислений, обычно с использованием контейнера Docker, и задает конфигурацию и переменные среды. Контейнер запускается с использованием кода управления машинным обучением Azure и запускает сценарий обучения пользователя.
  5. По окончании цикла обучения Azure ML сохраняет метрики из в Cosmos DB. Затем вы можете увидеть результаты, полученные из хранилища данных Cosmos, в пользовательском интерфейсе Azure ML.

Заключение

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

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

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