Операции машинного обучения (MLOPs) могут значительно ускорить удовлетворение организационных потребностей специалистами по данным и инженерами по машинному обучению. Хорошо реализованный процесс MLOps не только ускоряет переход от тестирования к производству, но также предлагает право собственности, происхождение и исторические данные об артефактах ML, используемых в команде. Теперь ожидается, что группа специалистов по обработке и анализу данных будет обладать навыками CI/CD, чтобы поддерживать непрерывный вывод с помощью циклов переобучения и автоматизированного повторного развертывания моделей. Многие специалисты по машинному обучению по-прежнему вынуждены запускать MLOps вручную, и это сокращает время, в течение которого они могут сосредоточиться на добавлении большей ценности для бизнеса.

Чтобы решить эти проблемы, многие люди и группы разрабатывают специальные ускорители и учебные материалы для удовлетворения своих индивидуальных потребностей или потребностей своих клиентов. Это привело к появлению большого количества ускорителей, репозиториев кода и даже полноценных продуктов, созданных с использованием или поверх машинного обучения Azure (Azure ML). Мы собрали и оценили более 20 ускорителей решений и кодовых баз MLOps со всей организации. Со временем отсутствие обслуживания некоторых из этих «популярных» репозиториев привело к разочарованию по разным причинам. Репозитории пострадали от большого разнообразия шаблонов кодирования или использовали примеры, которые воспроизводили лишь небольшую часть реальной производственной рабочей нагрузки.

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

Мы объединили более 30 ресурсов из разных стран и функций, в том числе группу по продуктам и инженерам Azure ML, чтобы согласовать усилия и разработать ускоритель MLOps v2 в соответствии с разработкой платформы машинного обучения Azure v2, интерфейса командной строки и пакета SDK. Теперь у нас есть кодовая база, которая содержит повторяемые, автоматизированные и совместные рабочие процессы и шаблоны, включающие лучшие практики развертывания моделей машинного обучения в рабочей среде.

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

Архитектура ускорителя решений

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

Рис. 1. Классическая архитектура машинного обучения MLOps с использованием AML

1. Массив данных. Этот элемент представляет массив данных организации, потенциальные источники данных и цели для проекта по науке о данных. Инженеры данных будут основными владельцами этого элемента жизненного цикла MLOps v2. Платформы данных Azure на этой диаграмме не являются ни исчерпывающими, ни предписывающими. Однако будут выделены источники данных и целевые объекты, которые представляют собой рекомендуемые передовые методы, основанные на сценариях использования клиентов, и указаны их связи с другими элементами в архитектуре.

2. Admin/Setup: этот элемент инициирует развертывание MLOps v2 Accelerator. Он состоит из всех задач, связанных с созданием и управлением ресурсами и ролями, связанными с проектом. Они могут включать, но не ограничиваться:

а. Создание репозиториев исходного кода проекта.
b. Создание рабочих областей машинного обучения Azure для проекта.
c. Создание/изменение наборов данных и вычислительных ресурсов, используемых для экспериментов с моделями и их развертывания.
d. Определение пользователей команды проекта, их ролей и контроля доступа к другим ресурсам.
e. Создание конвейеров CI/CD (непрерывная интеграция и непрерывная доставка).
f. Создание мониторов для сбора и уведомления метрик модели и инфраструктуры.

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

3. Разработка модели (внутренний цикл). Элемент внутреннего цикла состоит из итеративного рабочего процесса обработки данных. Здесь показан типичный рабочий процесс от приема данных, EDA (исследовательского анализа данных), экспериментов, разработки и оценки модели до регистрации модели-кандидата для производства. Этот модульный элемент, реализованный в ускорителе MLOps v2, является независимым и адаптируется к процессу, который ваша команда может использовать для разработки моделей.

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

4. Развертывание (внешний цикл). Этап внешнего цикла состоит из тестирования предварительного развертывания, производственного развертывания и производственного мониторинга, инициируемых конвейерами непрерывной интеграции после регистрации рабочей модели-кандидата командой внутреннего цикла. Конвейеры непрерывного развертывания будут продвигать модель и связанные активы посредством производства и мониторинга производства по мере выполнения тестов, соответствующих вашей организации и варианту использования. Мониторинг в промежуточной/тестовой и производственной средах облегчает сбор данных и решение проблем, связанных с производительностью модели, дрейфом данных и производительностью инфраструктуры, что может потребовать проверки с участием человека, автоматического переобучения и повторной оценки модели или повторного посещения модели. Цикл разработки или администрирование/настройка для разработки новой модели или модификации ресурсов инфраструктуры. Люди, связанные с этим этапом, в основном инженеры машинного обучения.

Репозиторий также имеет архитектуру, специально разработанную для сценариев использования Computer Vision (CV) и Natural Language Processing (NLP). Дополнительная архитектура, адаптированная для сценариев Azure ML + Spark и IoT (Интернет вещей) Edge, находится в разработке.

Техническая реализация

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

Репозиторий Azure/mlops–v2: ускорители решений Azure MLOps (v2). (github.com) — это монорепозиторий, в котором пользователи могут настроить любой из архитектурных шаблонов для начала работы. Пользователи могут выбрать один элемент из каждого столбца, чтобы настроить собственное репо для своих нужд. Например, они могут выбрать инфраструктуру, которую можно создать с помощью Terraform, используя GitHub в качестве своей платформы CI/CD. Специалист по данным может выбрать свою проблему ML и то, как он хочет развернуть свой конвейер на языке по своему выбору.

Таблица 1. Архитектурные шаблоны

Элементы, выделенные жирным шрифтом, доступны прямо сейчас.

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

Ускоритель MLOps v2 включает в себя дополнительные стандартные блоки, которые можно дополнительно настроить для включения в рабочий процесс. К ним относятся:

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

2. Безопасность: мы включили шаги и рекомендации из расширенного сканирования безопасности и сканирования учетных данных GitHub (также доступны в Azure DevOps), которые можно включить в рабочий процесс. Например, есть пример того, как вы можете работать с conda.yml и requirements.txt, чтобы включить сканирование безопасности в установленных пакетах Python. Это было бы невозможно при нынешнем способе настройки среды и контейнеров вывода. У нас есть документация d о том, как пользователи GitHub могут настроить репозиторий для выполнения сканирования пакетов на ранних этапах процесса, чтобы проблемы безопасности не стали препятствием для развертывания модели в рабочей среде.

Безопасность является первостепенной задачей, и для ее обеспечения мы внедрили поддержку безопасных рабочих пространств. Это поможет командам сохранять конфиденциальность своих проектов и данных. Кроме того, мы понимаем важность быстрой проверки концепций. Поэтому мы создали примеры быстрого развертывания с помощью Azure DevOps (ADO), GitHub и Microsoft Learn, чтобы помочь вам быстро протестировать свои идеи.

Рисунок 2. Пример настройки оповещений Dependabot на GitHub в репозитории

3. Интеграция хранилища функций Feathr. Мы рады объявить об интеграции Feathr в качестве хранилища функций корпоративного масштаба в расширенные архитектуры MLOps V2. Развертывание Feathr упрощается с помощью сценария Terraform, и мы предоставляем простой классический пример машинного обучения, который поможет вам в его реализации.

4. Регистрация нескольких наборов данных и поддержка сторонних контейнеров. В ответ на запросы пользователей мы включили возможность регистрации нескольких наборов данных в ускорителе MLOps V2. Мы считаем, что это добавит большую гибкость специалистам по данным и инженерам машинного обучения для работы с различными наборами данных для своих проектов. Кроме того, мы добавили поддержку сторонних или внешних контейнеров. Мы даже добавили поддержку надежного сканирования пакетов Python с помощью установки pip в контейнере Docker.

5. Наблюдение за моделью: чтобы эффективно отслеживать и выявлять отклонение модели и данных, должен быть способ сбора и анализа данных, особенно из производственной системы. Мы внедрили Azure Data Explorer (ADX) в качестве платформы для приема и анализа данных. Типичный файл score.py изменен для передачи данных в ADX.

6. Дрейф модели и данных: у нас есть два шаблона для дрейфа модели и данных. Один из шаблонов основан на ADX, а другой основан на выполнении вычислений в рамках Azure ML Pipelines. Выбор исполнения зависит от предпочтений заказчика. Оба подхода включают в себя различные статистические тесты для оценки дрейфа между целью и прогнозами. В дальнейшем мы планируем расширить, включив корреляционный анализ и другие статистические тесты, такие как расхождение Дженсена-Шеннона и т. д., для больших наборов данных (но с небольшим количеством уникальных целевых значений).

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

Дополнительные возможности

Репозиторий содержит примеры того, как можно эффективно работать с моделями MLFlow, которые обеспечивают плавное и развертывание API без кода не только для табличных моделей, но и для моделей глубокого обучения, таких как компьютерное зрение.

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

Основной репозиторий: Azure/mlops–project–template (github.com)

Репозиторий шаблонов: Azure/mlops–templates (github.com)

Пример. В двух примерах кода показано, как можно повторно использовать шаблон в конвейерном репозитории.

При поддержке команды Microsoft Learn у нас есть контент, который предлагает онлайн-контент для самостоятельного изучения и практического ознакомления с различными используемыми технологиями. Мы разработали контент OpenHack, пилотная версия которого была доставлена ​​внутри компании в июне 2022 года. В настоящее время мы учитываем отзывы, полученные на сессии, и улучшаем контент, который планируется выпустить в начале следующего года.

Заключение

Ускоритель MLOps v2 — это де-факто решение для MLOps от Microsoft, которое будет развиваться дальше. Поскольку ускоритель продолжает развиваться, он останется универсальным средством для начала работы с Azure. Ускоритель MLOps v2 обеспечивает гибкость, масштабируемость, модульность, простоту использования и безопасность для быстрого перехода от разработки к производству и является обязательным для любого проекта AI/ML в Azure. MLOps v2 не только объединяет MLOps в Microsoft, но и устанавливает новые стандарты для любых рабочих нагрузок ИИ, которые будут выполняться в Azure.

Благодарности

Разработка акселератора — это усилия всемирной команды, которые во многом внесли свой вклад в репозиторий.

Об авторах

Скотт Доноху: технический руководитель в области науки о данных и MLOps, который помогает организациям, занимающимся наукой о данных, реализовать коммерческую ценность от внедрения своих моделей машинного обучения. Более двадцати лет опыта в области локальных и облачных ИТ, больших данных, машинного обучения и аналитики, а также разработки корпоративного программного обеспечения.

Сету Чокши: Я старший технический руководитель, новатор и специалист в области машинного обучения и искусственного интеллекта. Я также лидер, который заслужил уважение своей команды благодаря активному слушанию и делегированию задач, соответствующих талантам. Мой опыт сложился органично, поскольку технические победы привели к большим возможностям. Мне посчастливилось работать с отраслевыми гигантами — General Electric и Nielsen.

Первоначально опубликовано на OpenDataScience.com

Читайте другие статьи по науке о данных на OpenDataScience.com, включая учебные пособия и руководства от начального до продвинутого уровня! Подпишитесь на нашу еженедельную рассылку здесь и получайте последние новости каждый четверг. Вы также можете пройти обучение по науке о данных по запросу, где бы вы ни находились, с нашей платформой Ai+ Training. Подпишитесь также на нашу быстрорастущую публикацию на Medium, ODSC Journal, и узнайте, как стать писателем.