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

  • Apache Airflow
    Airflow — это универсальная платформа для оркестрации задач. Используйте Airflow, если вам нужен наиболее полнофункциональный, зрелый инструмент, и вы можете посвятить время изучению того, как он работает, его настройке и обслуживанию. Кроме того, если вам нужна зрелая, широкая экосистема, которая может выполнять множество различных задач.
  • KubeFlow
    Kubeflow специально ориентирован на задачи машинного обучения, такие как отслеживание экспериментов, настройка гиперпараметров, развертывание моделей и многое другое. Шаблоны для решений машинного обучения.
    Kubeflow Pipelines – это отдельный компонент Kubeflow, ориентированный на развертывание моделей и CI/CD, который можно использовать независимо от других функций Kubeflow. Kubeflow опирается на Kubernetes и, вероятно, будет более интересным для вас, если вы уже приняли его.
  • MLFlow
    Если вас больше интересует отслеживание экспериментов или отслеживание и развертывание моделей с использованием предопределенных шаблонов MLFlow, чем поиск инструмента, который можно адаптировать к вашим существующим пользовательским рабочим процессам .
  • AWS Sagemaker
    SageMaker от Amazon полностью управляем, оптимизирован для машинного обучения и поставляется с множеством интегрированных инструментов, таких как серверы ноутбуков, Auto-ML и мониторинг в рамках экосистемы AWS.
    Однако управление и интеграция не означает простоты использования. Конвейеры SageMaker выглядят почти так же, как в Kubeflow, но их определения требуют гораздо большей детализации (как и все в AWS) и очень мало упрощают развертывание для ученых.

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

В качестве отправной точки мы выбрали Kubeflow в качестве нашего инструмента по причинам, изложенным ниже.

  • Kubeflow позволяет нам поддерживать переносимость всего приложения между облачными провайдерами.
  • Учитывая, что мы уже используем Kubernetes для управления рабочими процессами, Kubeflow становится естественным выбором.
  • Пользовательский интерфейс очень отзывчив. Изменения статуса обновляются в режиме реального времени. Я могу завершить конвейер и увидеть, что он работает почти сразу
  • Одним из ключевых преимуществ будет прямая интеграция контейнеров и пользовательского интерфейса. Я могу щелкнуть этап в своем конвейере и просмотреть журналы контейнера.
  • В Kubeflow каждый шаг конвейера изолирован в своем собственном контейнере, что значительно упрощает работу разработчика.
  • Специалисты по данным имеют легкий доступк полной вычислительной мощности кластера со своих ноутбуков.
  • Также возможно запускать задания SageMaker через компоненты Kubeflow, что позволяет нам пользоваться инструментами SageMaker, придерживаясь инфраструктуры Kubeflow.
  • Это очень гибкая и расширяемая структура, поскольку она полагается на Kubernetes для управления всем выполнением кода, управлением ресурсами и сетью.

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

II. Вспомогательные службы поверх Kubeflow

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

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

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

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

  1. Определите общие, но стандартные пайплайны в kubeflow, используя kfp.
  2. Разработайте внешнее приложение и модель службы реестра, которые позволят специалистам по обработке и анализу данных запускать указанные выше конвейеры, ноль знаний о kubeflow. Подумайте о сервисе, который принимает такие параметры, как репозиторий модели git, gitsha, репозиторий набора данных (DVC), набор данных-gitsha, гиперпараметры и многие другие, и использует их для запуска конвейера в Kubeflow.

Это делает процесс обучения/оценки/развертывания модели таким же простым, как заказ пиццы онлайн. Укажите несколько значений и отправьте задание.

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

Заинтригован? Пожалуйста, прочтите Часть III — Трубопроводы Kubeflow