Яндекс представил Sona — генеративный рекомендатель, который заменил целый каскад моделей
Большинство продакшн-рекомендательных систем — это каскады: отдельные модели генерируют кандидатов, пре-ранкер фильтрует, тяжёлый ранкер с сотнями признаков выдаёт финальный результат. Яндекс в техническом отчёте описал Sona — генеративную модель, которая делает всё за один проход. В онлайн-эксперименте на умных колонках она заменила более 15 генераторов кандидатов, этап пре-ранжирования и этап ранжирования одним трансформером.
Архитектура Sona состоит из трёх частей. Семантический токенизатор кодирует каждый трек в три дискретных кода (Semantic ID) на основе аудио и метаданных — Recall@1000 вырос с 0,811 до 0,852. Кодировщик обрабатывает историю из 8192 событий, уделяя больше внимания последним 2048, что снижает затраты на инференс вдвое почти без потери качества. Декодер с ограниченным лучевым поиском генерирует кандидаты, а модуль ранжирования из четырёх слоёв cross-attention оценивает их на основе общего представления пользователя.
Обучение использует дистилляцию: учитель (0,6B-параметровый трансформер без ручных признаков) оценивает кандидаты, а модуль ранжирования регрессирует на его оценки. Учитель обучается на годе событий вовлечения и отбрасывается при инференсе. Обновление весов происходит каждые 10 минут на потоке данных с 15-минутными окнами. На серверах NVIDIA Triton Inference Server модель достигает 41% утилизации FLOPs, медианная задержка — 45 минут (p99 — 60 минут).
Результаты онлайн A/B-теста на живом трафике показали, что Sona не уступает каскадной системе, а по некоторым метрикам превосходит её, при этом полностью устраняя необходимость в ручной разработке признаков и раздельном обучении этапов. Это первый известный случай, когда генеративная модель заменила полный каскад рекомендаций в продакшне.