Введение
Feast — это open-source feature store для machine learning. Он помогает командам использовать одни и те же определения feature в обучении моделей, пакетном scoring и online inference, уменьшая training-serving skew и дублирование работ по feature engineering.
В Alauda Build of Feast Feast обычно разворачивается на Kubernetes через Feast Operator. Каждый deployment управляется пользовательским ресурсом (CR) FeatureStore. Один CR FeatureStore может создавать основные сервисы Feast, такие как online feature server, offline feature server, registry server и UI.
Содержание
Типичные требованияУправляемые ресурсыОсновные концепцииProjectEntityData SourceFeature ViewFeature ServiceRegistryMaterializationPush SourcePermissionТипичный workflowОбязанности OperatorДополнительные материалыТипичные требования
Feast обычно используется, когда платформе нужен более единообразный способ:
- управлять определениями feature в общем каталоге
- использовать одни и те же определения feature в обучении, пакетном scoring и online inference
- централизованно управлять freshness, materialization и политиками доступа
Feast предоставляет эти возможности через общий registry, online и offline stores, а также стандартный workflow для регистрации, materialization, serving и управления доступом.
Управляемые ресурсы
В Kubernetes-развертывании, управляемом Feast Operator, FeatureStore обычно создает или управляет следующими ресурсами:
- Offline store: хранит исторические данные feature и поддерживает генерацию training dataset или backfilling.
- Online store: хранит последние значения feature для low-latency online reads во время inference.
- Registry: хранит метаданные, такие как entities, feature views, feature services и permissions.
- UI: предоставляет веб-интерфейс для просмотра метаданных feature и состояния сервисов.
- Конфигурация клиента: оператор также создает ConfigMap, содержащий клиентский
feature_store.yaml, чтобы клиентские приложения и jobs могли подключаться к развернутым сервисам.
Основные концепции
Следующие понятия наиболее важны при начале работы с Feast:
Project
Project в Feast — это изолированное логическое рабочее пространство. Определения feature, permissions и объекты registry организуются по project. В Alauda Build of Feast имя project задается с помощью spec.feastProject в CR FeatureStore.
Entity
Entity — это бизнес-ключ, используемый для получения feature, например user_id, driver_id или merchant_id.
Data Source
Data Source описывает, откуда поступают сырые данные feature. Примеры включают файлы, data warehouses или push sources.
Feature View
Feature view определяет:
- к какой entity относится feature
- откуда поступают исходные данные
- какие поля доступны как feature
- должны ли feature обслуживаться online
На практике feature view обычно является основным объектом, который пользователи регистрируют и materialize.
Feature Service
Feature service группирует одну или несколько feature в повторно используемый набор для модели или версии приложения. Это помогает поддерживать一致ность выбора feature между обучением и serving.
Registry
Registry хранит метаданные Feast, а не значения feature. Это источник истины для зарегистрированных объектов, таких как entities, feature views, feature services и permissions.
Materialization
Materialization копирует значения feature из offline source в online store, чтобы их можно было получать с low latency во время inference.
Push Source
Push source позволяет приложениям или потоковым jobs записывать свежие значения feature непосредственно в Feast, либо в online store, либо в offline store, либо в оба.
Permission
Permissions определяют, кто может читать или изменять объекты и данные Feast. В Alauda Build of Feast распространенная конфигурация объединяет:
- Kubernetes
RoleиRoleBinding - объекты Feast
Permissionс использованиемRoleBasedPolicy
Это позволяет предоставлять разным пользователям или workload'ам доступ только на чтение или на чтение и запись.
Типичный workflow
Типичный workflow Feast:
- Установить Feast Operator.
- Создать CR
FeatureStoreдля развертывания сервисов Feast. - Определить entities, feature views, feature services и permissions в feature repository.
- Выполнить
feast applyдля регистрации метаданных в registry. - Materialize или push данные feature в online store.
- Читать feature из клиентских приложений, batch jobs или online services.
Обязанности Operator
По сравнению с ручным развертыванием Feast, Feast Operator управляет ресурсами Kubernetes, необходимыми Feast. Примеры включают:
- создание и reconciliation Deployment и Service Feast
- инициализацию feature repository или клонирование его из Git
- подготовку persistent storage на основе PVC для offline, online и registry data
- создание необязательных объектов Kubernetes
Role, используемых авторизацией Feast - публикацию информации о подключении через CR status и client ConfigMap
Дополнительные материалы
В этом наборе документации:
Официальные справочные материалы Feast: