Поделиться через


Основные понятия — операции машинного обучения (MLOps) для рабочих процессов искусственного интеллекта и машинного обучения

В этой статье вы узнаете об операциях машинного обучения (MLOps), в том числе о типах методик и инструментов, а также о том, как упростить и ускорить рабочие процессы искусственного интеллекта и машинного обучения на Служба Azure Kubernetes (AKS).

Что собой представляет MLOps?

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

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

Конвейер MLOps

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

  • Неструктурированное хранилище данных для новых потоков данных в приложение
  • Векторная база данных для хранения и запроса структурированных предварительно обработанных данных
  • Платформа приема и индексирования данных
  • Векторный прием и (или) переобучение рабочих процессов переобучения моделей
  • Средства сбора метрик и оповещений (производительность модели отслеживания, объем приема данных и т. д.)
  • Средства управления жизненным циклом

DevOps и MLOps

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

Существует три процесса, которые важны для MLOps:

  • Рабочие нагрузки машинного обучения, для которых отвечает специалист по обработке и анализу данных (EDA), проектированию признаков и обучению и настройке моделей.
  • Методики разработки программного обеспечения, включая планирование, разработку, тестирование и упаковку модели для развертывания.
  • Операционные аспекты развертывания и обслуживания модели в рабочей среде, включая выпуск, настройку ресурсов и мониторинг модели.

Принципы DevOps, применяемые к MLOps

MLOps использует несколько принципов от DevOps для улучшения жизненного цикла машинного обучения, таких как автоматизация, непрерывная интеграция и доставка (CI/CD), управление версиями, гибкое планирование и инфраструктура в виде кода (IaC).

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

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

Например, конвейер может автоматизировать:

  • Настройка или переобучение модели через регулярные интервалы времени или при сборе определенного количества новых данных в приложении.
  • Обнаружение снижения производительности для точной настройки или переобучения в другом подмножестве данных.
  • Распространенная проверка уязвимостей и уязвимостей (CVE) на базовых образах контейнеров, извлекаемых из внешних реестров контейнеров, чтобы обеспечить безопасные методики безопасности.

Непрерывная интеграция (CI)

Непрерывная интеграция охватывает создание и проверку аспектов процесса разработки модели. Цель CI — создать код и проверить качество кода и модели перед развертыванием. Это включает тестирование на диапазон выборочных наборов данных, чтобы гарантировать, что модель выполняется должным образом и соответствует стандартам качества.

В MLOps ci может включать следующее:

  • Рефакторинг произвольного кода в записных книжках Jupyter в скрипты Python или R.
  • Проверка новых входных данных для отсутствующих или ошибок.
  • Модульное тестирование и тестирование интеграции в сквозном конвейере.

Для выполнения линтинга и модульного тестирования можно использовать такие средства автоматизации, как Azure Pipelines в Azure DevOps или GitHub Actions.

Непрерывная поставка (CD)

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

Управление исходным кодом

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

Гибкое планирование

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

Вы можете использовать такие инструменты, как Azure Boards в Azure DevOps или GitHub, для управления планированием Гибкой работы.

Инфраструктура как код (IaC)

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

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

Ознакомьтесь со следующими статьями, чтобы узнать о рекомендациях по MLOps в интеллектуальных приложениях в AKS: