Kubeflow: новый проект для работы с машинным обучением в Kubernetes
Разработчики Google объявили о запуске нового проекта Kubeflow. Проект упрощает работу с машинным обучением, предоставляя необходимый инструментарий для масштабирования и настройки системы в среде Kubernetes. В статье расскажем:
- о компонентах Kubeflow;
- как начать работу с решением;
- о перспективах проекта.
/ фото Michael Hicks CC
В 2017 году произошли две вещи. Первая: Kubernetes зарекомендовал себя как стандарт для работы с кластером контейнеров. Это подтверждает опрос Portworx от 2017 года, в котором приняли участие 490 ИТ-специалистов из разных отраслей: Kubernetes используется как инструмент оркестровки контейнеров чаще, чем Docker Swarm, Amazon ECS или Azure Container. Вторая — машинное обучение, по мнению Gartner, оказалось на пике популярности.
Два этих фактора побудили Google создать Kubeflow — открытый проект, который упрощает работу с МО в Kubernetes и перенимает все достоинства этого инструмента оркестровки: возможность развёртки на разнообразной инфраструктуре (от ноутбука до продакшн-кластера), управление слабосвязанными микросервисами (loosely-coupled micro services) и масштабирование по требованию.
Компоненты Kubeflow
Код проекта хранится в Github-репозитории. Там вы найдете следующие компоненты:
- JupyterHub — сервер для создания и управления интерактивной средой Jupyter Notebook. С помощью JupyterHub можно делиться notebook-файлами, которые позволяют хранить вместе код, изображения, комментарии, формулы и диаграммы.
- Tensorflow Custom Resource (CRD), который может быть настроен для работы с центральными или графическими процессорами и подстроен под размер кластера.
- Контейнер для Tensorflow Serving — гибкой системы для развертки моделей машинного обучения в продакшн-среде. Компонент интегрируется с Tensorflow-моделями «из коробки», но подходит и для иных моделей и данных.
Разработчик программного обеспечения из компании Container Solutions Филип Уиндер (Philip Winder) отмечает, что Kubeflow — это гибрид JupyterHub и Tensorflow. В нем Tensorflow служит универсальным механизмом графовых вычислений, который позволяет программистам абстрагироваться от железа и использовать один код для работы с CPU и GPU. Именно поэтому одну и ту же модель можно развернуть как на ноутбуке, так и в облачном кластере.
Начало работы с Kubeflow
Для быстрого старта понадобятся:
- ksonnet версии 0.8.0 и старше;
- Kubernetes версии 1.8 (в нашем корпоративном блоге можно найти руководство по его настройке).
Для начала работы с Kubeflow, нужно выполнить следующие команды:
# Задаем значение ksonnet APP
APP_NAME=my-kubeflow
ks init ${APP_NAME}
cd ${APP_NAME}
# Устанавливаем компоненты Kubeflow
ks registry add kubeflow github.com/google/kubeflow/tree/master/kubeflow
ks pkg install kubeflow/core
ks pkg install kubeflow/tf-serving
ks pkg install kubeflow/tf-job
# Развертываем Kubeflow
ks generate core kubeflow-core --name=kubeflow-core --namespace=${NAMESPACE}
ks apply default -c kubeflow-core
Эти команды настраивают JupyterHub и Custom Resource для работы с обучающими выборками в TensorFlow. Кроме того, ksonnet-пакеты предоставляют прототипы для конфигурации задач TensorFlow и развертывания TensorFlow-моделей.
Подробные инструкции по использованию Kubeflow можно найти в официальном руководстве. Здесь можно ознакомиться с инструкцией от разработчиков, а тут — опробовать Kubeflow в браузере прямо сейчас.
Кстати, Майкл Хаузенблас (Michael Hausenblas), разработчик из Red Hat и соавтор книги Kubernetes Cookbook, создал сайт в помощь тем, кто работает с машинным обучением в Kubernetes. Там можно найти обзор основных инструментов и туториалы, в том числе и для Kubeflow.
Что дальше
Проект Kubeflow уже поддержали многие лидеры индустрии: CaiCloud, Red Hat, Canonical, Weaveworks, Container Solutions и другие.
Разработчики Дэвид Арончик (David Aronchick) и Джереми Льюи (Jeremy Lewi), которые работают в Google над Kubeflow, утверждают, что это только начало. В дальнейшем команда планирует привлекать больше партнеров, популяризировать идею и совершенствовать проект. Следить за развитием Kubeflow можно в канале Slack, подписавшись на email-рассылку и в Twitter.
P.S. Еще три материала из Первого блога о корпоративном IaaS:
- Организация блокчейн на VMware vSphere: от теории к практике
- Топ-4 рекомендаций к модернизации СХД
- IaaS: Первые шаги после аренды облачной инфраструктуры