Comment diagnostiquer une mauvaise qualité de recherche
Avant d'affiner les paramètres, établissez des baselines. Utilisez la recherche KNN exacte comme vérité de référence, comparez-la avec HNSW approximatif. Visez >95% recall@K en production.
Vous ne savez pas encore ce qui ne va pas
À utiliser quand : les résultats sont non pertinents ou les correspondances attendues manquent et vous avez besoin d'isoler la cause.
- Testez avec
exact=truepour contourner l'approximation HNSW Search API - Recherche exacte mauvaise = problème de modèle ou de pipeline de recherche. Exacte bonne, approximatif mauvais = affinez HNSW.
- Vérifiez si la quantification dégrade la qualité (comparez avec et sans)
- Vérifiez si les filtres sont trop restrictifs (vous pourriez alors avoir besoin d'utiliser ACORN)
- Si vous avez des résultats dupliqués à partir de documents fragmentés, utilisez l'API Grouping pour dédupliquer Grouping
Le filtrage par payload et la recherche par vecteur sparse sont des choses différentes. Les métadonnées (dates, catégories, tags) vont dans le payload pour filtrer. Le contenu textuel va dans les vecteurs sparse pour chercher.
Recherche approximative pire que la recherche exacte
À utiliser quand : la recherche exacte retourne de bons résultats mais l'approximation HNSW les manque.
- Augmentez
hnsw_efau moment de la requête Search params - Augmentez
ef_construct(200+ pour une haute qualité) HNSW config - Augmentez
m(16 par défaut, 32 pour un rappel élevé) HNSW config - Activez le suréchanillonnage + rescore avec quantification Search with quantization
- ACORN pour les requêtes filtrées (v1.16+) ACORN
La quantification binaire nécessite un rescore. Sans cela, la perte de qualité est sévère. Utilisez le suréchanillonnage (minimum 3-5x pour le binaire) pour récupérer le rappel. Testez toujours l'impact de la quantification sur vos données avant la production. Quantization
Mauvais modèle d'embedding
À utiliser quand : la recherche exacte retourne aussi de mauvais résultats.
Testez les 3 meilleurs modèles MTEB sur 100-1000 exemples de requêtes, mesurez recall@10. Les modèles spécifiques à un domaine surpassent souvent les modèles généraux. Hosted inference
Pipeline de recherche non optimisé
À utiliser quand : la recherche exacte retourne aussi de mauvais résultats et le choix du modèle est confirmé par l'utilisateur.
Optimisez la recherche selon la skill advanced search-strategies.
Ce qu'il NE FAUT PAS faire
- Affiner Qdrant avant de vérifier que le modèle convient à la tâche (la plupart des problèmes de qualité sont des problèmes de modèle)
- Utiliser la quantification binaire sans rescore (perte de qualité sévère)
- Définir
hnsw_efinférieur aux résultats demandés (rappel mauvais garanti) - Ignorer les index de payload sur les champs filtrés puis blâmer la qualité (HNSW ne peut pas traverser les nœuds filtrés, et HNSW filtrable n'est construit que si les index de payload ont été configurés au préalable)
- Déployer sans baseline de rappel ou autres métriques de pertinence de recherche (aucun moyen de mesurer les régressions)
- Confondre le filtrage de payload avec la recherche par vecteur sparse (des choses différentes, des configurations différentes)