Aller au contenu
ReviewRamble

La lettre hebdomadaire

L’IA, évaluée, dans votre boîte mail.

  • Les nouveaux tests d’outils, de modèles, de serveurs MCP et de dépôts, avec le verdict en premier
  • Les prix et les notes revérifiés quand quelque chose change
  • Les nouvelles analyses dès leur publication

Modèles, agents, serveurs MCP et les outils qui méritent vraiment votre temps.

Un e-mail par semaine. Désinscrivez-vous avec le lien présent dans chaque lettre. Comment nous utilisons votre e-mail

Actualités et recherche IA

Actualités ·

Sentence Transformers ajoute un entraînement adapté au pooling pour alléger les index multivecteurs

Tom Aarsen a ajouté à Sentence Transformers une fonction de perte qui entraîne les modèles de recherche multivecteurs sur des embeddings de documents complets et regroupés. Réduire les documents d'un modèle ModernBERT d'environ 193 vecteurs à 49 a conservé 97.8% de la qualité de recherche non regroupée, contre 94.6% avec un entraînement classique. Avec un plafond de quatre vecteurs, le gain atteint 5.78 points de nDCG@10.

Si vous faites de la recherche dans vos propres documents avec un modèle de type ColBERT, l'index est sans doute plus gros que vous ne le voudriez. Ces modèles multivecteurs gardent un vecteur par jeton plutôt qu'un par document, ce qui les rend précis et coûteux à stocker. Un nouveau billet du blog de Hugging Face montre comment Sentence Transformers peut désormais entraîner un modèle à rester précis une fois ces vecteurs compressés, en récupérant l'essentiel de la qualité habituellement perdue.

Le problème de stockage est concret. À 4 bits par coordonnée, 200 vecteurs de 128 dimensions occupent 12,8 Ko par document, soit 12,8 Go pour un million de documents. Ramener chaque document à 50 vecteurs fait tomber ce total à 3,2 Go. HierarchicalTokenPooling, dans la bibliothèque, fusionne les vecteurs de jetons proches par regroupement de Ward, soit selon un facteur fixe, soit selon un seuil de distance calibrable sur une moyenne cible, et laisse intacts les vecteurs de requête. Le regroupement fonctionne avec n'importe quel modèle multivecteur, mais un modèle jamais entraîné ainsi peut perdre des distinctions importantes.

La nouveauté est un enrobage de fonction de perte, MultiVectorTokenPoolingLoss, qui entraîne sur deux versions de chaque lot : les vecteurs complets du document et une version réduite à environ un quart. L'idée rappelle les embeddings Matryoshka, qui entraînent des préfixes plus courts à rester utiles. Dans l'expérience de l'auteur, deux modèles ModernBERT-base ont été entraînés une époque sur les mêmes 120 000 triplets MS MARCO, en ne différant que par la perte. Avec un facteur de regroupement de 4, le modèle classique conservait 94,6% de son score NanoBEIR non regroupé, celui entraîné pour le regroupement 97,8%, le nDCG@10 passant de 49,03 à 51,23 avec 74,8% de vecteurs de document en moins. La qualité non regroupée progresse aussi légèrement. Un noyau GPU pour le regroupement serait 30-150x plus rapide que SciPy.

Pour les équipes qui utilisent PyLate, la bibliothèque de LightOn pour la recherche de type ColBERT construite sur Sentence Transformers, c'est directement utile : le travail s'appuie sur l'étude de LightOn elle-même sur la régularisation du regroupement, et la recette d'entraînement tient sur une seule A10G via Hugging Face Jobs en moins de quatre heures. Le conseil pratique est de combiner quantification, regroupement et troncature Matryoshka, et de mesurer taille d'index et qualité sur votre propre corpus.

Les réserves viennent de l'auteur lui-même. Il s'agit d'une seule expérience sur un seul modèle de base, sans recherche d'hyperparamètres, évaluée sur NanoBEIR, une petite batterie de tests. Le gain est le plus net au facteur de regroupement utilisé à l'entraînement, même s'il se transpose à d'autres réglages. Les résultats sur des documents longs ou spécialisés peuvent différer.

Notre avis : Le stockage est la principale raison pour laquelle les équipes évitent la recherche de type ColBERT, et supprimer trois quarts des vecteurs avec peu de perte change ce calcul. Les tests portent sur de petits modèles entraînés une seule époque : vérifiez sur vos propres données avant de réindexer.

Nos tests :PyLate

Source : Hugging Face

Autres articles