RocketQA : recherche optimisée de passages denses pour la réponse aux questions en domaine ouvert
Imaginez demander : « Qui a inventé l’électricité ? » et s’attendre à ce qu’un système identifie le passage le plus pertinent parmi des milliards de documents non structurés couvrant divers sujets et formats. Cela illustre le défi de la réponse aux questions en domaine ouvert (QA), où les systèmes doivent récupérer et classer rapidement les informations pertinentes à partir de vastes ensembles de données non organisés, comme Wikipédia ou des archives web. Les premiers systèmes de QA ont relevé ce défi au moyen de pipelines complexes pour des tâches telles que l’analyse des questions et la récupération de documents. Plus tard, l’approche en deux étapes a simplifié le processus en récupérant des passages et en extrayant des réponses précises à l’aide de techniques de récupération dense.
La récupération dense, qui utilise des architectures à double encodeur, représente les questions et les passages sous forme d’embeddings denses pour une mise en correspondance sémantique efficace. Cependant, l’entraînement de ces modèles introduit plusieurs défis, notamment des écarts entre l’entraînement et l’inférence, des positifs mal étiquetés et des ensembles de données annotées limités. Pour surmonter ces obstacles, RocketQA, présenté dans l’article Optimized Training of Dense Retrieval Models with Hard Negatives, propose une série de stratégies, notamment les négatifs inter-lots, le débruitage des négatifs difficiles et l’augmentation de données. Ces méthodes améliorent la robustesse de l’entraînement des doubles encodeurs et renforcent la précision de la récupération de passages.
Cet article abordera les contributions de RocketQA à la récupération dense pour la QA en domaine ouvert, notamment son architecture et ses stratégies d’entraînement.
Comprendre les défis de la QA en domaine ouvert
Les systèmes de QA en domaine ouvert visent à répondre aux requêtes des utilisateurs en trouvant le passage le plus pertinent dans un vaste corpus de documents. Ces documents sont généralement divisés en passages plus petits afin de rendre la recherche et la récupération plus efficaces. Pour chaque passage pertinent récupéré, le système doit également identifier l’extrait exact du texte qui répond à la question.
Cette tâche est particulièrement difficile en raison de la taille et de la complexité des données. Les systèmes doivent équilibrer trois aspects clés : garantir la rapidité pour une récupération en temps réel, maintenir la précision afin d’identifier correctement les passages les plus pertinents, et maximiser le rappel pour éviter de manquer des informations importantes. Trouver cet équilibre est essentiel pour une QA en domaine ouvert efficace.
Les systèmes de récupération dense ont réalisé des progrès significatifs pour relever ces défis en se concentrant sur la correspondance sémantique plutôt que de s’appuyer uniquement sur des approches fondées sur les mots-clés. Cependant, bien qu’ils améliorent l’efficacité et la précision dans certains domaines, ils se heurtent également à des obstacles spécifiques qui limitent leurs performances.
Lacunes de la récupération dense traditionnelle
Les systèmes de récupération dense présentent plusieurs limitations clés :
Écart entre l’entraînement et le monde réel : Les modèles sont souvent entraînés sur de petits ensembles de données soigneusement sélectionnés, tandis que les systèmes réels doivent traiter des milliards de passages. Ce décalage réduit leur capacité à fournir des performances constantes sur des ensembles de données plus vastes et plus complexes.
Annotations clairsemées : De nombreux ensembles de données de QA disposent de peu de données étiquetées, associant souvent les requêtes à un ou deux passages positifs seulement. Cela entraîne des faux négatifs pendant l’entraînement, où des passages pertinents sont considérés à tort comme non pertinents.
Négatifs difficiles : Ces systèmes ont souvent du mal avec des passages qui semblent pertinents mais ne répondent pas réellement à la requête. Par exemple, une requête sur « Qui a découvert l’électricité ? » pourrait récupérer des passages sur les expériences de Benjamin Franklin, qui sont liées mais incorrectes. Si de tels passages sont mal gérés pendant l’entraînement, ils peuvent perturber le modèle et réduire la précision de la récupération.
Voyons comment RocketQA relève ces défis en introduisant des techniques qui améliorent les stratégies d’entraînement et affinent la manière dont les modèles traitent les données.
Qu’est-ce que RocketQA ?
RocketQA est un framework de récupération dense de passages hautement optimisé, conçu pour améliorer les systèmes de question-réponse (QA) en domaine ouvert. Développé par Baidu, RocketQA utilise une architecture de modèle à double encodeur pour récupérer les passages pertinents, dans laquelle les encodeurs de requêtes et de documents sont entraînés de manière collaborative afin d’améliorer les performances de récupération. Le framework introduit des techniques d’entraînement innovantes, telles que l’échantillonnage négatif inter-lots et le débruitage, qui répondent à des défis courants comme les échantillons négatifs rares et les données d’entraînement bruitées.
Comment RocketQA améliore la récupération dense
RocketQA s’appuie sur l’architecture à double encodeur, qui permet une correspondance sémantique efficace en précalculant des embeddings denses pour les questions et les passages. Le double encodeur se compose de deux encodeurs distincts :
Encodeur de questions (Eq(q)) : transforme la requête en une représentation vectorielle dense.
Encodeur de passages (Ep(p)) : transforme chaque passage en une représentation vectorielle dense.
La similarité entre une question et un passage est calculée comme le produit scalaire de leurs embeddings :
sim(q, p) = Eq(q) ⋅ Ep(p)
Cette structure précalculée permet une récupération rapide, car les embeddings de tous les passages peuvent être stockés dans un index et réutilisés pour plusieurs requêtes. Cependant, bien que les doubles encodeurs offrent une bonne évolutivité, leurs performances pour capturer les relations nuancées entre les requêtes et les passages sont limitées.
Pour résoudre ce problème, RocketQA intègre des encodeurs croisés afin d’améliorer la qualité de l’entraînement. Les encodeurs croisés traitent une requête et un passage ensemble, ce qui permet des interactions contextuelles plus riches. En combinant l’évolutivité des doubles encodeurs avec le raffinement des encodeurs croisés, RocketQA atteint un équilibre entre efficacité et précision. Voici comment fonctionnent les doubles encodeurs et les encodeurs croisés.
Figure : Illustration des architectures à double encodeur et à encodeur croisé
Le double encodeur encode indépendamment la requête et le passage en embeddings denses. Par exemple, la requête « Qui a inventé l’électricité ?” est encodée en une représentation vectorielle basée sur sa signification sémantique, tandis que des passages comme « Michael Faraday a apporté des contributions majeures à l’électromagnétisme” et « l’expérience du cerf-volant de Benjamin Franklin” sont également encodés en vecteurs. Le système compare ces vecteurs pour déterminer quel passage est le plus similaire à la requête. Ce processus est très efficace, car les embeddings des passages peuvent être précalculés et réutilisés.
En revanche, l’encodeur croisé traite la requête et le passage ensemble. Au lieu de les encoder séparément, il examine la relation entre les deux. Par exemple, lors de l’évaluation de la même requête et des mêmes passages, l’encodeur croisé peut mieux comprendre que le passage mentionnant l’expérience du cerf-volant de Benjamin Franklin est lié à l’électricité, mais ne répond pas directement à la requête. Cette compréhension plus riche se fait au détriment de l’efficacité computationnelle, ce qui le rend plus adapté au fine-tuning et à la génération de données d’entraînement.
Échantillonnage plus intelligent avec des négatifs inter-lots
L’un des défis de la récupération dense consiste à entraîner des modèles avec un ensemble diversifié d’exemples négatifs (des passages qui ne répondent pas à la requête). Les approches traditionnelles utilisent des négatifs intra-lot, qui sont limités aux passages contenus dans le même lot. RocketQA répond à cette limite en introduisant des négatifs inter-lots, qui partagent les exemples négatifs entre plusieurs GPU pendant l’entraînement.
Cette approche élargit considérablement le pool d’échantillons négatifs, le rendant plus représentatif des scénarios réels. En exposant le modèle à des négatifs plus diversifiés et plus difficiles, RocketQA réduit le surapprentissage et améliore sa capacité à distinguer les passages pertinents des passages non pertinents.
Figure : Comparaison des négatifs intra-lot et inter-lots dans l’entraînement multi-GPU, où A est le nombre de GPU et B est la taille du lot.
Contrairement aux méthodes traditionnelles qui limitent l’échantillonnage négatif au niveau du lot, RocketQA permet à chaque question d’être associée à des négatifs provenant d’autres lots, augmentant ainsi la diversité sans nécessiter de mémoire supplémentaire.
Objectif d’entraînement optimisé
Le processus d’entraînement dans RocketQA vise à améliorer la capacité du modèle à identifier les passages pertinents pour une requête donnée en optimisant une fonction de perte. Cette fonction de perte encourage le modèle à attribuer des scores de similarité plus élevés aux paires requête-passage positives (passages pertinents) et des scores plus faibles aux paires requête-passage négatives (passages non pertinents).
La fonction de perte s’exprime comme suit :
L(qi, p⁺i, {p⁻i,j}) = - log ( exp(sim(qi, p⁺i)) / ( exp(sim(qi, p⁺i)) + Σj=1^m exp(sim(qi, p⁻i,j)) ) )
Voici comment fonctionne l’optimisation :
Passages positifs (p⁺i) : Pour chaque requête qi, le modèle identifie un passage positif étiqueté comme pertinent. L’objectif est de maximiser le score de similarité sim(qi, p⁺i), qui mesure dans quelle mesure la requête et le passage positif correspondent.
Passages négatifs (p⁻i,j) : Pour la même requête qi, plusieurs passages négatifs (non pertinents pour la requête) sont introduits. Le modèle est entraîné à attribuer à ces passages des scores de similarité plus faibles sim(qi, p⁻i,j).
Équilibrage des scores : Le dénominateur de la fonction de perte inclut les scores de similarité des passages positifs et négatifs. En minimisant cette perte, le modèle apprend à augmenter le score de similarité du passage positif par rapport aux passages négatifs.
Visualisation du processus : Considérez cette optimisation comme une reconfiguration de l’espace sémantique. Les plongements des passages pertinents sont rapprochés de la requête dans l’espace sémantique, tandis que les plongements des passages non pertinents en sont éloignés.
Amélioration du classement : Le résultat de cette optimisation est un modèle qui classe les passages positifs plus haut que les négatifs pour une requête donnée, améliorant ainsi la capacité du système à récupérer avec précision les informations pertinentes.
En optimisant cette fonction de perte, RocketQA garantit que son modèle de récupération dense est plus efficace pour distinguer les passages pertinents des passages non pertinents, même dans des scénarios où les négatifs sont contextuellement similaires. Cette amélioration renforce directement la précision et le rappel du système de récupération, permettant de meilleures performances dans les tâches de QA en domaine ouvert.
Entraînement de RocketQA : un pipeline d’optimisation en quatre étapes
Le processus d’entraînement de RocketQA est mis en œuvre au moyen d’un pipeline structuré en quatre étapes qui affine systématiquement le bi-encodeur afin d’améliorer ses capacités de récupération. Chaque étape s’appuie sur la précédente pour répondre aux principaux défis que nous avons abordés, tels que la gestion des négatifs difficiles, la diversification des exemples d’entraînement et la compensation des annotations clairsemées.
Figure : Les quatre étapes du pipeline d’entraînement de RocketQA :
Voici ce que comprend chaque étape :
1. Échantillonnage négatif inter-lots
Le bi-encodeur est d’abord entraîné à l’aide de négatifs inter-lots, qui partagent les passages négatifs entre les GPU. Cela augmente la diversité des négatifs disponibles pour l’entraînement, aidant le modèle à simuler plus efficacement les conditions du monde réel. En tirant parti de cette technique, RocketQA expose le modèle à des négatifs plus difficiles, affinant sa capacité à différencier les passages pertinents des passages non pertinents.
2. Ajustement fin du cross-encoder
Après l’entraînement initial, un cross-encoder est affiné pour évaluer les paires requête-passage avec une meilleure compréhension contextuelle. Le cross-encoder identifie des hard negatives difficiles, qui sont ensuite utilisés pour affiner davantage le dual-encoder. Cette étape garantit que le dual-encoder bénéficie des connaissances relationnelles plus profondes du cross-encoder.
3. Débruitage des hard negatives
Le dual-encoder est réentraîné avec des hard negatives débruités sélectionnés par le cross-encoder. Ce processus réduit le bruit dans les données d’entraînement en excluant les négatifs mal étiquetés ou moins informatifs. En conséquence, le modèle se concentre sur les distinctions significatives entre passages pertinents et non pertinents, améliorant ainsi la précision.
4. Augmentation des données
À l’étape finale, le cross-encoder génère des pseudo-étiquettes pour enrichir le jeu de données d’entraînement. Ces pseudo-étiquettes aident à résoudre le problème des annotations clairsemées en créant des données étiquetées supplémentaires, permettant au dual-encoder de mieux généraliser sur des requêtes diverses.
Ce processus structuré garantit que RocketQA intègre efficacement les améliorations évoquées précédemment dans un flux de travail cohérent et optimisé, améliorant ainsi au final ses performances dans les tâches de recherche dense.
Performances de RocketQA sur les benchmarks
Après l’optimisation de son pipeline d’entraînement, RocketQA démontre de solides performances sur divers benchmarks de question-réponse (QA) en domaine ouvert. Ces benchmarks évaluent la capacité de RocketQA à récupérer des passages pertinents dans différents jeux de données, chacun présentant des défis uniques tels que des requêtes complexes, des annotations clairsemées ou des négatifs trompeurs.
Il a été testé sur MS MARCO, Natural Questions et TriviaQA. MS MARCO se concentre sur l’association des requêtes utilisateur avec des passages pertinents et non pertinents, en mettant l’accent sur la précision de la récupération. Natural Questions contient de vraies requêtes utilisateur issues de Google Search, exigeant des systèmes qu’ils identifient des passages pertinents dans Wikipedia. TriviaQA pose des questions de type quiz qui nécessitent souvent un raisonnement contextuel et une compréhension plus approfondie pour récupérer des réponses exactes.
Il atteint un Mean Reciprocal Rank (MRR@10) de 37.0 sur le jeu de données MS MARCO, surpassant d’autres systèmes de recherche dense comme DPR et ANCE, qui ont obtenu respectivement 32.7 et 33.0. Le modèle obtient également de bons résultats sur le jeu de données Natural Questions (NQ), atteignant un taux de rappel (R@100) de 88.5, contre 87.5 pour ANCE et 85.4 pour DPR. Ces résultats montrent que RocketQA a la capacité de récupérer des passages pertinents avec une précision et un rappel plus élevés après optimisation.
Orientations futures pour RocketQA
Le succès de RocketQA sur divers benchmarks souligne sa force en tant que système de recherche dense. Pourtant, à mesure que la question-réponse en domaine ouvert devient plus complexe, il existe des opportunités claires d’affiner ses capacités, de répondre à ses limites et d’étendre ses fonctionnalités afin de relever les défis et cas d’utilisation émergents.
Intégration de la recherche multimodale
S’étendre au-delà du texte pour inclure des données multimodales telles que des images, des vidéos et des données structurées permettrait à RocketQA de traiter des requêtes plus riches et plus diverses. Par exemple, une requête comme Explique les informations dans ce graphique sur le réchauffement climatique nécessiterait d’intégrer une compréhension visuelle et textuelle. La combinaison des modalités rendrait RocketQA applicable dans des domaines tels que le diagnostic médical, la recherche scientifique et la recherche multimédia.
Personnalisation contextuelle
L’intégration d’un contexte spécifique à l’utilisateur dans le processus de récupération de RocketQA peut améliorer la pertinence des résultats. En intégrant des signaux issus de l’historique ou des préférences de l’utilisateur, le modèle pourrait adapter les réponses aux besoins individuels. Par exemple, un étudiant faisant des recherches sur l’énergie pourrait préférer des explications simplifiées, tandis qu’un expert du domaine bénéficierait de résultats détaillés et riches en sources.
Personnalisation spécifique au domaine
Le fine-tuning de RocketQA sur des jeux de données propres à un domaine—tels que des documents juridiques ou de la littérature médicale—pourrait améliorer ses performances dans des domaines spécialisés. L’intégration avec des graphes de connaissances améliorerait également la précision en exploitant des relations structurées (p. ex., symptômes → maladies dans le secteur de la santé). Cette approche rendrait RocketQA plus efficace dans des secteurs comme le droit, la médecine et l’ingénierie.
Conclusion
RocketQA a redéfini la recherche dense pour la réponse aux questions en domaine ouvert en surmontant des défis tels que les annotations clairsemées, les négatifs difficiles et les exigences de recherche à grande échelle. Sa combinaison d’architectures à double encodeur et à encodeur croisé, ainsi que des stratégies comme les négatifs inter-lots et l’entraînement optimisé, offre à la fois évolutivité et précision.
Avec un succès démontré sur les benchmarks et le potentiel de s’étendre à la recherche multimodale, aux applications propres à un domaine et aux systèmes personnalisés, RocketQA est prêt à mener les avancées dans la réponse aux questions. À mesure que les exigences de la QA en domaine ouvert évoluent, RocketQA fournit une base solide et adaptable pour traiter des requêtes complexes avec précision et efficacité.
Ressources complémentaires
Continuer à lire

Introducing Customer-Managed Encryption Keys (CMEK) on Zilliz Cloud
We're announcing the general availability of Customer-Managed Encryption Keys (CMEK) on Zilliz Cloud.

3 Easiest Ways to Use Claude Code on Your Mobile Phone
Run Claude Code from your phone with Remote Control, Happy Coder, or SSH + Tailscale. Comparison table, setup steps, and tools for typing, memory, and parallel tasks.

Zilliz Cloud Introduces Advanced BYOC-I Solution for Ultimate Enterprise Data Sovereignty
Explore Zilliz Cloud BYOC-I, the solution that balances AI innovation with data control, enabling secure deployments in finance, healthcare, and education sectors.


