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

От управления файлами моделей, зависимостями времени выполнения, наборами данных, упаковкой моделей в контейнеры докеров до масштабируемой работы в облаке.

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

Ниже приводится анализ того, как построить такой конвейер:

  1. Раздел (1) описывает систему репозитория кода, в которой вы храните код эксперимента ML, используя разные ветки. В этом проекте мы предлагаем иметь три ветви, нацеленные на три среды (разработка, подготовка и производство). Вы можете использовать VSTS или GitHub для хранения и проверки кода ML.
  2. В разделе (2) описывается работа с Azure Machine Learning Workbench для создания экспериментов, которые выполняются в локальной среде или среде выполнения Docker. Вам необходимо убедиться, что ваш эксперимент выполняется локально в контейнере докеров, чтобы он был средой для упаковки и развертывания любого файла pickle модели и score.py в Azure.
  3. Раздел (3) описывает отправку кода машинного обучения в службу управления машинным обучением Azure в Azure. Используя эту службу, мы храним модели (файлы pickle), файлы манифестов, созданные из score.py, образы докеров, созданные при развертывании эксперимента, и службы реального времени, которые являются конечными точками, которые вы можете использовать из своего решения.
  4. В разделе (4) показаны контейнерные службы Azure (AKS). Это действует как слой обслуживания для моделей машинного обучения. Этот сервис управляет и размещает ваши сервисы в реальном времени для прогнозирования!
  5. Раздел (5) [Необязательно] описывает API вашего решения для вызова служб в реальном времени. После успешного развертывания модели вы можете использовать сервисы в реальном времени со своего компьютера, используя почтальон, как и любые API-интерфейсы.

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

az ml service create realtime -f score.py - файл модели model.pkl -s service_schema.json -n appname -r python - collect-model-data true -c aml_config \ conda_dependencies.yml

Вот подробное объяснение этой команды:

score.py: оценивает файл в эксперименте, который генерирует файл service_schema.json, а также проверяет функции init () и run () для загрузки и передачи значений в файл модели рассола.

model.pkl: файл рассола модели, который нужно развернуть.

service_schema.json: файл json, созданный с помощью score.py, который создает скелет входных и выходных данных веб-службы модели. Этот файл создается, когда вы запускаете Score.py в локальной среде докеров.

appname: имя приложения, которое должно отображаться в службе управления моделями Azure, и должно быть написано строчными буквами.

conda_dependencies.yml: среда conda, которая используется для создания образа докера с его зависимостями conda и pip.

Надеюсь, это поможет и продолжайте строить :-)

-Мостафа