Нравится вам это или нет, но если вы используете компьютер, вы, скорее всего, также используете какую-то форму искусственного интеллекта (ИИ). От систем ранжирования поисковых систем до спам-фильтров, от рекомендаций по контенту в социальных сетях до, в последнее время, генерации текста с помощью таких систем, как ChatGPT, машинное обучение (ML) приобрело значительную популярность, и все больше организаций инвестируют в создание и развертывание моделей ML.
Однако управление моделями машинного обучения может оказаться непростой задачей. Компании, использующие ИИ, обычно имеют дело с большими наборами данных, и для этих наборов данных требуется сложная, надежная и надежная информационная система. Разработка и поддержка системы, которая взаимодействует с искусственным интеллектом, приводит к множеству проблем:
- Управление данными. Для эффективного обучения моделям машинного обучения требуются большие объемы высококачественных данных. Это означает, что организациям необходимо установить надежные процессы управления данными для сбора, очистки и хранения данных.
- Создание функций: процесс создания функций для разработки модели машинного обучения может быть трудоемким и сложным. Кроме того, в случаях сложных преобразований существует значительное пространство для внесения отклонений в построение функций между обучением машинного обучения и логическим выводом или между выполнением кода в разных средах.
- Выбор модели. С таким количеством доступных алгоритмов и методов машинного обучения может быть трудно понять, какое решение лучше соответствует потребностям бизнеса.
- Обучение модели. Обучение моделей машинного обучения может потребовать значительных вычислительных ресурсов и времени; управление различными версиями модели может стать сложной задачей.
- Развертывание модели: после обучения модели машинного обучения ее необходимо (повторно) развернуть в производственной среде, где ее можно использовать для прогнозирования.
- Управление версиями и отслеживание моделей. Эффективный способ отслеживания производительности моделей во время обучения и проверки, а также эффективного и надежного развертывания различных моделей в различных средах важен как для разработки моделей, так и для надежного производственного развертывания. Это особенно верно по мере увеличения количества вариантов использования и групп разработчиков.
- Оркестрация и масштабирование моделей. Автоматическое масштабирование по горизонтали и вертикали, а для пакетных рабочих нагрузок запуск моделей необходимо согласовать с поступлением новых данных.
- Мониторинг модели: даже после развертывания модели машинного обучения ее необходимо отслеживать, чтобы убедиться, что она продолжает работать хорошо.
- Сотрудничество. В проектах по машинному обучению часто участвуют несколько команд с разными областями знаний. Члены команды должны иметь возможность работать над отдельными частями системы, не конфликтуя с коллегами.
Решение этих задач может потребовать много времени и стресса. Сохранение всех предыдущих шагов вручную может быстро стать неуправляемым и дорогостоящим. Вместо этого желательно иметь автоматизированный, воспроизводимый и стабильный конвейер, который выполняет все шаги за вас.
Именно здесь на помощь приходит MLOps. MLOps, сокращение от Machine Learning Operations, относится к набору практик, процессов и инструментов, предназначенных для оптимизации жизненного цикла моделей машинного обучения. Он охватывает все: от создания и обучения моделей машинного обучения до их развертывания, мониторинга и обслуживания в производственной среде. Как видно из изображения, MLOps — это все, что связано с данными, разработкой программного обеспечения и операциями.
MLOps предоставляет инструменты и процессы, которые помогают организациям эффективно управлять данными, гарантируя, что модели будут обучены на наилучших возможных данных. Это может помочь оценить различные модели и выбрать наиболее подходящую для конкретного случая использования. Он также может оптимизировать обучение моделей, сокращая время и ресурсы, необходимые для получения точных результатов масштабируемым способом, обеспечивая хорошую работу обученных моделей в производственных средах. Кроме того, MLOps позволяет отслеживать модели и выявлять проблемы до того, как они станут серьезными проблемами.
Есть несколько компонентов, которые помогают нам достичь всего вышеперечисленного. Система MLOps состоит из набора компонентов, которые работают вместе для автоматизации и оптимизации сквозного жизненного цикла моделей машинного обучения, как описано ниже.
На рисунке 2 показано разделение различных компонентов в системе машинного обучения. В первом поле представлен обзор жизненного цикла/рабочего процесса машинного обучения, а во втором — компоненты и процессы этого рабочего процесса. Сторона машинного обучения может быть более знакомой — она включает в себя подготовку данных, а затем переход к обучению. Как правило, если что-то может выйти из строя, оно выйдет из строя, поэтому на время обучения лучше хранить артефакты модели в Хранилище артефактов. После тщательной оценки (которая также может быть до некоторой степени автоматизирована) вы затем предоставляете выбранные артефакты модели и метаданные обслуживающему компоненту и выполняете постобработку на месте. Во втором поле показаны инструменты, необходимые на разных этапах конвейера ML Engineering.
Различные компоненты решают разные задачи в системах машинного обучения, например:
- Управление данными: сбор, очистка, маркировка и хранение данных для обучения и тестирования моделей машинного обучения.
- Управление функциями: создание и хранение функций для моделей машинного обучения, чтобы их можно было эффективно и надежно использовать между различными группами разработчиков, а также между конвейерами обучения моделей и логических выводов.
- Обучение/разработка моделей: построение, тестирование и проверка моделей машинного обучения с использованием различных алгоритмов и методов.
- Управление версиями и отслеживание моделей. Объекты обученных моделей необходимо эффективно хранить и отслеживать связанные с ними метаданные. Это обеспечивает четкую прослеживаемость и воспроизводимость во время развертывания модели. Это также позволяет командам разработчиков эффективно отслеживать прогресс в усилиях по разработке моделей.
- Развертывание модели: развертывание обученных моделей в производственных средах, таких как облачные платформы, пограничные устройства или локальные серверы.
- Оркестрация и масштабирование модели: инициирование и масштабирование развертывания модели на основе поступления новых данных или нагрузки приложения.
- Мониторинг модели: мониторинг производительности и поведения развернутых моделей для обнаружения и предотвращения таких проблем, как дрейф данных, разрушение модели и нарушения безопасности. Это помогает повысить общую производительность и надежность наших моделей, сократить время простоя и свести к минимуму влияние проблем на ваши бизнес-операции.
- Управление моделями: обеспечение соответствия нормативным требованиям, этическим стандартам и передовым методам разработки и развертывания моделей машинного обучения.
- CI/CD: Обеспечение непрерывного тестирования, интеграции и развертывания изменений кода, модели и инфраструктуры в производственных средах бесшовным и автоматизированным способом, что снижает риск человеческой ошибки и обеспечивает согласованность процесса развертывания.
- Разделение среды: разделение среды разработки, тестирования и рабочей среды для обеспечения тщательного тестирования и проверки изменений перед выпуском в производственную среду. Такая настройка среды позволяет тестировать новые гипотезы в «песочницах», которые не повлияют на бизнес клиентов.
- Контроль доступа: реализация мер безопасности для контроля того, кто имеет доступ к конфиденциальным данным, моделям и инфраструктуре, для предотвращения несанкционированного доступа, защиты конфиденциальных данных и снижения риска утечки данных или кибератак.
MLOps — это новая область, позволяющая инженерам создавать воспроизводимые, масштабируемые, безопасные и готовые к работе конвейеры машинного обучения. С каждым годом разрабатывается все больше и больше инструментов для одного или нескольких компонентов MLOps. Мы верим, что продолжим наблюдать дальнейший рост, поскольку ландшафт вариантов использования машинного обучения диверсифицируется благодаря новым разработкам в индустрии ИИ и все большему количеству проблем становится возможным решать с помощью ИИ. Будущее выглядит захватывающим!
Сводка
В этой статье мы представили введение в операции машинного обучения (MLOPs). MLOps — это набор практик и инструментов для эффективной, надежной и масштабируемой разработки и развертывания моделей машинного обучения. MLOps используется для обеспечения правильного мониторинга развернутых моделей и эффективной совместной работы групп разработки и эксплуатации. Некоторые из ключевых компонентов MLOps включают контроль версий, тестирование и проверку, воспроизводимость, автоматизацию развертывания, мониторинг и ведение журнала, совместную работу и связь. Внедряя лучшие практики MLOps, организации могут повысить скорость, надежность и точность своих систем машинного обучения, что в конечном итоге принесет большую пользу их клиентам и заинтересованным сторонам.
Теперь, когда вы знаете, что такое MLOps, следите за обновлениями нашей следующей статьи (Часть II), в которой мы покажем наш проект Accelerator и подробно расскажем о том, как мы применяем лучшие практики MLOps в Data Reply, чтобы ускорить создание ценности для наших клиентов.