Feature Store на собеседовании Data Scientist

Готовься к собесу аналитика как в Duolingo
10 минут в день — SQL, Python, A/B, метрики. 1700+ вопросов в Telegram
Открыть Карьерник в Telegram

Карьерник — Duolingo для аналитиков: 10 минут в день тренируй SQL, Python, A/B, статистику, метрики и ещё 3 темы собеса. 1500+ вопросов в Telegram-боте. Бесплатно.

Зачем разбирать на собесе

Feature store решает train/serve skew — главный production ML pain. На собесе DS / MLE: «зачем feature store», «отличие online и offline».

Что такое feature store

Централизованный сервис для:

  • Хранения и версионирования features.
  • Train/serve consistency.
  • Sharing между ML-командами.
  • Time-travel queries (point-in-time correct).

Concept:

Raw data → Feature pipelines → Feature Store → Train + Serve

Один источник истины для features.

Offline vs online store

Offline store — для batch training.

  • Стек: Snowflake, BigQuery, S3 + Parquet, ClickHouse.
  • Time-travel queries: «что было известно на момент X».
  • Большой объём (terabytes).
  • High throughput, latency не важна.

Online store — для real-time inference.

  • Стек: Redis, DynamoDB, Cassandra.
  • Low latency (< 10ms p99).
  • Текущие значения, без истории.
  • Меньший объём (последний state on каждый user/item).

Один feature может быть в обоих. Pipeline синхронизирует:

Source → Feature transform → Offline (batch) → Online (sync)
                                  ↓                    ↓
                              Training            Inference

Train/serve consistency

Главная проблема.

  • При training используем сложные SQL-агрегации в DWH.
  • При serving — нужны те же features за миллисекунды.
  • Если transformation пишется отдельно для train и serve — дрейф (skew) → модель деградирует.

Решение feature store.

  • Один definition feature → автоматически выполняется в offline (batch) и online (real-time).
  • Backend гарантирует консистентность.
@feature(...)
def avg_orders_30d(user_id):
    return SELECT AVG(amount) FROM orders WHERE user_id = X AND ts > NOW() - 30d

В offline — запрос в DWH с time travel. В online — pre-computed value в Redis.

Готовься к собесу аналитика как в Duolingo
10 минут в день — SQL, Python, A/B, метрики. 1700+ вопросов в Telegram
Открыть Карьерник в Telegram

Tools: Feast, Tecton

Feast. Open source feature store. Декларативные definitions, плагины для разных backends.

from feast import FeatureView, Entity

user = Entity(name="user_id")

avg_orders = FeatureView(
    name="user_avg_orders",
    entities=[user],
    source=BigQuerySource(table="metrics.user_avg_orders"),
    online_store=RedisOnlineStore(...)
)

Tecton. Managed feature store + computation. Полный workflow от raw data до features.

Hopsworks. Альтернатива open source.

Sagemaker Feature Store, Vertex AI Feature Store. Облачные.

Custom. Часто компании пишут свой простой store на Postgres + Redis.

Когда нужен

Подходит:

  • Несколько ML-моделей share общие features.
  • Нужны real-time predictions.
  • Train/serve skew — реальная проблема.
  • ML-team большая (5+ человек).

Overkill:

  • Одна модель на одной команде.
  • Только batch inference.
  • < 10 features.
  • MVP.

Частые ошибки

Считать FS panacea. Feature store не учит модель — это инструмент для consistency.

Online store без TTL. Старые features копятся, занимают память.

Не делать point-in-time correctness. Tutorials часто игнорируют. Без time-travel — leakage из будущего в прошлое.

Тяжёлые transformation в online store. Online должен быть lookup, не recompute. Heavy compute — в offline pipeline.

Игнорировать backfill. Если feature не существовал — сначала backfill для исторических данных, потом start serving.

Связанные темы

FAQ

Feast — production-ready?

Да. Используется в production в большом числе компаний (Tubi, Twitter и др).

Feature store vs DWH?

DWH хранит данные. Feature store — sub-product DWH с фокусом на ML serving + train/serve consistency.

Это официальная информация?

Нет. Статья основана на документации Feast / Tecton.


Тренируйте Data Science — откройте тренажёр с 1500+ вопросами для собесов.