Les modèles de "late interaction"
04/03/2025
•Joël Gombin
•Tags : AI, IA, embeddings
Un article de jina.ai expliquant de manière à la fois claire et relativement technique ce que sont les modèles de "late interaction" dans le champ de l'information retrieval (le "R" du RAG), tels que ColBERT, le plus connu. Il est notoire que l'étape la plus difficile dans le RAG est cette phase de retrieval (identifier les sources pertinentes par rapport à une requête, ou même mieux, une intention, de l'utilisateur). L'article le souligne d'ailleurs :
Information retrieval, at its heart, is about understanding and matching the intent behind a query with the content within a document.
Dès lors ce qu'on apprend dans les tutos sur les embeddings (calculer un cosinus carré entre une requête et un document) ne fonctionne souvent pas bien dans la "vraie vie".
Le cœur de l'approche de ColBERT est, sur la base d'embeddings déjà calculés pour les documents, la suivante :
The key operations include a batch dot-product to compute term-wise similarities, max-pooling across document terms to find the highest similarity per query term, and summation across query terms to derive the total document score, followed by sorting the documents based on these scores.
Alors que dans l'approche classique on ne stocke qu'un vecteur d'embedding par document, avec ColBERT on stocke une valeur d'embedding par token. Cela peut donc être assez volumineux (mais permettant de conserver beaucoup plus de nuance au sein du document), et ColBERTv2 (publié début 2024) permet de mitiger ce problème avec des stratégies d'indexation optimisée dans les bases de données vectorielles et de compression.
Ce qui est intéressant d'un point de vue industriel est que l'approche ColBERTest beaucoup moins coûteuse d'un point de vue computationnel (d'au moins un ordre de grandeur mais jusqu'à 4 OOM selon les cas). Pour autant les performances en matière de retrieval sont très bonnes et permettent d'identifier les documents pertinents dans un grand ensemble de documents. Cela en fait donc, aux dires de Jina en tout cas, un excellent système à utiliser en production.
De plus la version de Jina de ColBERTv2 permet d'embedder des documents jusqu'à 8192 tokens, ce qui permet de ne pas avoir à découper en chunks (petits fragments) des documents, ce qui pose souvent des problèmes de cohérence, perte du contexte, etc.
En août 2024, Jina a sorti la v2 de son propre modèle Colbert, qui présente plusieurs améliorations :
- il est multilingue (89 langues prises en compte). En français en particulier, le modèle affiche des performances très supérieures à celles de BM25.
- il permet de produire des représentations vectorielles dites "Matryoshka", permettant d'opérer un choix entre efficacité (en termes de taille de stockage des vecteurs) et précision.