Réduire l’empreinte mémoire et sur disque de ColBERT avec le pooling de tokens

L’équipe d’Answer.AI présente une méthode simple de “pooling” des tokens pour réduire considérablement l’empreinte mémoire et sur disque du modèle ColBERT, tout en maintenant des performances de recherche quasi-intactes. Cette approche, qui ne nécessite aucune modification du modèle, permet de diminuer le nombre de vecteurs à stocker jusqu’à 66% avec seulement 3% de baisse de performance en moyenne.

Points clés

  • Le “pooling” consiste à regrouper et moyenner les représentations de tokens similaires au sein d’un même document
  • Cela permet de réduire drastiquement le nombre de vecteurs à stocker, passant de 1 vecteur par token à 1 vecteur par “cluster” de tokens
  • Les meilleurs résultats sont obtenus avec un “pool factor” de 2 ou 3, réduisant le nombre de vecteurs de 50% à 66% avec une baisse de performance inférieure à 3%
  • Cette méthode fonctionne également bien avec une quantification agressive des vecteurs à 2 bits, sauf sur un jeu de données particulier
  • Le pooling de tokens améliore grandement la scalabilité des méthodes d’indexation facilement “updatables” comme HNSW

À retenir

Avec ces résultats impressionnants, il est clair que le pooling de tokens est une solution simple et efficace pour réduire l’empreinte mémoire et sur disque du modèle ColBERT, sans sacrifier ses performances. Cela devrait permettre de rendre cette approche multi-vecteurs plus accessible et facile à déployer, notamment pour les petits jeux de données. Reste plus qu’à comprendre les raisons pour lesquelles cette méthode fonctionne si bien, en particulier sur ce jeu de données récalcitrant !

Sources