Kubeflow
Kubeflow — построенная на Kubernetes и представленная Google платформа с открытым кодом, предназначенная для машинного обучения и MLOps практик. Различные этапы в типичном жизненном цикле машинного обучения представлены разными компонентами программного обеспечения в Kubeflow, включая разработку модели (Kubeflow Notebooks[4]), тренировку модели (Kubeflow Pipelines[5], Kubeflow Training Operator[6]), использование модели (KServe[a][7]), и автоматическое машинное обучение (Katib[8]).
Каждый компонент Kubeflow может быть развернут отдельно, также нет требования развертывать каждый компонент[9].
Общие сведения
| Kubeflow | |
|---|---|
| Тип | Платформа для машинного обучения |
| Автор | |
| Разработчики | Kubeflow Contributors[1] - AWS, Bloomberg, Google (компания), IBM, NVIDIA, Nutanix, Red Hat, Arrikto, and others |
| Написана на | Go, Python |
| Первый выпуск | 5 апреля 2018[2] |
| Аппаратная платформа | Kubernetes |
| Последняя версия | 1.6[3] (7 сентября 2022) |
| Репозиторий | github.com/kubeflow |
| Лицензия | Apache License 2.0 |
| Сайт | kubeflow.org |
История
Проект Kubeflow был впервые анонсирован на конференции KubeCon + CloudNativeCon North America 2017 инженерами Google Дэвидом Арончиком, Джереми Леви и Вишну Каннаном для устранения предполагаемой нехватки гибких возможностей для построения систем машинного обучения готовых к запуску на производстве[10]. Было также заявлено, что проект начался как способ компании Google сделать открытым код, с помощью которого в компании используется TensorFlow[11].
Первый выпуск Kubeflow (Kubeflow 0.1) был анонсирован на конференции KubeCon + CloudNativeCon Europe 2018[12] с утверждениями, что он уже стал одним из верхних 2 % проектов на GitHub за всё время существования сервиса[13]. Kubeflow 1.0 был выпущен в марте 2020 года в публичном посте анонсирующим перевод множества компонентов Kubeflow в «стабильный статус», обозначая, что они стали готовы для производственного использования[14].
Компоненты
Kubeflow Notebooks для разработки модели
Модели машинного обучения разрабатываются в компоненте записной книжки называемым Kubeflow Notebooks. Компонент использует web среды разработки внутри Kubernetes кластера, с родной поддержкой Jupyter Notebook, Visual Studio Code, и RStudio[15].
Kubeflow Pipelines для обучения модели
После разработки модели обучаются в компоненте Kubeflow Pipelines. Компонент служит платформой для построения и развертывания портируемого, масштабируемого рабочего процесса машинного обучения, основанного на контейнерах Docker[16]. Облачная платформа Google адаптировала Kubeflow Pipelines DSL для использования внутри своего продукта Vertex AI Pipelines[17].
Kubeflow Training Operator для обучения модели
Для некоторых моделей машинного обучения и библиотек, компонент Kubeflow Training Operator предоставляет поддержку пользовательских ресурсов Kubernetes. Компонент позволяет запускать как распределенные, так и не распределенные работы для обучения с использованием TensorFlow, PyTorch, Apache MXNet, XGBoost, и MPI на Kubernetes[6].
KServe для использования модели
Компонент KServe (ранее называемый KFServing[18]) предоставляет пользовательские ресурсы Kubernetes для использования моделей машинного обучения с помощью различных фреймворков включая TensorFlow, XGBoost, scikit-learn, PyTorch, и ONNX[19]. KServe был разработан совместно Google, IBM, Bloomberg, NVIDIA, и Seldon[18]. Публично раскрытые пользователи KServe включают Bloomberg[20], Gojek[21], и прочих[22].
Katib для автоматического машинного обучения
Наконец, Kubeflow включает компонент для автоматического обучения и разработки моделей машинного обучения — Katib компонент. Он описывается как родной проект Kubernetes и позволяет производить настройку гиперпараметров, раннюю остановку и поиск нейронной архитектуры[23].
Хронология выпусков
Дополнение
Примечания
Ссылки
- kubeflow.org — официальный сайт Kubeflow
- Проект Kubeflow на сайте GitHub