Помогаю выстроить хранилище признаков (feature store) на Feast так, чтобы модель получала идентичные признаки на этапе обучения и при онлайн-инференсе. Проблема training/serving skew коварна: один и тот же признак в батч-пайплайне и в сервисе выдачи считается с мелкими отличиями, и это тихо портит качество, а докопаться до причины по метрикам почти нереально. Я закрываю этот источник ошибок — признак задаётся единожды и раздаётся из одного места.
Беру на себя всё: модель сущностей и определения признаков, офлайн-стор для исторической выборки, онлайн-стор с быстрой отдачей, а также корректные по времени (point-in-time) соединения, исключающие утечку будущего в таргет. Поднимаю ingestion-пайплайны, настраиваю материализацию по расписанию и слежение за свежестью и дрейфом признаков. Конфигурация лежит в репозитории и полностью воспроизводима.
В результате у вас появляется понятный каталог признаков для повторного использования разными командами, короче цикл от гипотезы до боевого сервиса, а числа в обучении и в проде сходятся. Работаю как с чистого листа, так и с уже начатой, но забуксовавшей интеграцией, и оставляю документацию, чтобы поддержка не зависела от меня.
Беру на себя всё: модель сущностей и определения признаков, офлайн-стор для исторической выборки, онлайн-стор с быстрой отдачей, а также корректные по времени (point-in-time) соединения, исключающие утечку будущего в таргет. Поднимаю ingestion-пайплайны, настраиваю материализацию по расписанию и слежение за свежестью и дрейфом признаков. Конфигурация лежит в репозитории и полностью воспроизводима.
В результате у вас появляется понятный каталог признаков для повторного использования разными командами, короче цикл от гипотезы до боевого сервиса, а числа в обучении и в проде сходятся. Работаю как с чистого листа, так и с уже начатой, но забуксовавшей интеграцией, и оставляю документацию, чтобы поддержка не зависела от меня.