У фотографов есть Photoshop, у архитекторов — AutoCAD, а у инженеров машинного обучения — Kubeflow. Каждый получает свои преимущества от использования специализированного программного обеспечения, инженеры ML — не исключение.  В этой статье разберем чем полезен и как работает 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 является основным продуктом для команд MLOps. Она помогает организовывать ход работы в проектах, эффективно осуществлять облачные вычисления и позволяет инженеру ML по-настоящему погрузиться в работу и создавать максимально впечатляющие модели. Менеджер Kubeflow коммьюнити Теа Ламкин отмечает: По словам участников команды Kubeflow, для создания модели машинного обучения требуется многое, что выходит далеко за рамки простого понимания статистики и нейронных сетей. Это не просто написание ML-кода. Kubeflow помогает управлять всем этим в пределах всего лишь одной платформы. К примеру, все эти аспекты являются частью построения модели машинного обучения: Kubeflow официально запустил версию 1.0 в марте 2020. Результаты работы команды отображены на доске Kanban. Kubeflow можно использовать для: Давайте рассмотрим каждый пункт по отдельности. Во-первых, платформы с открытым исходным кодом не обязательно должны иметь документацию. Если его создатели хотят, чтобы другие использовали его, то документация помогает рассказать людям о возможностях их библиотеки программного обеспечения и дать инструкции по ее применению. Документация полезна для сообществ с открытым исходным кодом, где проекты часто передаются из уст в уста, подбираются и используются просто так, из любопытства. Если упаковку можно использовать, разработчики найдет ей применение. Если нет — двигаемся дальше. Kubeflow обладает поразительным качеством документации, обычно несвойственным проектам на начальном этапе. Стандарт совершенства, которого придерживаются авторы, поразителен, что положительно сказывается на эффективности выполнения поставленных задач. Документация Kubeflow проста как для понимания, так и для применения. Вне зависимости от того, какая задача стоит перед девелопером — начать процесс, настроив свой первый конвейер/пайплайн или приняться за более сложную задачу в виде отката своей модели к предыдущим настройкам — с документацией Kubeflow максимально просто работать и находить то, что необходимо. Kubeflow — это инструмент с открытым исходным кодом. Изначально он был разработан как инструмент внутреннего пользования Google в Google Tensorflow, в виде расширения на Kubernetes. Так как это довольно молодой проект, Kubeflow еще не получил своего финансирования от Google, но создатели, участники и инженеры ML-инженеры, использующие его, уже убедились в его уникальных преимуществах и продолжают расширять платформу. С момента создания Kubeflow работает везде, где есть Kubernetes, и позволяет работать с любыми архитектурами. Для использования на облачном провайдере, Kubeflow предполагает особую документацию по настройке: Kubeflow интегрирует Tensorboard в свои функции. Tensorboard предоставляет инструменты для визуализации процесса машинного обучения. Как учат в Хаос-инжиниринг, визуализация процесса помогает избежать возникновения неполадок. Возможность контролировать тренировочный процесс помогает командам MLOps: На этой диаграмме показано выполненное задание в Kubeflow.
 Аналогично мониторингу, инструмент управления рабочими процессами позволяет инженерам самостоятельно управлять своим временем. Подобно тому, как рендеринг служит видеоредакторам, Kubeflow помогает ML-инеженерам сэкономить время на перемещении данных и обучении моделей. Kubeflow показывает, где находится необходимое задание в списке задач, а когда задания завершены, все участники процесса получат Slack-уведомление о завершении работы над пайплайном. Благодаря инструментам управления flow работы, инженер сможет организовать порядок машинного обучения гораздо более эффективно, сэкономив время для решения дополнительных задач. И наконец, важно отметить, что ни одна модель не является завершенной/полной, если она просто стоит на полке или осталась в планах Jupyter. Модели должны быть развернуты, чтобы можно было делать конкретные выводы. Существует несколько способов развертывания модели из Kubeflow, к примеру, инструмент KFserving tool. Наряду со многими другими, KFserving работает в облаке и в режиме реального времени. Данный инструмент интегрируется с несколькими платформами машинного обучения, включая: Поскольку он использует Kubernetes в качестве базы, ресурсы будут автоматически масштабироваться по мере увеличения использования модели. Управляющий партнер / CVO @ Nixys