Offline batch vs online inference в RecSys
Модель ранжирования готова. Как вывести ее в прод: offline batch или online inference?
Короткий ответ
Для 1500 видео рационален offline scoring с хранением top-N; online inference нужен при высокой свежести фичей или сложной персонализации в момент запроса.
Полный разбор
Offline путь: регулярный job считает рекомендации, кладет user_id -> list(video_id, score) в Redis/Postgres/feature store, а API быстро отдает список с fallback. Online путь: сервис получает user/context, собирает свежие фичи, скорит модель и отвечает в latency budget.
В обоих вариантах нужны Docker/CI, orchestration, мониторинг freshness, coverage, latency, errors, data/model drift и fallback на baseline при пустом ответе или деградации сервиса.
Теория
Serving design выбирается по freshness, latency, cost и failure mode, а не по тому, какая модель кажется красивее.
Типичные ошибки
- Не назвать SLO.
- Не описать fallback.
- Не мониторить freshness и coverage.
Как отвечать на собеседовании
- Начни с требований latency/RPS/freshness.
- Объясни, почему для малого candidate set batch может быть лучше.