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

В этой статье мы поговорим о Kubeflow, его общем введении.

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

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

Что такое Kubeflow?

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

Три принципа Kubeflow

Kubeflow построен на трех принципах:

1. Компонуемость

2. Портативность

3. Масштабируемость

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

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

Масштабируемость. Это означает, что наши проекты могут получать доступ к большему количеству ресурсов, когда они необходимы, и освобождать их, когда они не нужны. Каждая среда может иметь разные вычислительные ресурсы, такие как процессоры, графические процессоры и TPU, но нам также может потребоваться масштабирование между командами и проведением экспериментов. Он использует возможности Kubernetes, чтобы максимизировать доступные ресурсы и масштабировать с минимальными ручными усилиями.

ОБЗОР

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