Революция в архитектуре: от каскада к единой модели
Большинство промышленных рекомендательных систем строятся по принципу каскада: генератор кандидатов передает выборку в пререйтинг, а затем в тяжелый рейтер, использующий сотни вручную сконструированных признаков. Yandex в отчете по Sona предлагает иной подход. Система объединяет генерацию кандидатов и ранкинг в единый генеративный AI-модель, работающую на основе одного общего представления пользователя (shared user representation).
В отличие от предыдущей системы Argus, которая потребляла сотни инженерных признаков, Sona использует только логированные события (ID трека, артиста, длительность, лайки, время прослушивания) и выученные Semantic IDs. Это позволяет системе работать в режиме «чистых рекомендаций» на умных колонках, где пользователь не выбирает жанр или артиста заранее.
Техническое ядро: Семантический токенизатор и сжатие истории
Архитектура Sona опирается на три ключевых компонента:
- Semantic Tokenizer: Каждый трек кодируется в tuple из 3 дискретных кодов. Замороженная мультимодальная LLM анализирует мел-спектрограмму первых 90 секунд, заголовок и теги. Резидуальный K-means квантизует результат в 3 кодовые книги по 32 000 записей. Это дало прирост Recall@1000 с 0.8111 до 0.8524 по сравнению с базой CLMR.
- Encoder с сжатием истории: Модель учитывает до 8 192 прошлых событий. Для оптимизации затрат последние 2 048 событий обрабатываются через 7-слойный self-attention, а старые — через cross-attention. Это сохраняет качество полного внимания при снижении вычислительных затрат примерно вдвое.
- Decoder и Ranking Module: 2-слойный декодер генерирует кандидаты через beam search (ширина 1 024). Рейтер из 4 слоев cross-attention оценивает их против памяти энкодера.
Обучение: Дистилляция от учителя без ручных признаков
Рейтинг в Sona обучается методом Rollout Distillation. «Учитель» — это замороженная модель-трансформер на 0.6B параметров, обученная на году событий. Она не участвует в инференсе. Обучение происходит онлайн: события агрегируются за 15 минут, GPU-тренинг обновляет веса, и новые параметры попадают на сервер каждые 10 минут. Общая задержка (end-to-end latency) составляет 45 минут (медиана) и 60 минут (p99). Инференс работает на NVIDIA Triton Inference Server с использованием CUDA graphs, достигая 41% утилизации FLOPs модели.
Результаты A/B теста: Превосходство над Argus
Семидневный тест на 15% пользователей умных колонок показал статистически значимые улучшения относительно контрольной группы. Прирост наложен на улучшения, сохраненные от предыдущих деплоев. По активным пользователям прирост Sona в 2.35 раза выше, чем у предшественника Argus (+1.93%).
| Метрика | Изменение (+/-) | Примечание |
|---|---|---|
| Active Users | +4.53% | Основная метрика. В 2.35x эффективнее Argus |
| Total Listening Time | +6.30% | Общее время прослушивания |
| Likes | +11.42% | Количество лайков |
| Repeat Commands | +17.99% | Команды «повторить» |
| Deeply Engaged Users | +7.37% | Глубоко вовлеченные пользователи |
Сравнение с OneRec и HSTU
Sona вступает в конкуренцию с генеративными рекомендателями от Kuaishou (OneRec) и Meta (HSTU). Ключевое отличие Sona — полный отказ от ручных признаков (hand-engineered features) и использование дистилляции от учителя, тогда как OneRec применяет RL с моделью вознаграждения, а HSTU фокусируется на последовательной транзакции действий. Sona пока не опубликована в открытом доступе (нет кода и весов), но демонстрирует высокую эффективность в закрытом продакшене.
Источник: MarkTechPost ↗
