Milvus · Milvus 2.6
Семантический поиск по 25 млн товаров. Индекс IVF_FLAT, nlist=4096. Поиск с nprobe=1 занимает 4 мс, но офлайн-замер даёт recall@20 = 0,61: покупатель с запросом «детское автокресло 9–18 кг» не видит треть релевантных товаров.
Бюджет задержки — 30 мс, перестраивать индекс до распродажи нежелательно.
В работе: Тюнинг IVF-индекса: баланс recall и задержки.
Как проверяем
Движка Milvus в браузере пока нет, поэтому здесь не запрос, а выбор решения. Выберите один вариант. После ответа — почему каждый вариант верный или нет. Ответ один на подход: после него показываем разбор.
Источник: на данных ритейла: поиск товаров по запросу покупателя. Условие пересказано своими словами.
Давали на собеседовании?
Ответов пока мало — ваш поможет.
Что сделать?
- Поднять nprobe до 32–64 и замерить recall и p99
- Перестроить индекс с nlist = 16384
- Сменить метрику с COSINE на L2
- Перейти на FLAT