Open Source · Actualité

Qdrant 1.20 : recherche par mots-clés BM25 intégrée et sécurité interne durcie

La base vectorielle libre Qdrant passe en version 1.20.0. Elle sait désormais classer des résultats par mots-clés directement sur son index plein texte, ajoute des filtres et réduit l'espace disque. Un réglage de sécurité change de valeur par défaut : à vérifier avant de mettre à jour une grappe de serveurs.

Par Kayzen AI · · 3 min de lecture

Photo d'illustration : Seagate ST33232A hard disk inner view
Image : Seagate ST33232A hard disk inner view — Eric Gaba (Sting - fr:Sting) This image was created with CombineZP by 11 ( It wa, CC BY-SA 3.0, via Wikimedia Commons

Qdrant est une base de données vectorielle sous licence Apache 2.0 : elle stocke les représentations numériques de vos documents et retrouve les plus proches d'une question. C'est une brique courante des projets de recherche documentaire (RAG). La version 1.20.0, publiée le 22 octobre sur GitHub, apporte une longue liste de changements. Voici ceux qui comptent pour une petite équipe.

Les mots-clés rejoignent les vecteurs

La recherche vectorielle retrouve des passages au sens proche, mais elle passe parfois à côté d'un terme exact : une référence produit, un numéro de contrat, un nom propre. D'où l'intérêt de la combiner avec une recherche par mots-clés.

Qdrant 1.20 calcule désormais un score BM25, la méthode classique de classement par mots-clés, directement sur son index plein texte. Les notes de version n'en disent pas plus sur les réglages : la documentation sera à consulter avant de remplacer une solution existante.

Autres ajouts du même ordre :

  • un découpage des textes en mots (« tokenizer ») nommé code, destiné au code source ;
  • un filtre par sous-chaîne, avec une réserve indiquée par l'éditeur : il parcourt toutes les données, sans index, donc à éviter sur de gros volumes ;
  • des index par élément pour les tableaux d'objets (paramètre nested), qui accélèrent les filtres imbriqués ;
  • l'heure de création d'une collection, désormais enregistrée et renvoyée.

Moins de disque, moins de ralentissements

  • L'option hnsw_config.inline_storage range les vecteurs uniquement dans le fichier de l'index, sans copie séparée, ce qui réduit l'espace disque.
  • Deux nouveaux types de vecteurs, turbo8 et turbo16, apparaissent sous le nom TurboQuant. Les notes ne décrivent ni leur précision ni leurs compromis.
  • Les optimisations de fond tournent à basse priorité, pour moins ralentir les recherches pendant ce temps.
  • Les sauvegardes instantanées (« snapshots ») reçoivent des noms uniques et ne sont plus jamais écrasées.

Tous les gains de vitesse cités sont annoncés par l'éditeur, sans chiffres dans les notes de version.

Le point à vérifier avant la mise à jour

Qdrant peut fonctionner sur plusieurs serveurs qui dialoguent entre eux. À partir de cette version, dès qu'une clé d'API est configurée, l'authentification de ces échanges internes est exigée par défaut (réglage service.enforce_internal_auth). C'est un progrès, mais un changement de comportement par défaut sur une grappe existante se teste d'abord hors production. Une installation sur un seul serveur est a priori moins exposée à ce changement.

Trois autres points de sécurité :

  • les noms de vecteurs comme . ou .., qui permettaient de sortir du dossier prévu, sont refusés ;
  • des bibliothèques de vérification de certificats sont mises à jour à la suite de deux avis de sécurité ;
  • le journal d'audit peut être envoyé vers un fichier (par défaut), la sortie standard ou la sortie d'erreur.

Des corrections qui touchent la justesse

Deux bogues corrigés concernent directement l'exactitude des résultats. Une condition d'exclusion (must_not) pouvait être ignorée lorsqu'elle était identique à une condition must indexée. Et les filtres sur des dates comportant des microsecondes ne donnaient pas le même résultat avec et sans index. La version 1.19.2 du 5 octobre avait déjà corrigé un cas où une recherche filtrée ne renvoyait aucun résultat. Si vos filtres servent à cloisonner des données entre clients ou entre services, ces corrections justifient à elles seules de ne pas rester sur une version ancienne.

Notre lecture

Pour un projet de RAG de taille modeste, l'arrivée de BM25 dans la base simplifie l'architecture : un seul outil à héberger pour la recherche par le sens et par les mots. Avant de migrer, comparez la qualité des résultats sur vos propres questions. Rappel utile : la commande Docker de démarrage rapide du dépôt lance, de l'aveu même du README, un serveur sans authentification et ouvert sur toutes les interfaces réseau. Elle convient à un essai sur un poste, pas à un serveur accessible depuis l'extérieur.

Sources

  1. Qdrant — v1.20.0 (notes de version GitHub) — source primaire
  2. Qdrant — liste des versions
  3. GitHub — qdrant/qdrant (README)