Мы оценили ряд инструментов и фреймворков, используемых в отрасли.
- 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, между командами не будет согласованности в плане подготовки данных, обучения моделей, оценки и развертывания. Это очень скоро станет кошмаром обслуживания.
Вспомогательные службы на помощь
Чтобы решить две вышеупомянутые проблемы, мы разбиваем выполнение конвейера на две части:
- Определите общие, но стандартные пайплайны в kubeflow, используя kfp.
- Разработайте внешнее приложение и модель службы реестра, которые позволят специалистам по обработке и анализу данных запускать указанные выше конвейеры, ноль знаний о kubeflow. Подумайте о сервисе, который принимает такие параметры, как репозиторий модели git, gitsha, репозиторий набора данных (DVC), набор данных-gitsha, гиперпараметры и многие другие, и использует их для запуска конвейера в Kubeflow.
Это делает процесс обучения/оценки/развертывания модели таким же простым, как заказ пиццы онлайн. Укажите несколько значений и отправьте задание.
На момент написания этой статьи многие группы машинного обучения в моей организации ждали возможности присоединиться к платформе и начать использовать ее для своих повседневных экспериментов, обучения и развертывания.
Заинтригован? Пожалуйста, прочтите Часть III — Трубопроводы Kubeflow