advanced
Similarity search
Извлекайте nearest vectors через distance metrics, filtering, reranking и relevance evaluation.
Поиск по сходству возвращает k ближайших векторов к query-эмбеддингу по функции расстояния или сходства. Частые метрики: косинусное сходство (угол, инвариантность к масштабу при нормализации), скалярное произведение (быстро при нормализованных векторах), евклидово (L2) расстояние.
запрос q → index.findNearest(q, k=10, filter={ tenant: "acme" })
→ кандидаты → опциональный reranker (cross-encoder) → итоговый top-k
В проде часто сочетают ANN-извлечение (быстро, приближённо) с этапом rerank (медленнее, точнее) и предфильтрами по tenant, дате или типу документа.
На интервью: определите метрику и почему она согласована с обучением модели; объясните recall@k; опишите фильтрацию до и после ANN и влияние на латентность.
Типовые ошибки: неверная метрика для ненормализованных векторов; отсутствие rerank при путанице near-duplicates; чанки без атрибуции источника; слишком маленький k для RAG; cold-start для новых документов.
Компромисс — латентность и размер индекса (приближение ANN) против качества recall и дополнительной цены rerank и человеческой оценки.
Чеклист:
- Назовите метрику: cosine, dot, L2 и когда какая уместна.
- Опишите конвейер ANN → filter → rerank.
- Объясните recall@k и offline eval sets.
- Укажите стратегию metadata-фильтров.
- Свяжите результаты с лимитами контекста downstream.