Codex Pets и YDB: гибридный семантический поиск Винни‑Пуха без имени
В YDB продемонстрирован гибридный поиск по словам и векторам, который находил Винни‑Пуха по описанию «тревожный коричневый медведь из старого мультфильма», без упоминания имени.
Что показал автор
В статье на Habr ML описан эксперимент с Codex Pets – моделью, умеющей преобразовывать как текстовые описания, так и кадры анимации в векторные представления. Эти векторы сохраняются в Yandex Database (YDB) и сравниваются в пространстве 768 измерений.
Как работает гибридный поиск
- Текстовый запрос – «тревожный коричневый медведь из старого мультфильма». В запросе нет ни слова Винни‑Пух, ни прямого упоминания персонажа.
- Векторизация – запрос преобразуется в вектор, а также в набор токенов‑слов.
- Гибридный поиск – YDB одновременно сравнивает токены (традиционный TF‑IDF‑подобный поиск) и векторную близость (cosine similarity).
- Результат – первым в выдаче появляется Винни‑Пух, а затем его «друзья» – другие персонажи из той же серии.
Технические детали
- Codex Pets обучена на большом наборе анимационных кадров и их описаний, что позволяет получать согласованные векторы для разных модальностей.
- YDB использует встроенный модуль vector index, поддерживающий поиск в пространствах до 1024 измерений, что делает возможным масштабировать решение на миллионы записей.
- В примере хранится ≈ 10 000 векторных записей, поиск отрабатывает за ≈ 120 мс.
Почему это важно
Гибридный подход объединяет преимущества традиционного поискового индекса (точность по ключевым словам) и семантического поиска (понимание контекста). Это открывает новые возможности для каталогов мультимедиа, архивов и сервисов рекомендаций.
Гибридный поиск в YDB демонстрирует, как объединить текстовый и векторный индексы без сложных пайплайнов. Для разработчиков это значит быстрее прототипировать поиск по видео и изображениям, а студенты могут изучать практику построения мультимодальных систем на реальных инструментах.