Retour au blog
Retrouver ce qui compte sans tout ramener : les seuils de la recherche par le sens
Technique4 min de lecture

Retrouver ce qui compte sans tout ramener : les seuils de la recherche par le sens

Pourquoi ça compte pour toi

Quand tu demandes à LIA « qu'est-ce que je t'avais dit sur le restaurant de Paul ? », elle ne cherche pas les mots exacts de ta phrase. Elle cherche par le sens. Chaque souvenir, chaque note de journal et chaque passage de tes documents est transformé en une suite de nombres, un embedding, qui représente ce qu'il veut dire. Deux textes proches par le sens ont des embeddings proches, et leur ressemblance se mesure par un score.

Reste à décider à partir de quel score un souvenir est assez proche pour servir. Trop bas, LIA glisse dans sa réponse des souvenirs sans rapport : la réponse se brouille, et tu paies des jetons pour du bruit. Trop haut, elle passe à côté de ce qu'elle sait pourtant. Ce seuil a l'air d'un détail technique ; c'est lui qui décide si LIA se souvient bien.

Ce que je voulais

Je voulais un seuil par usage, choisi sur des tests réalistes. Retrouver un souvenir utile, repérer un doublon dans tes centres d'intérêt ou choisir un passage d'un document ne sont pas la même question. Et je voulais que chaque seuil se choisisse au coût de ses erreurs.

Comment ça se passe

Chaque modèle d'embedding encode le sens à sa façon. Quand LIA est passée au modèle d'embeddings de Google, qui ne rapproche plus deux textes sans rapport au seul motif qu'ils sont écrits dans la même langue, tous les seuils ont été recalibrés : ceux de l'ancien modèle ne voulaient plus rien dire. Pour chacun, j'ai mesuré sur des jeux de test ce qu'il laisse passer à tort et ce qu'il rate.

  • Chercher ou dédoublonner. Pour te rappeler un souvenir, un seuil modéré suffit. Pour décider que deux centres d'intérêt n'en font qu'un, il faut qu'ils soient presque identiques. Un souvenir porte même deux embeddings : un pour son contenu, un pour les mots-clés qui doivent le rappeler.
  • Le coût d'une erreur. Pour dédoublonner tes centres d'intérêt, deux seuils faisaient exactement autant d'erreurs. Le plus bas fusionnait à tort des sujets distincts, comme Android et iOS : ton intérêt pour l'un disparaissait dans l'autre, sans retour possible. Le plus haut laissait passer quelques doublons, visibles et faciles à corriger. J'ai gardé le plus haut, parce que compter les erreurs ne suffisait pas : il fallait regarder lesquelles. La raison est écrite à côté de la valeur, dans le code.
  • Six langues, un seul seuil. Pour les espaces de connaissances, le seuil a été mesuré dans chacune des six langues de LIA, et la meilleure valeur était la même partout. Ça tombe bien : un document en allemand peut répondre à une question posée en français, et un seuil par langue n'aurait pas su laquelle choisir. Un petit bonus récompense aussi les mots exacts, pour qu'un nom de produit ou une référence ne se perde pas.
  • Un seuil qui apprend. Pour ton journal, une valeur fixe ne convenait pas à tout le monde : les scores dépendent de ce que chacun écrit et du nombre de notes. Ce seuil s'ajuste donc à toi, d'un petit pas par jour au plus, entre deux bornes qu'il ne peut pas franchir. Un interrupteur permet de le figer à sa valeur par défaut.

Un embedding doit encore arriver

Un seuil bien choisi ne sert à rien si l'embedding n'est pas calculé. Ce calcul passe par un service en ligne, qui limite le nombre d'appels par minute. Les tâches de fond de LIA démarrent donc à des moments décalés, pour ne pas toutes partir dans la même seconde. Si le service sature malgré tout, LIA réessaie un nombre limité de fois, et sa propre régulation, en cas de doute, laisse passer la requête pour que ta réponse garde sa mémoire.

Les limites

  • Aucun seuil ne sépare parfaitement ce qui est pertinent du reste. Deux sujets distincts peuvent beaucoup se ressembler, et deux formulations d'une même idée beaucoup moins. Le seuil reste un compromis, et c'est pour cela que je le choisis du côté de l'erreur la moins grave.
  • Les embeddings de deux modèles différents ne se comparent pas entre eux : changer de modèle impose de tout recalibrer.
  • La recherche par le sens dépend aujourd'hui d'un service de Google. Elle ne fonctionne pas hors ligne.

Pour approfondir : Tes documents, à portée de question : les espaces de connaissance ; Montrer au modèle ce qui compte : les services qui allègent le travail de LIA.

#embeddings#similarity#calibration#gemini#thresholds#f1-score