Архитектура: от маршрутизации до блендера
Discovery AI — это не просто поисковая строка, а комплексная система, объединяющая LLM, семантический поиск и рекомендательные алгоритмы. Ключевая метрика производительности: задержка от запроса до первого токена ответа составляет менее 500 мс. Система работает с многомиллиардной контентной базой VK, охватывая Дзен, VK Видео, Медиапроекты Mail и другие сервисы.
Поисковый конвейер построен на симбиозе двух подходов:
- BM25: ловит точные совпадения, словоформы и редкие термины.
- Семантический ANN-поиск: использует Approximate Nearest Neighbors для анализа смысловой близости и синонимии в многомерном пространстве.
После получения кандидатов из изолированных вертикалей работает «блендер», который назначает динамические веса приоритетам, дедуплицирует дубликаты (например, перезаливы контента) и смешивает результаты по алгоритму Round-Robin, чтобы избежать доминирования одного источника.
Производительность и оптимизация инференса
Главное техническое достижение — способность модели обрабатывать до 30 000 чанков в секунду на одном GPU среднего консьюмерского уровня. Это стало возможным благодаря ряду глубоких оптимизаций:
- Кастомный токенизатор BPE: обучен на соцсетях и новостях. Достигнута рекордная для open-source русскоязычных моделей фертильность 1.2 (12 токенов на 10 слов) при словаре в 128k. Это дало чистый прирост скорости инференса на ~50%.
- Knowledge Distillation: обучение маленькой модели (student) на сигналах большой (teacher) с минимальной потерей качества.
- QAT & Structured Sparsity: применение симуляции INT8-квантования и разреженности 2:4 в связке с движком TensorRT.
Детали обработки контекста
Для отсечения нерелевантного шума используется кастомная BERT-like модель ранжирования. Документы режутся на чанки с перекрытием: сумма токенов запроса и чанка не превышает 320, перекрытие между чанками — 160 токенов. Это позволяет удерживать фиксированный размер контекста для LLM, отсекая «бутылочное горлышко» лишней информации.
Датасеты и обучение
Вместо перефразирования сложных запросов (что увеличивает задержку), инженеры VK научили движок понимать длинные и сложносоставные интенты напрямую. Для этого был собран датасет из миллиардов качественных синтетических разметок, так как стандартные логи классического поиска с короткими запросами не подходили для обучения семантического понимания.
Почему это важно
Решение VK демонстрирует, что даже на «консьюмерских» GPU можно достичь enterprise-уровня производительности за счет оптимизации на уровне токенизации и архитектуры. Снижение фертильности токенизатора до 1.2 — это значимый прорыв для русскоязычного сегмента, позволяющий экономить вычислительные ресурсы и бюджет компании на масштабе.
Источник: Habr ↗
