Сообщество Kubeflow рада объявить о выпуске Kubeflow v0.6, в котором представлены новые примитивы для отслеживания артефактов и управления версиями данных в многопользовательских средах на основе Istio.

Комментарии ранних пользователей

Пер Джефф Фогарти, инженер по инновациям в US Bank, пользователь и участник Kubeflow: «Многопользовательская функциональность - это фундаментальный строительный блок, особенно для локальных сред, и мы рады интегрировать это усовершенствование в наше развертывание». Лаура Шорнак, которая использует Kubeflow в рамках партнерства City Scholars между Chase и Университетом Иллинойса, добавила: «Управление версиями данных, особенно для Kubeflow Pipelines, позволяет нам быстро делать снимки наборов данных и воссоздавать модели. Это значительно упрощает рабочие процессы и повышает производительность ».

Обзор новой функции

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

Kubeflow v0.6 расширяет доменно-специфический язык (DSL) Kubeflow Pipelines, добавляя новые примитивы, которые позволяют управлять версиями данных и контекста выполнения в Kubeflow Pipelines. Kubeflow Pipelines теперь предоставляет два новых ресурса: постоянный том и моментальный снимок тома. Оба они интегрированы с помощью стандартных примитивов Kubernetes PVC, поддерживаемых новейшими функциями интерфейса хранилища контейнеров (CSI).

v0.6 также обеспечивает безопасную архитектуру для многопользовательской поддержки за счет использования новой интеграции с Istio. Архитектура предоставляет гибкие возможности для интеграции Kubeflow со службами аутентификации в облачных и локальных средах.

Кроме того, Kubeflow 0.6 предоставляет несколько обновлений документации и новые ценные операционные и конфигурационные возможности, в первую очередь введение Kustomize в качестве полной замены ksonnet. Ниже приводится более подробная информация об основных поставках в Kubeflow 0.6:

Отслеживание артефактов

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

Kubeflow v0.6 содержит несколько улучшений, в том числе:

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

Новая архитектура позволяет отслеживать определение произвольных артефактов. Kubeflow v0.6 поставляется с тремя предопределенными артефактами:

  • Модели
  • Наборы данных
  • Метрики оценки

Модели и наборы данных можно визуализировать в веб-интерфейсе метаданных, чтобы конечные пользователи могли сразу же начать их отслеживание без дополнительной работы.

Ниже показаны улучшения отслеживания артефактов на примере обучения XGBoost с ведением журнала Fairing и метаданных для модели прогнозирования цен на жилье:

  • Увеличьте масштаб настройки ведения журнала метаданных, чтобы представить процесс обучения.

  • Пользовательский интерфейс метаданных: просмотр списка артефактов с фильтрацией и сортировкой.

  • Пользовательский интерфейс метаданных: детали модели для различных версий с разными HParams.

Управление версиями для объемов данных

Kubeflow v0.6 расширяет DSL Kubeflow Pipelines, чтобы беспрепятственно поддерживать использование постоянных томов и моментальных снимков томов как отдельных ресурсов Kubeflow Pipelines. Тома хранилища управляются стандартными, независимыми от поставщика примитивами Kubernetes, а именно объектами API PersistentVolumeClaim и VolumeSnapshot. Эти примитивы упрощают доставку постоянных объемов данных пользователям Kubeflow Pipelines и устраняют необходимость ручного управления низкоуровневыми объектами K8s в рамках рабочего процесса Pipeline. Теперь конвейеры могут обмениваться данными размером в несколько ГБ через стандартный файловый ввод-вывод на смонтированных постоянных томах без необходимости выгружать и выгружать данные во внешние хранилища объектов и из них.

В v0.6 Kubeflow Pipelines поддерживает управление версиями данных за счет интеграции с внешними системами хранения и управления данными. Например, примитивы легко добавляются к критическим этапам конвейера и обеспечивают неизменяемые моментальные снимки с управлением версиями. Кроме того, расширения позволяют упростить обмен данными между компонентами Kubeflow, то есть прикрепить результаты конвейеров к записным книжкам для дальнейших экспериментов. Они также закладывают основу, которая является кандидатом на функцию для нашего следующего выпуска: моментальный снимок всего контекста выполнения шага, включая данные (тома) и метаданные (объекты K8s).

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

В версии 0.6 мы сократили количество шагов, необходимых для создания и запуска конвейера в локальной среде, примерно на 50%. Специалистам по данным меньше нужно ждать, пока инженер машинного обучения создаст постоянные тома и загрузит данные в свои конвейеры (через файлы YAML и низкоуровневые команды кубернетов). Например, в популярной демонстрации Chicago Taxi Cab demo специалист по данным, разрабатывающий модели локально, теперь может построить и развернуть полный конвейер из записной книжки Python и пользовательского интерфейса Pipelines:



Улучшения трубопроводов

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

Мы также представили ряд улучшений удобства использования и пользовательского интерфейса, таких как упрощенное создание запусков, улучшенная визуализация метаданных конвейера, поддержка экспериментов по умолчанию и 10-кратное повышение производительности при обработке запросов пользовательского интерфейса. v0.6 также представил новый контроллер Kubernetes для управления экземплярами Tensorboard, которые тесно интегрированы с пользовательским интерфейсом.

SDK разработки конвейеров также был обновлен с добавлением ряда новых функций, а документация была полностью переработана. Примечательно, что SDK теперь позволяет упаковывать функции Python произвольной формы в виде компонентов конвейера.

Наконец, конвейеры сообщества продолжают расти, а также конвейеры, работающие против экземпляров Google Cloud, IBM Cloud и Watson, а также AWS Sagemaker. Полный список новых функций можно найти в журнале изменений.

Многопользовательская аутентификация и авторизация с SSO

Kubeflow v0.6 предоставляет гибкую архитектуру для многопользовательской изоляции и единого входа (SSO). Он использует пространства имен Istio и K8s, которые включают новый пользовательский ресурс K8s «Профили». Эти строительные блоки позволяют динамически создавать пространства имен для каждого пользователя, и по умолчанию каждый пользователь может работать изолированно. Помимо изоляции, новая функциональность Istio Kubeflow обеспечивает интеграцию со службами аутентификации, то есть LDAP и / или Active Directory, а также службами авторизации на основе RBAC. При необходимости эту конфигурацию можно установить и использовать в среде с воздушными зазорами, в которой нет подключения к Интернету. Подробное описание интеграции Istio с независимыми поставщиками OIDC на месте можно найти в этой публикации:



Операционные обновления и улучшения Kubeflow 0.6

Кроме того, Kubeflow v0.6 включает ценные операционные обновления и улучшения, в том числе замену ksonnet на kustomize. Технические группы Kubeflow и kustomize придерживаются схожей философии и уже совместно работают над расширенными вариантами использования. Пожалуйста, найдите краткое изложение Почему именно Kustomize? ниже:

  • Легче читать, YAML
  • Интегрирован с K8s
  • Команды уровня Kubectl, без дополнительных инструментов
  • Поддерживает общие потребности в настройке
  • изображения, env, секреты, карты конфигурации
  • Kustomize Overlays упрощают расширение
  • Поддержка сложной параметризации или настройки без PR
  • Не создает другого API

Кроме того, мы также рады объявить о двух операторах Kubernetes / Kubeflow, которые перешли от инкубации к выпуску: TFJob и PyTorchJob. Эти операторы усовершенствовали свой код, документацию, API v1 и планы тестирования.

Kubeflow doc sprint

Сообщество Kubeflow провело наш первый спринт документации 10–12 июля. В течение трех дней в часовых поясах по всему миру мы работали вместе, чтобы писать документацию и создавать образцы, которые помогают людям понять и использовать Kubeflow. Это позволило нам объединить 27 запросов на вытягивание и подсчет, закрывая 28 проблем с документами. Вы можете найти более подробную информацию в нашем блоге.

Что дальше

С этим выпуском у нас за поясом, сообщество начинает планировать выпуск v0.7, который будет сосредоточен на повышении удобства использования для специалистов по анализу данных. Некоторые рабочие области включают:

  • Упрощение создания и управления Tensorboard
  • Расширение функциональности метаданных за счет ведения журнала на уровне кластера и значений параметров из подсистем Kubeflow, то есть Pipelines, Katib, TFJob и т. Д.
  • Создание диспетчера томов на основе графического интерфейса для упрощения доступа и обмена данными между подсистемами Kubeflow и между пользователями.
  • Определение операционных улучшений, таких как упрощенная возможность обновления для Kubeflow и его API.
  • Предлагает дополнительные архитектурные опции для многопользовательской аутентификации и авторизации, как подробно описано в этом Многопользовательском критическом пути пользователя (CUJ).

Вы можете следить за нашим выпуском на доске 0.7 Kanban. Дорожная карта Kubeflow направляет наше развитие в сторону Kubeflow 1.0, и мы приветствуем ваш вклад!

Развитие, управляемое сообществом

Мы приложили много усилий для улучшения стабильности Kubeflow, подгонки и доработки более 150 закрытых задач и 250+ объединенных PR. Для этого выпуска сообщество собрало обширный вклад конечных пользователей из Kubecon Barcelona, опросов пользователей Kubeflow, встреч сообщества Kubeflow и нескольких обзоров клиентских пользовательских путешествий (CUJ), которые мы используем для определения основных возможностей, которые необходимо создать для каждого выпуска.

Наконец, спасибо всем, кто внес свой вклад в v0.6! Kubeflow - это дом для 150+ участников из 25+ организаций, работающих вместе над созданием переносимого и масштабируемого стека машинного обучения на базе Kubernetes, и нам нужна еще дополнительная помощь. Вот как принять участие:

Спасибо Джеффу Фогарти (Банк США), Лауре Шорнак (Городские ученые / Чейз), Константиносу Венетсанопулосу (Аррикто), Анимешу Сингху (IBM), Джону Джорджу (Cisco), Чжэнхуи Вангу, Павлу Дурнову, Саре Мэддокс, Абишеку Гупте. , Ананд Айер, Аджай Гопинатан и Теа Ламкин (все сотрудники Google) за помощь в написании этого сообщения.