Настройка Feature Store (Feast, Tecton) для управления признаками
Feature Store решает одну из самых болезненных проблем production ML: рассинхронизацию признаков между обучением и инференсом (training-serving skew). Когда инженер по данным вычисляет признак одним способом в Jupyter, а бэкенд-разработчик — другим в production-коде, модель деградирует незаметно и причину найти крайне сложно.
Архитектурные компоненты Feature Store
Любой Feature Store состоит из двух хранилищ:
Offline store — для обучения моделей. Хранит исторические значения признаков с временными метками. Обычно это BigQuery, Redshift, Snowflake или Parquet-файлы в S3. Поддерживает point-in-time correct joins — критически важно, чтобы при подготовке обучающей выборки не было data leakage из будущего.
Online store — для инференса в реальном времени. Хранит только последние значения признаков с задержкой запроса <10мс. Используется Redis, DynamoDB, Cassandra или Bigtable.
Feast: open-source вариант
Feast — наиболее распространённый open-source Feature Store. Настройка включает:
- Определение источников данных (BigQuery table, Kafka topic, файлы)
- Описание Feature Views в Python-коде:
from feast import FeatureView, Field, FileSource
from feast.types import Float64, Int64
user_stats = FeatureView(
name="user_stats",
entities=["user_id"],
ttl=timedelta(days=7),
schema=[
Field(name="purchase_count_7d", dtype=Int64),
Field(name="avg_order_value", dtype=Float64),
Field(name="days_since_last_purchase", dtype=Int64),
],
source=FileSource(path="s3://bucket/user_stats.parquet"),
)
- Настройка materialization — процесса синхронизации offline → online store по расписанию
- Интеграция SDK в код обучения и инференса
Расписание materialization настраивается через Airflow, Prefect или встроенный scheduler:
feast materialize-incremental $(date +%Y-%m-%dT%H:%M:%S)
Tecton: enterprise-вариант
Tecton предоставляет управляемый Feature Store с дополнительными возможностями:
- Streaming features — вычисление признаков из Kafka/Kinesis в режиме реального времени с latency <100мс
- On-demand features — вычисление признаков в момент запроса на основе контекста (например, признаки, зависящие от текущего запроса пользователя)
- Автоматический мониторинг дрифта признаков
- Feature lineage — отслеживание, какие модели используют какие признаки
Типичный use case Tecton: банк, где признаки для скоринга мошенничества должны вычисляться на основе последних 5 минут транзакций в реальном времени.
Процесс внедрения
| Неделя | Задачи |
|---|---|
| 1 | Аудит существующих признаков, выбор offline/online хранилищ |
| 2 | Установка и настройка Feast/Tecton, первый Feature View |
| 3 | Миграция 20-50 ключевых признаков, настройка materialization |
| 4 | Интеграция в обучающий пайплайн и инференс-сервис |
| 5-6 | Мониторинг, документация, обучение команды |
Метрики после внедрения
- Training-serving skew: снижается до нуля для мигрированных признаков
- Время подготовки новой обучающей выборки: с нескольких часов до 5-15 минут
- Повторное использование признаков между командами: 40-60% признаков новых моделей уже есть в store
- Latency получения признаков для инференса: p99 < 10мс при использовании Redis online store
Выбор между Feast и Tecton
Feast подходит для команд с собственной инфраструктурой, бюджетом на DevOps и требованием к гибкости. Tecton — для enterprise-компаний, где критична поддержка streaming features и готовый SLA. Также существуют Feature Store как часть облачных платформ: Vertex AI Feature Store (GCP), SageMaker Feature Store (AWS), Databricks Feature Engineering.







