Как стать автором
Обновить
81.57
Nixys
DevOps, DevSecOps, MLOps — системный IT-интегратор

Что такое Kubeflow? Основы машинного обучения с Kubeflow

Время на прочтение4 мин
Количество просмотров10K
Автор оригинала: Jonathan Johnson

У фотографов есть Photoshop, у архитекторов — AutoCAD, а у инженеров машинного обучения — Kubeflow. Каждый получает свои преимущества от использования специализированного программного обеспечения, инженеры ML — не исключение.


В этой статье разберем чем полезен и как работает Kubeflow.


Что такое Kubeflow?


Kubeflow — это бесплатная платформа для машинного обучения с открытым исходным кодом, которая позволяет пайплайнам/конвейерам машинного обучения управлять комплексными рабочими процессами Kubernetes. Kubeflow был выпущен в 2017-ом разработчиками из Google, Cisco, IBM, Red Hat и других компаний. Официальный выпуск версии 1.0 был осуществлен в этом году.


Набор инструментов Kubeflow облегчает работу инженерам по следующим параметрам:


  • Разработка моделей машинного обучения
  • Анализ производительности модели
  • Настройка гиперпараметров
  • Тестирование моделей
  • Управление вычислительными мощностями
  • Развертывание моделей в рабочей среде

Все это можно сделать на любом облачном провайдере и в любом месте, где есть Kubernetes.


"Kube" в Kubeflow перешел от инструмента оркестровки контейнезированных приложений Kubernetes. Kubeflow работает в кластерах Kubernetes локально или в облаке, позволяя с легкостью обучать модели машинного обучения на нескольких компьютерах, ускоряя время обучения модели. "Flow" означает, что Kubeflow стоит наряду с другими планировщиками рабочих процессов, такими как ML Flow, FBLearner Flow и Airflow.


Kubeflow и машинное обучение


Kubeflow является основным продуктом для команд MLOps. Она помогает организовывать ход работы в проектах, эффективно осуществлять облачные вычисления и позволяет инженеру ML по-настоящему погрузиться в работу и создавать максимально впечатляющие модели. Менеджер Kubeflow коммьюнити Теа Ламкин отмечает:


"Цель Kubeflow — облегчить инженерам машинного обучения (ML) и экспертам по аналитическим данных использование облачных ресурсов (общедоступных или локальных) в рабочих процессах ML".

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


К примеру, все эти аспекты являются частью построения модели машинного обучения:



"Благодаря Kubeflow, один из моих инженеров сократил срок развертывания модели с 8-ми недель до одного дня" — ML-инженер Spotify.

Выпуск Kubeflow 1.0


Kubeflow официально запустил версию 1.0 в марте 2020. Результаты работы команды отображены на доске Kanban.


Варианты применения Kubeflow


Kubeflow можно использовать для:


  • Ведения документации
  • Платформы Multi-cloud
  • Инструментов мониторинга
  • Управления рабочим flow
  • Внедрения модели

Давайте рассмотрим каждый пункт по отдельности.


Ведение документации


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


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


Документация Kubeflow проста как для понимания, так и для применения. Вне зависимости от того, какая задача стоит перед девелопером — начать процесс, настроив свой первый конвейер/пайплайн или приняться за более сложную задачу в виде отката своей модели к предыдущим настройкам — с документацией Kubeflow максимально просто работать и находить то, что необходимо.


Платформа Multi-cloud


Kubeflow — это инструмент с открытым исходным кодом. Изначально он был разработан как инструмент внутреннего пользования Google в Google Tensorflow, в виде расширения на Kubernetes. Так как это довольно молодой проект, Kubeflow еще не получил своего финансирования от Google, но создатели, участники и инженеры ML-инженеры, использующие его, уже убедились в его уникальных преимуществах и продолжают расширять платформу.


С момента создания Kubeflow работает везде, где есть Kubernetes, и позволяет работать с любыми архитектурами. Для использования на облачном провайдере, Kubeflow предполагает особую документацию по настройке:



Инструменты мониторинга


Kubeflow интегрирует Tensorboard в свои функции. Tensorboard предоставляет инструменты для визуализации процесса машинного обучения. Как учат в Хаос-инжиниринг, визуализация процесса помогает избежать возникновения неполадок. Возможность контролировать тренировочный процесс помогает командам MLOps:


  1. Точно настроить параметры модели.
  2. Сэкономить ресурсы, остановив обучение, если будет видно, что модель неэффективна.
  3. Ускорить время сборки за счет быстрой итерации.




Управление рабочими процессами


На этой диаграмме показано выполненное задание в Kubeflow.


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


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


Развертывание модели


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


Существует несколько способов развертывания модели из Kubeflow, к примеру, инструмент KFserving tool. Наряду со многими другими, KFserving работает в облаке и в режиме реального времени. Данный инструмент интегрируется с несколькими платформами машинного обучения, включая:


  • TensorFlow
  • PyTorch
  • SciKit Learn

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

Теги:
Хабы:
+8
Комментарии0

Публикации

Информация

Сайт
nixys.ru
Дата регистрации
Дата основания
Численность
51–100 человек
Местоположение
Россия
Представитель
Vlada Grishkina-Makareva