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

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

Что такое МЛОпс?

Источник: ml-ops.org

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

Как и в случае с DevOps, ключевая идея MLOps — автоматизация, позволяющая сократить количество ручных операций и повысить эффективность. Кроме того, как и DevOps, MLOps включает в себя как непрерывную интеграцию (CI), так и непрерывную доставку (CD). В дополнение к этим двум, он также включает в себя непрерывное обучение (CT). Дополнительный аспект CT включает в себя переобучение моделей с новыми данными и их повторное развертывание.

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

Преимущества MLOps

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

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

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

Платформы для строительства трубопроводов

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

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

Давайте рассмотрим лучшие платформы MLOps.

МЛФлоу

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

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

MLFlow интегрируется с популярными библиотеками машинного обучения, такими как TensorFlow и PyTorch. Он также интегрируется с такими платформами, как Apache Spark, H20.asi, Google Cloud, Amazon Sage Maker, Azure Machine Learning и Databricks. Он также работает с различными облачными провайдерами, такими как AWS, Google Cloud и Microsoft Azure.

Машинное обучение Azure

Машинное обучение Azure — это комплексная платформа машинного обучения. Он управляет различными действиями жизненного цикла машины в конвейере MLOP. Эти действия включают подготовку данных, построение и обучение моделей, проверку и развертывание моделей, а также управление и мониторинг развертываний.

Машинное обучение Azure позволяет создавать модели, используя предпочитаемую среду IDE и выбранную платформу, PyTorch или TensorFlow.

Он также интегрируется с ONNX Runtime и Deepspeed для оптимизации обучения и выводов. Это повышает производительность. Он использует инфраструктуру искусственного интеллекта в Microsoft Azure, которая объединяет графические процессоры NVIDIA и сеть Mellanox, чтобы помочь вам создавать кластеры машинного обучения. С помощью AML вы можете создать центральный реестр для хранения и совместного использования моделей и наборов данных.

Машинное обучение Azure интегрируется с Git и GitHub Actions для создания рабочих процессов. Он также поддерживает гибридную или многооблачную настройку. Вы также можете интегрировать его с другими службами Azure, такими как Synapse Analytics, Data Lake, Databricks и Security Center.

Google Вертекс ИИ

Google Vertex AI — это унифицированная платформа данных и искусственного интеллекта. Он предоставляет вам инструменты, необходимые для создания пользовательских и предварительно обученных моделей. Он также служит комплексным решением для реализации MLOps. Чтобы упростить использование, он интегрируется с BigQuery, Dataproc и Spark для беспрепятственного доступа к данным во время обучения.

В дополнение к API, Google Vertex AI предоставляет инструментальную среду с минимальным кодом и без кода, поэтому его могут использовать не разработчики, такие как бизнес-аналитики и аналитики данных и инженеры. API позволяет разработчикам интегрировать его с существующими системами.

Google Vertex AI также позволяет создавать приложения для генеративного ИИ с помощью Generative AI Studio. Это упрощает и ускоряет развертывание и управление инфраструктурой. Идеальные варианты использования Google Vertex AI включают обеспечение готовности данных, разработку функций, обучение и настройку гиперпараметров, обслуживание моделей, настройку и понимание моделей, мониторинг моделей и управление моделями.

Блоки данных

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

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

Развертывание моделей с помощью Dataricks можно выполнить одним щелчком мыши, и у вас будут конечные точки REST API, которые можно использовать для прогнозирования. Помимо других моделей, он хорошо интегрируется с существующими предварительно обученными генеративными и большими языковыми моделями, такими как модели из библиотеки Hugging Face Transformers.

Dataricks предоставляет записные книжки Databricks для совместной работы, которые поддерживают Python, R, SQL и Scala. Кроме того, он упрощает управление инфраструктурой, предоставляя предварительно настроенные кластеры, оптимизированные для задач машинного обучения.

AWS SageMaker

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

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

SageMaker работает с блокнотами Jupyter Notebook, установленными на экземпляре EC2, вместе со всеми распространенными пакетами и библиотеками, необходимыми для кодирования модели машинного обучения. Что касается данных, SageMaker может извлекать данные из Amazon Simple Storage Service.

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

Датаробот

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

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

С DataRobot вы можете строить с использованием готовых моделей, поэтому вам не нужно писать код. В качестве альтернативы вы можете выбрать подход «сначала код» и реализовать модели с помощью пользовательского кода.

DataRobot поставляется с блокнотами для написания и редактирования кода. Кроме того, вы можете использовать API, чтобы разрабатывать модели в выбранной вами среде IDE. Используя графический интерфейс, вы можете отслеживать эксперименты ваших моделей.

Запустить ИИ

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

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

Нет ограничений на то, должно ли оборудование быть облачным, таким как AWS и Google Cloud, локальным или гибридным решением. Он обеспечивает уровень абстракции для групп машинного обучения, выступая в качестве платформы виртуализации графического процессора. Вы можете запускать задачи из Jupyter Notebook, терминала bash или удаленного PyCharm.

H2O.ai

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

Как платформа MLOps, H20 предоставляет ряд ключевых функций. Во-первых, H2O также упрощает развертывание модели на сервере в качестве конечной точки REST. Он предлагает различные темы развертывания, такие как A/B-тестирование, модели Champoion-Challenger и простое развертывание одной модели.

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

Градиент бумажного пространства

Gradient помогает разработчикам на всех этапах цикла разработки машинного обучения. Он предоставляет ноутбуки на базе Jupyter с открытым исходным кодом для разработки моделей и обучения в облаке с использованием мощных графических процессоров. Это позволяет быстро исследовать и прототипировать модели.

Конвейеры развертывания можно автоматизировать путем создания рабочих процессов. Эти рабочие процессы определяются описанием задач в YAML. Использование рабочих процессов упрощает создание моделей развертывания и обслуживания и, следовательно, делает их масштабируемыми.

В целом Gradient предоставляет контейнеры, машины, данные, модели, метрики, журналы и секреты, чтобы помочь вам управлять различными этапами конвейера разработки моделей машинного обучения. Ваши конвейеры работают на кластерах Gradiet. Эти кластеры находятся либо на Paperspace Cloud, AWS, GCP, Azure, либо на любых других серверах. Вы можете программно взаимодействовать с Gradient с помощью CLI или SDK.

Заключительные слова

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

В этой статье мы рассмотрели MLOP, почему важно их реализовать, что для этого нужно, а также различные популярные платформы MLOps.

Далее вы можете прочитать наше сравнение Dataricks и Snowflake.