Давайте узнаем силу MLRun

Введение

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

Благодаря технологии бессерверных функций MLRun вы можете написать свой код один раз, используя свою любимую среду разработки с простой «локальной» семантикой, а затем выполнять его на различных платформах в любом масштабе. MLRun автоматизирует метод сборки, выполнение, передачу данных, масштабирование, параметризацию, отслеживание выходных данных, интеграцию CI/CD, развертывание в рабочей среде, мониторинг и многое другое.

В этой статье мы подробно узнаем о MLRun и его функционале.

Что такое MLRun?

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

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

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

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

Обучаем —обучаем модель для будущего прогнозирования бизнеса и так далее.

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

Развертывание.После проверки мы развертываем модель для будущего прогнозирования.

Каковы основные концепции MLRun?

Проект –контейнер или место, куда вы можете поместить всю свою работу, связанную с одним действием. Для совместной работы пользователей проекты включают метаданные, исходный код, процессы, данные и артефакты, модели, триггеры и управление участниками. Определения проекта можно создать с помощью SDK или файла YAML и хранить в базе данных MLRun, файле или архиве. Все ресурсы проекта упоминаются по имени в заданиях проекта и рабочих процессах, отделяя конфигурацию от кода.

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

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

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

Рабочий процесс — указывает конвейер функций или направленный ациклический граф (DAG) для запуска с использованием конвейеров обслуживания MLRun в реальном времени или конвейеров Kubeflow. Параметры проекта, секреты, артефакты и т. д. могут использоваться на протяжении всего рабочего процесса. Выход выполнения функции также может использоваться в качестве входа выполнения функции (что, конечно же, определяет порядок выполнения). MLRun поддерживает запуск рабочего процесса на локальном конвейере или механизме конвейера Kubeflow.

UI — инструмент управления проектами, который использует графический пользовательский интерфейс (панель управления) для отображения и управления экспериментами, артефактами и кодом, включенным в проекты.

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

Архитектура MLRun

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

  1. Репозиторий или хранилище функций (прием и подготовка данных) — обеспечивает прием, обработку, хранение метаданных и функции в нескольких репозиториях и технологиях. Он собирает, подготавливает, каталогизирует и обслуживает функции данных для использования в режиме реального времени и пакетных данных для разработки (офлайн) и в реальном времени (онлайн).
  2. Мониторинг и переобучение в режиме реального времени (обучение и тестирование модели) –обеспечивает цикл обратной связи для изучения производственных данных, обнаружения дрейфа, предупреждения об аномалиях или проблемах с качеством данных, инициирования переобучения, оценки влияния на бизнес, и т. д. Уровень мониторинга собирает в реальном времени входные и выходные данные из конвейера реального времени и сопоставляет их с данными объектов и информацией из хранилища объектов или метаданных модели, созданных на уровне обучения. Все новые производственные данные записываются обратно в хранилище функций, чтобы их можно было использовать для различных целей, включая анализ данных, переобучение модели (на новых данных) и усовершенствование модели.
  3. Конвейер ML CI/CD (данные в реальном времени + конвейер моделей) — развертывание производственных конвейеров в реальном времени, обучение и тестирование моделей, сквозной мониторинг и подготовка данных автоматизированы в мерзавец
  4. Конвейер обслуживания в режиме реального времени (мониторинг данных и моделей) —разрабатывает микросервисы из простого кода, который легко масштабировать и поддерживать. Он совместим с распространенными механизмами выполнения, такими как задания Dask, Apache Spark и Kubernetes. Он использует функции из хранилища функций для улучшения входящих событий, а также может использовать информацию о функциях (политики, статистика, схема и т. д.) для вменения отсутствующих данных или проверки качества данных.

Каковы проблемы MLRun?

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

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

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

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

Будущее MLRun

Чтобы эффективно дублировать и объяснять результаты экспериментов ML, идеально иметь возможность документировать и версионировать код, конфигурацию, выходные данные и связанные входные данные (происхождение). Может потребоваться использование многочисленных баз данных и различных форматов хранения (таких как файлы и корзины AWS S3), что усложняет реализацию.

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

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

Заключение

В этой статье мы узнали о MLRun, проблемах MLRun, архитектуре MLRun, основных концепциях MLRun и будущем MLRun.

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

Независимая от редакции, Heartbeat спонсируется и публикуется Comet, платформой MLOps, которая позволяет специалистам по данным и командам машинного обучения отслеживать, сравнивать, объяснять и оптимизировать свои эксперименты. Мы платим нашим авторам и не продаем рекламу.

Если вы хотите внести свой вклад, перейдите к нашему призыву к участию. Вы также можете подписаться на получение нашего еженедельного информационного бюллетеня (Еженедельник глубокого обучения), заглянуть в блог Comet, присоединиться к нам в Slack и подписаться на Comet в Twitter и LinkedIn для получения ресурсов и событий. и многое другое, что поможет вам быстрее создавать более качественные модели машинного обучения.