Войти Регистрация
Data base

184. IVF_FLAT с nprobe = 1 теряет треть соседей

Средняя

Milvus · Milvus 2.6

Семантический поиск по 25 млн товаров. Индекс IVF_FLAT, nlist=4096. Поиск с nprobe=1 занимает 4 мс, но офлайн-замер даёт recall@20 = 0,61: покупатель с запросом «детское автокресло 9–18 кг» не видит треть релевантных товаров.

Бюджет задержки — 30 мс, перестраивать индекс до распродажи нежелательно.

В работе: Тюнинг IVF-индекса: баланс recall и задержки.

Как проверяем Движка Milvus в браузере пока нет, поэтому здесь не запрос, а выбор решения. Выберите один вариант. После ответа — почему каждый вариант верный или нет. Ответ один на подход: после него показываем разбор.
IVF_FLATnlistnproberecall

Источник: на данных ритейла: поиск товаров по запросу покупателя. Условие пересказано своими словами.

Давали на собеседовании? Ответов пока мало — ваш поможет.

Что сделать?

  • Поднять nprobe до 32–64 и замерить recall и p99
  • Перестроить индекс с nlist = 16384
  • Сменить метрику с COSINE на L2
  • Перейти на FLAT