qdrant-search-quality-diagnosis

Par github · awesome-copilot

Diagnostique les problèmes de qualité de recherche Qdrant. À utiliser quand quelqu'un signale « les résultats sont mauvais », « résultats incorrects », « résultats non pertinents », « correspondances manquantes », « le recall est faible », « la recherche approximative est moins bonne que la recherche exacte », « quel modèle d'embedding », ou « la qualité a chuté après la quantification ». À utiliser également quand la qualité de recherche se dégrade sans changements apparents.

npx skills add https://github.com/github/awesome-copilot --skill qdrant-search-quality-diagnosis

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=true pour 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_ef au 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_ef infé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)

Skills similaires