En février 2025, une équipe de chercheurs en IA a publié le papier NoLiMA, qui introduit un nouveau benchmark pour évaluer la capacité des grands modèles de langage à gérer les contextes longs.
Ce papier introduit un changement significatif dans le benchmark traditionnel de l'aiguille dans une botte de foin (NIAH) en supprimant les correspondances littérales entre les questions et l'aiguille (information pertinente) cachée dans la botte de foin (texte non pertinent).
Cela met en évidence une limitation critique des LLM actuels : ils s'appuient fortement sur la correspondance de motifs de surface, et leur capacité à effectuer un raisonnement associatif profond se détériore rapidement avec l'augmentation de la longueur du contexte.
En nous appuyant sur ces observations, nous cherchons à déterminer si des modèles similaires de performance se produisent dans les modèles d'embedding, en nous concentrant spécifiquement sur jina-embeddings-v3. Étant donné que l'efficacité des systèmes RAG dépend essentiellement de la qualité des modèles de récupération, nous cherchons à étendre la recherche de NoLiMA à travers des expériences contrôlées abordant deux questions fondamentales :
- Comment les modèles d'embedding gèrent-ils la recherche d'aiguille dans une botte de foin à travers différentes longueurs de contexte lorsqu'ils sont forcés de faire des sauts sémantiques au-delà des correspondances littérales de mots-clés ?
- L'augmentation stratégique des requêtes avec du contenu sémantiquement similaire peut-elle atténuer cet écart de performance ?
Le contraste frappant observé dans les LLM — robustes avec la correspondance lexicale mais vulnérables aux variations sémantiques — suggère que les systèmes de récupération basés sur l'embedding pourraient faire face à des défis similaires lorsqu'ils vont au-delà de la correspondance de termes de surface, révélant potentiellement des limitations fondamentales dans les technologies actuelles de recherche sémantique.
tagConstruction des Aiguilles et des Bottes de Foin
tagConstruction des Aiguilles
Les tests traditionnels d'aiguille dans une botte de foin utilisent des aiguilles qui reflètent la formulation de la question recherchée. Par exemple :
- Question : "Quel personnage est allé à Dresde ?"
- Aiguille : "Yuki vit à Dresde."
Mais comme NoLiMA, nous voulons tester la compréhension sémantique plutôt que la simple correspondance de mots-clés, nous créons donc des variations à un saut (en utilisant des mots spécifiquement absents des documents) avec deux ordres de mots différents :
- Question : "Quel personnage est allé à Dresde ?"
- Aiguille (par défaut) : "En fait, Yuki vit à côté du Semper Opera House."
- Aiguille (inversée) : "Le Semper Opera House est à côté de l'endroit où vit Yuki."
Suivant la méthodologie du papier, nous générons ces groupes question-aiguille (comprenant une question, une aiguille à un saut, et une aiguille à un saut inversée) à travers plusieurs catégories, comme les exemples ci-dessous :
| Category | Question | Original needle (for reference) | One-hop needle | Inverted one-hop needle |
|---|---|---|---|---|
| Dietary restrictions | Which character cannot eat fish-based meals? | Alice cannot eat fish-based meals. | Then, Alice mentioned being vegan for years. | Being vegan was important to Alice for years. |
| Medical conditions | Which character cannot drink milk? | Bob can't drink milk. | Bob explained he was lactose intolerant. | Being lactose intolerant affected Bob daily. |
| Language proficiency | Which character speaks French? | Charlie speaks French. | Actually, Charlie studied at the Sorbonne. | At the Sorbonne, Charlie completed his degree. |
| Professional background | Which character is a musician? | Diane is a musician. | In 2013, Diane conducted at the Sydney Opera House. | The Sydney Opera House performance was conducted by Diane. |
Notez que les aiguilles originales (correspondances littérales de mots-clés) sont fournies à titre de référence et ne sont pas utilisées dans nos expériences.
tagConstruction des Bottes de Foin
Nous avons commencé avec dix livres du domaine public, contenant chacun au moins 50 000 tokens, en concaténant aléatoirement de courts extraits (moins de 250 tokens) pour créer des bottes de foin de différentes longueurs, à savoir 128, 256, 512, 1024, 2048, 4096 et 8192 tokens. Nous avons ensuite intégré une aiguille dans chaque botte de foin :

Pour un exemple plus concret, prenons l'aiguille "En fait, Yuki vit à côté du Semper Opera House" et plaçons-la dans une botte de foin de 128 tokens à la position 50 :

En utilisant jina-embeddings-v3 pour encoder les textes, le score de similarité entre le texte de l'aiguille et le texte de la botte de foin est :
Question-Haystack similarity = 0.2391
Nous normalisons ensuite le score en divisant ce nombre par le score de similarité entre la question et l'aiguille par défaut (sans création de botte de foin, juste une comparaison directe) :
Question-Needle similarity = 0.3598
Normalized Query-Haystack similarity = 0.2391 / 0.3598 = 0.6644
Cette normalisation est nécessaire car tous les modèles ne produisent pas les mêmes scores de similarité entre deux textes, et jina-embeddings-v3 a tendance à sous-calculer la similarité entre deux textes.
Pour chaque aiguille (y compris toutes les versions par défaut et inversées), nous avons généré dix bottes de foin par longueur de contexte, en intégrant une aiguille par botte de foin à un emplacement différent. Pour une aiguille et une longueur de contexte données, les bottes de foin ressembleraient à ceci :

Comme contrôle, nous avons également généré une botte de foin pour chaque condition de test sans aucune aiguille. Au total, cela fait 3 234 bottes de foin. Nous avons encodé chaque botte de foin avec jina-embeddings-v3 (en utilisant le LoRA de correspondance de texte par défaut), puis pour chaque botte de foin nous l'avons tronquée (si le total des tokens dépassait 8 192, la limite pour
jina-embeddings-v3) puis a encodé la question correspondante.tagMétriques d'évaluation
Notre cadre d'évaluation utilise plusieurs métriques pour évaluer la performance du modèle d'embedding à travers différentes longueurs de contexte :
tagMétriques principales
Score de similarité normalisé
La métrique principale est un score de similarité normalisé qui prend en compte à la fois la similarité sémantique entre la question et l'ensemble du contexte (similarité question-haystack), et la similarité de référence entre la question et son needle par défaut correspondant (similarité question-needle). Cette normalisation garantit que la performance du modèle est évaluée par rapport à un point de référence significatif plutôt que par des scores de similarité absolus seuls. Le processus de normalisation implique le calcul du score de similarité cosinus direct entre les questions et leurs needles correspondants (notre référence), et la division de la similarité question-haystack par ce score de référence :
Ratio comparatif au hasard
Pour tout modèle d'embedding, les scores de similarité cosinus entre différentes paires requête-document ne sont directement comparables que lorsque la requête reste la même. Par conséquent, au-delà de l'utilisation des scores de similarité normalisés, nous mesurons également la fréquence à laquelle la question est plus similaire à l'ensemble du haystack qu'à un passage aléatoire de même longueur sans needle.
tagMétriques secondaires
Analyse de séparation
Cette métrique évalue la capacité du modèle à distinguer entre le contenu pertinent et non pertinent. Elle inclut la séparation moyenne, qui représente la différence entre les exemples positifs (passages contenant la réponse) et les exemples négatifs (passages ne contenant pas la réponse), et le score AUC (Area Under the Curve), qui mesure la capacité de discrimination basée sur l'aire sous la courbe ROC (Receiver Operating Characteristic).
Effets de position
Nous analysons comment le placement du needle affecte la performance à travers le coefficient de corrélation entre la position et le score de similarité, la pente de régression montrant le changement de performance à travers les positions, et l'analyse de performance par bins de position.
tagRésultats
tagDégradation du score de similarité et de l'exactitude
Nos résultats montrent clairement que la performance se dégrade à mesure que la longueur du contexte augmente, avec le score de similarité moyen chutant de 0,37 à 128 tokens à 0,10 à 8K tokens, suivant une tendance non linéaire avec une baisse marquée entre 128 et 1K tokens.

Dans la figure ci-dessous, nous démontrons que l'inversion du needle a peu d'impact sur le score de similarité normalisé. Le needle par défaut (par exemple "En fait, Yuki vit près du Semper Opera House") et le needle inversé (par exemple "Le Semper Opera House est à côté de l'endroit où vit Yuki") montrent des performances presque identiques :

Les différentes connexions sémantiques du dataset présentent des performances variables, les paires lieu-point de repère maintenant les meilleurs résultats, tandis que les connexions diététiques et les conditions médicales se dégradent plus rapidement :

La comparaison des résultats avec le hasard confirme nos conclusions, en montrant que plus le haystack est grand, plus les résultats se rapprochent de l'aléatoire, c'est-à-dire que nous avons presque autant de chances de sélectionner un passage aléatoire sans needle (réponse correcte) que le haystack pour une question donnée :

Encore une fois, nous observons des performances variables selon les différentes connexions sémantiques, certaines (comme les restrictions alimentaires) tombant bien en dessous du hasard même avec des contextes relativement courts, tandis que d'autres (comme les lieux et points de repère) affichent de bien meilleures performances quelle que soit la longueur du contexte :

L'inversion du needle a peu d'effet sur la performance. Dans le graphique ci-dessous, nous montrons le ratio comparatif de préférence du haystack correct par rapport au hasard, divisé selon que le needle placé contenait la réponse dans l'ordre par défaut ou inversé :

Puisque nous pouvons voir que les résultats pour les needles en ordre par défaut et inversé suivent la même tendance, nous ne continuerons pas l'analyse séparée concernant ce critère.
tagPouvons-nous séparer les résultats positifs des négatifs ?
L'une de nos conclusions les plus importantes provient de l'analyse de la capacité des modèles d'embedding à distinguer le contenu pertinent du contenu non pertinent à travers différentes longueurs de contexte. Cette "analyse de séparation" révèle que l'exactitude de la récupération chute rapidement entre une longueur de contexte de 128 et 1000 tokens, puis continue à baisser, mais à un rythme plus lent :

Pour les contextes courts (128 tokens), le modèle montre une forte séparation avec une différence moyenne de 0,1 et une discrimination claire, atteignant un AUC de 0,81 (ce qui signifie que 81% du temps, le modèle classe un passage pertinent plus haut qu'un passage non pertinent). Cela indique que dans les contextes plus courts, le modèle peut distinguer de manière fiable les passages qui contiennent la réponse de ceux qui ne la contiennent pas.
Cependant, cette performance se détériore rapidement à mesure que la longueur du contexte augmente. À 1 000 tokens, la séparation chute de 60 % à 0,040, et l'AUC diminue à 0,66, signalant une baisse notable des performances. À 8 000 tokens, il y a une séparation minimale (0,001) et une discrimination proche de l'aléatoire, avec une AUC de seulement 0,50. Ce schéma révèle une observation cruciale : même lorsque les modèles peuvent calculer des scores de similarité raisonnables dans des contextes plus longs, ils peuvent à peine utiliser ces scores pour distinguer les informations pertinentes des informations non pertinentes. À 8 000 tokens, la capacité du modèle à différencier le contenu pertinent relève essentiellement du hasard.
La rapidité de cette dégradation lorsque le contexte s'allonge est frappante. Les scores de similarité bruts chutent d'environ 75 % entre 128 et 8 000 tokens, mais les métriques de séparation diminuent de près de 99 % sur la même période. Plus préoccupant encore, l'ampleur de l'effet montre une baisse encore plus prononcée, chutant de 98,6 %. Cela suggère que les difficultés des modèles d'embedding avec les longs contextes vont au-delà de la simple réduction des scores de similarité—leur capacité fondamentale à identifier les informations pertinentes se dégrade beaucoup plus sévèrement que ce qui était compris auparavant.
tagComment la Position de l'Aiguille Affecte-t-elle les Métriques Principales ?
Bien que les métriques de performance de base soient généralement meilleures lorsque l'aiguille est au début de la botte de foin, la dégradation des performances n'est pas toujours corrélée au placement au milieu du contexte :

Nous constatons également que les performances sont meilleures lorsque l'aiguille est au début d'un contexte donné, et dans les contextes courts, nous observons une légère amélioration des performances lorsque l'aiguille est placée vers la fin. Cependant, dans tous les contextes, nous observons une baisse des performances lorsque l'aiguille est dans les positions médianes :

tagQuel Est l'Effet de l'Expansion de Requête sur les Résultats ?
Nous avons récemment publié un article de blog sur l'expansion de requête, une technique utilisée dans les systèmes de recherche pour améliorer les performances de recherche en ajoutant des termes pertinents aux requêtes.

Dans cet article, nous avons utilisé un LLM pour générer des termes d'expansion, qui ont ensuite été ajoutés aux embeddings de requête pour améliorer les performances de recherche. Les résultats ont montré des améliorations significatives. Maintenant, nous voulons examiner comment (ou si) la technique améliorera les résultats pour la recherche d'aiguille dans une botte de foin. Par exemple, étant donné une requête :
Which character has been to Dresden?
Nous utilisons un LLM (Gemini 2.0) pour l'étendre et ajouter 100 termes supplémentaires qui ressemblent à ceci :
Which character has been to Dresden? Character: fictional character literary character protagonist antagonist figure persona role dramatis personae\\n\\nDresden: Dresden Germany; bombing of Dresden World War II historical fiction Kurt Vonnegut Slaughterhouse-Five city in Saxony Elbe River cultural landmark\\n\\nHas been to: visited traveled to journeyed to presence in appears in features in set in takes place in location setting
tagDans Quelle Mesure l'Expansion de Requête Aide-t-elle à Faire Correspondre l'Aiguille à la Botte de Foin ?
Pour notre expérience, nous avons généré trois ensembles de termes de requête étendus (comme décrit dans l'article original) - 100, 150 et 250 termes. Nous avons ensuite exécuté le même ensemble d'expériences qu'auparavant, répétées trois fois, une fois pour chaque ensemble de termes de requête étendus.
Les résultats avec tous les ensembles d'expansion ont montré une dégradation claire à mesure que la longueur du contexte augmentait, avec un effet similaire à celui observé sans utiliser l'expansion de requête (Figures 4 & 7) :

Par rapport aux requêtes non étendues, toutes les conditions d'expansion de requête ont montré le même schéma de dégradation des performances à mesure que le contexte s'allongeait. La tendance à la dégradation est également toujours non linéaire avec une forte baisse entre 128 et 1 000 tokens :

Cependant, l'examen du ratio comparatif montre que l'expansion de requête présente des avantages clairs : le modèle est beaucoup plus susceptible de sélectionner la botte de foin contenant l'aiguille plutôt que celle qui n'en contient pas. En revanche, sans expansion de requête, la probabilité de sélectionner le passage correct a tellement chuté que, pour une botte de foin de 8 000 tokens, elle était presque identique à celle de choisir un passage au hasard.
tagComment Expliquons-nous les Résultats de Correspondance d'Aiguille avec l'Expansion de Requête ?
Ces résultats s'alignent sur les conclusions de l'article NoLiMa et de la recherche sur l'expansion de requête, et peuvent être expliqués comme suit :
- Compromis qualité vs quantité : Les meilleures performances de l'expansion à 100 termes, par rapport à 150 et 250 termes, suggèrent qu'il existe un point optimal où les termes supplémentaires commencent à ajouter plus de bruit que de signal. L'expansion à 250 termes introduit probablement des termes ayant des relations sémantiques plus faibles avec la requête originale, qui deviennent contre-productifs dans les contextes plus longs.
- La longueur du contexte reste le défi principal : Malgré les avantages de l'expansion de requête, les performances se dégradent encore significativement avec l'augmentation de la longueur du contexte. Cela suggère que même avec l'expansion, la limitation architecturale fondamentale des modèles basés sur l'attention dans les longs contextes persiste.
- Identification du seuil pratique : Le ratio comparatif restant au-dessus de 0,5 indique que l'expansion maintient des performances supérieures au hasard même à 8 000 tokens, fournissant un moyen pratique d'étendre la fenêtre de contexte effective pour les modèles d'embedding. La comparaison avec le hasard montre que, même face à des documents à long contexte, l'expansion de la requête rend plus probable de trouver la bonne réponse (c'est-à-dire l'aiguille) qu'une réponse incorrecte. C'est une amélioration par rapport aux requêtes non étendues, où la chance de trouver la bonne réponse se rapproche de l'aléatoire à mesure que la longueur du contexte augmente.
tagDiagnostic : Quel Rôle Joue la Correspondance Lexicale dans les Embeddings ?
Dans les expériences ci-dessus, nous avons mesuré l'efficacité des modèles d'embedding pour faire des inférences sémantiques "à un saut" dans des passages à long contexte, en éliminant toute possibilité de correspondance littérale. Nous avons constaté que, même avec l'expansion de requête, la capacité du modèle d'embedding à trouver des passages pertinents se détériore à mesure que la longueur du contexte augmente. Cet effet est significatif, et la découverte est remarquable car nous nous attendrions normalement à ce qu'un modèle d'embedding puisse faire les inférences pertinentes sans aide supplémentaire. Lorsque nous remplaçons les correspondances littérales par des variations à un saut (par exemple, "Dresden" → "Semper Opera House"), nous ne faisons que remplacer un concept par un autre proche.
Prenons maintenant le taureau par les cornes et posons directement la question : La correspondance littérale joue-t-elle vraiment un rôle suffisamment important dans la correspondance sémantique, ou l'effet de la longueur du contexte l'emporte-t-il ? Pour répondre à cette question, nous avons refait nos tests avec des aiguilles contenant des correspondances littérales, par exemple :
- Question : "Which character has been to Dresden?"
- Aiguille (par défaut) : "Actually, Yuki lives in Dresden."
- Aiguille (inversée) : "Dresden is where Yuki lives."
Notez que, au lieu d'une variation en une étape consistant à déduire que l'opéra Semper se trouve à Dresde, et donc qu'un personnage vivant à proximité aurait dû être celui qui a visité Dresde, ces indices indiquent directement le nom du personnage qui vit à Dresde.
Après avoir reformulé les 22 paires question-indice de cette manière, nous avons relancé nos expériences avec toutes les longueurs de contexte et les placements d'indices inclus, en utilisant le même modèle d'embedding jina-embeddings-v3.



Les résultats sont frappants. Même avec des correspondances littérales dans le contexte, la capacité du modèle à distinguer la bonne réponse d'une réponse aléatoire se détériore rapidement à mesure que la longueur du contexte augmente, tout en maintenant un léger avantage par rapport à une absence totale de correspondance littérale.
Cela prouve finalement que la capacité d'un modèle d'embedding à trouver une aiguille dans une botte de foin est beaucoup plus affectée par la taille de la botte de foin (et le placement de l'aiguille dans celle-ci) que par la formulation sémantique de l'aiguille.
tagConclusion
Nos découvertes avec les modèles d'embedding s'alignent avec l'article NoLiMA sur les LLM : la taille du contexte est hautement déterminante pour la correspondance et la récupération correctes. Nous montrons que cela est vrai même lorsqu'il y a une correspondance exacte lettre par lettre.
Le problème n'est pas la capacité d'un embedding à effectuer une correspondance sémantique. Les modèles d'embedding comme jina-embeddings-v3 gèrent bien les contextes courts, mais leur efficacité diminue à mesure que la longueur du contexte augmente. L'expansion des requêtes peut réduire cet effet dans une certaine mesure, mais la qualité de la récupération se dégrade toujours sur des contextes plus longs. De plus, l'expansion des requêtes pose des problèmes supplémentaires, car il est crucial d'identifier les termes d'expansion qui améliorent la récupération sans ajouter de bruit sémantique. Nous étudions et examinons des moyens d'aborder directement la récupération d'une aiguille dans une botte de foin et d'améliorer les performances futures de jina-embeddings-v4.









