Milvus
Zilliz
  • Home
  • Blog
  • Nous avons formé et mis à disposition un modèle de mise en évidence sémantique bilingue pour la production de RAG et la recherche d'IA.

Nous avons formé et mis à disposition un modèle de mise en évidence sémantique bilingue pour la production de RAG et la recherche d'IA.

  • Engineering
January 06, 2026
Cheney Zhang

Que vous construisiez une recherche de produits, un pipeline RAG ou un agent d'intelligence artificielle, les utilisateurs ont en fin de compte besoin de la même chose : un moyen rapide de voir pourquoi un résultat est pertinent. Le surlignage permet de marquer le texte exact qui soutient la correspondance, de sorte que les utilisateurs n'ont pas besoin de scanner l'ensemble du document.

La plupart des systèmes s'appuient encore sur la mise en évidence par mot clé. Si un utilisateur recherche "performances de l'iPhone", le système met en évidence les termes exacts "iPhone" et "performances". Mais cette méthode ne fonctionne plus dès que le texte exprime la même idée en utilisant des termes différents. Une description telle que "Puce A15 Bionic, plus d'un million dans les benchmarks, fluide sans décalage" traite clairement des performances, mais rien n'est mis en évidence parce que les mots clés n'apparaissent jamais.

Lamise en évidence sémantique résout ce problème. Au lieu de faire correspondre des chaînes de caractères exactes, elle identifie des portions de texte qui sont sémantiquement alignées avec la requête. Pour les systèmes RAG, la recherche IA et les agents - où la pertinence dépend du sens plutôt que de la forme superficielle - cela permet d'obtenir des explications plus précises et plus fiables sur la raison pour laquelle un document a été récupéré.

Cependant, les méthodes de mise en évidence sémantique existantes ne sont pas conçues pour des charges de travail d'IA de production. Après avoir évalué toutes les solutions disponibles, nous avons constaté qu'aucune n'offrait la précision, la latence, la couverture multilingue ou la robustesse requises pour les pipelines RAG, les systèmes d'agents ou la recherche sur le Web à grande échelle. Nous avons donc formé notre propre modèle de mise en évidence sémantique bilingue et l'avons mis en libre accès.

Comment fonctionne la mise en évidence par mot-clé - et pourquoi elle échoue dans les systèmes d'IA modernes

Les systèmes de recherche traditionnels mettent en œuvre la mise en évidence par simple correspondance de mots-clés. Lorsque les résultats sont renvoyés, le moteur localise les positions exactes des jetons qui correspondent à la requête et les enveloppe dans un balisage (généralement les balises <em> ), laissant au frontend le soin de rendre la mise en évidence. Cette méthode fonctionne bien lorsque les termes de la requête apparaissent textuellement dans le texte.

Le problème est que ce modèle suppose que la pertinence est liée au chevauchement exact des mots clés. Dès que ce postulat est rompu, la fiabilité chute rapidement. Tout résultat exprimant la bonne idée avec une formulation différente n'est pas mis en évidence, même si l'étape de recherche a été correcte.

Cette faiblesse devient évidente dans les applications modernes de l'IA. Dans les pipelines RAG et les flux de travail des agents d'IA, les requêtes sont plus abstraites, les documents sont plus longs et les informations pertinentes peuvent ne pas réutiliser les mêmes mots. La mise en évidence par mot-clé ne peut plus montrer aux développeurs - ou aux utilisateurs finaux - oùse trouve réellement la réponse, ce qui donne l'impression que le système dans son ensemble est moins précis, même lorsque la recherche fonctionne comme prévu.

Supposons qu'un utilisateur demande "Comment puis-je améliorer l'efficacité d'exécution du code Python ?" Le système extrait un document technique d'une base de données vectorielle. La mise en évidence traditionnelle ne peut marquer que les correspondances littérales telles que "Python", "code", "exécution" et "efficacité".

Cependant, les parties les plus utiles du document peuvent être :

  • Utiliser les opérations vectorisées de NumPy au lieu de boucles explicites

  • Éviter la création répétée d'objets à l'intérieur des boucles

Ces phrases répondent directement à la question, mais elles ne contiennent aucun des termes de la requête. Par conséquent, la mise en évidence traditionnelle échoue complètement. Le document peut être pertinent, mais l'utilisateur doit le parcourir ligne par ligne pour trouver la réponse.

Le problème est encore plus prononcé avec les agents d'intelligence artificielle. Souvent, la requête de recherche d'un agent n'est pas la question originale de l'utilisateur, mais une instruction dérivée produite par le raisonnement et la décomposition des tâches. Par exemple, si un utilisateur demande : "Pouvez-vous analyser les tendances récentes du marché ?", l'agent pourrait générer une requête du type "Récupérer les données sur les ventes d'électronique grand public du quatrième trimestre 2024, les taux de croissance d'une année sur l'autre, l'évolution des parts de marché des principaux concurrents et les fluctuations des coûts de la chaîne d'approvisionnement".

Cette requête englobe plusieurs dimensions et codifie une intention complexe. La mise en évidence traditionnelle par mot-clé ne peut toutefois que marquer mécaniquement les correspondances littérales telles que "2024", "données de vente" ou "taux de croissance".

En attendant, les informations les plus précieuses peuvent ressembler à ce qui suit :

  • La série iPhone 15 a entraîné une reprise plus large du marché

  • Les contraintes d'approvisionnement en puces ont fait grimper les coûts de 15 %.

Ces conclusions peuvent ne pas partager un seul mot-clé avec la requête, même si elles correspondent exactement à ce que l'agent essaie d'extraire. Les agents ont besoin d'identifier rapidement les informations réellement utiles à partir de grands volumes de contenu récupéré, et la mise en évidence par mot-clé n'offre pas d'aide réelle.

Qu'est-ce que la mise en évidence sémantique et quels sont les points faibles des solutions actuelles ?

Lamise en évidence sémantique repose sur la même idée que celle qui sous-tend la recherche sémantique : l'appariement basé sur le sens plutôt que sur les mots exacts. Dans la recherche sémantique, les modèles d'intégration cartographient le texte en vecteurs, de sorte qu'un système de recherche - généralement soutenu par une base de données vectorielles comme Milvus - peutretrouver des passages qui véhiculent la même idée que la requête, même si la formulation est différente. La mise en évidence sémantique applique ce principe à une granularité plus fine. Au lieu de marquer les occurrences littérales des mots-clés, elle met en évidence les passages spécifiques d'un document qui sont sémantiquement pertinents par rapport à l'intention de l'utilisateur.

Cette approche résout un problème fondamental de la mise en évidence traditionnelle, qui ne fonctionne que lorsque les termes de la requête apparaissent textuellement. Si un utilisateur recherche "performances de l'iPhone", la mise en évidence par mot-clé ignore des expressions telles que "puce A15 Bionic", "plus d'un million de tests" ou "fluide sans décalage", même si ces lignes répondent clairement à la question. La mise en évidence sémantique capture ces connexions axées sur le sens et fait apparaître les parties du texte qui intéressent réellement les utilisateurs.

En théorie, il s'agit d'un problème de correspondance sémantique simple. Les modèles d'intégration modernes codent déjà bien la similarité, de sorte que les éléments conceptuels sont déjà en place. Le défi vient des contraintes du monde réel : la mise en évidence se produit à chaque requête, souvent à travers de nombreux documents récupérés, ce qui rend la latence, le débit et la robustesse inter-domaines des exigences non négociables. Les grands modèles de langage sont tout simplement trop lents et trop coûteux pour fonctionner sur ce chemin à haute fréquence.

C'est pourquoi la mise en évidence sémantique pratique nécessite un modèle léger et spécialisé, suffisamment petit pour s'intégrer à l'infrastructure de recherche et suffisamment rapide pour renvoyer les résultats en quelques millisecondes. C'est là que la plupart des solutions existantes échouent. Les modèles lourds sont précis mais ne peuvent pas fonctionner à grande échelle ; les modèles légers sont rapides mais perdent en précision ou échouent sur des données multilingues ou spécifiques à un domaine.

opensearch-semantic-highlighter

L'année dernière, OpenSearch a publié un modèle dédié à la mise en évidence sémantique : opensearch-semantic-highlighter-v1. Bien qu'il s'agisse d'une tentative significative pour résoudre le problème, elle présente deux limitations importantes.

  • Petite fenêtre contextuelle : Le modèle est basé sur une architecture BERT et prend en charge un maximum de 512 tokens, soit environ 300-400 caractères chinois ou 400-500 mots anglais. Dans le monde réel, les descriptions de produits et les documents techniques comportent souvent des milliers de mots. Le contenu au-delà de la première fenêtre est simplement tronqué, ce qui oblige le modèle à identifier les points forts sur la base d'une petite partie seulement du document.

  • Mauvaise généralisation hors domaine : Le modèle ne fonctionne bien que sur des distributions de données similaires à son ensemble d'apprentissage. Lorsqu'il est appliqué à des données hors domaine - comme l'utilisation d'un modèle formé sur des articles de presse pour mettre en évidence le contenu du commerce électronique ou de la documentation technique - les performances se dégradent fortement. Dans nos expériences, le modèle atteint un score F1 d'environ 0,72 sur les données du domaine, mais tombe à environ 0,46 sur les ensembles de données hors domaine. Ce niveau d'instabilité est problématique en production. En outre, le modèle ne prend pas en charge le chinois.

Provence / XProvence

Provence est un modèle développé par Naver et a été initialement formé pour l'élagage de contexte - unetâche qui est étroitement liée à la mise en évidence sémantique.

Ces deux tâches reposent sur la même idée sous-jacente : l'utilisation de la correspondance sémantique pour identifier le contenu pertinent et filtrer les parties non pertinentes. C'est pourquoi Provence peut être réutilisé pour la mise en évidence sémantique avec relativement peu d'adaptation.

Provence est un modèle exclusivement anglais et fonctionne raisonnablement bien dans ce contexte. XProvence est sa variante multilingue, qui prend en charge plus d'une douzaine de langues, dont le chinois, le japonais et le coréen. À première vue, XProvence semble être un bon candidat pour les scénarios de mise en évidence sémantique bilingues ou multilingues.

Dans la pratique, cependant, Provence et XProvence présentent plusieurs limites notables :

  • Une performance plus faible en anglais dans le modèle multilingue : XProvence n'atteint pas les performances de Provence sur les benchmarks en anglais. Il s'agit d'un compromis courant dans les modèles multilingues : la capacité est partagée entre les langues, ce qui entraîne souvent des performances moindres dans les langues à ressources élevées telles que l'anglais. Cette limitation est importante dans les systèmes réels où l'anglais reste une charge de travail principale ou dominante.

  • Performances limitées en chinois : XProvence prend en charge de nombreuses langues. Pendant la formation multilingue, les données et la capacité du modèle sont réparties entre les différentes langues, ce qui limite la spécialisation du modèle dans une seule d'entre elles. Par conséquent, ses performances en chinois ne sont que marginalement acceptables et souvent insuffisantes pour les cas d'utilisation de mise en évidence de haute précision.

  • Inadéquation entre les objectifs d'élagage et de mise en évidence : Provence est optimisé pour l'élagage du contexte, où la priorité est la mémorisation - conserver autant de contenu potentiellement utile que possible pour éviter de perdre des informations critiques. La mise en évidence sémantique, en revanche, met l'accent sur la précision : elle ne met en évidence que les phrases les plus pertinentes, et non de grandes parties du document. Lorsque des modèles de type Provence sont appliqués à la mise en évidence, ce décalage conduit souvent à des mises en évidence trop larges ou trop bruyantes.

  • Licence restrictive : Provence et XProvence sont tous deux publiés sous la licence CC BY-NC 4.0, qui n'autorise pas l'utilisation commerciale. Cette seule restriction les rend inadaptés à de nombreux déploiements en production.

Open Provence

Open Provence est un projet communautaire qui réimplante le pipeline de formation Provence de manière ouverte et transparente. Il fournit non seulement des scripts d'entraînement, mais aussi des flux de traitement de données, des outils d'évaluation et des modèles pré-entraînés à plusieurs échelles.

L'un des principaux avantages d'Open Provence est sa licence MIT permissive. Contrairement à Provence et XProvence, il peut être utilisé en toute sécurité dans des environnements commerciaux sans restrictions légales, ce qui le rend attrayant pour les équipes orientées vers la production.

Cela dit, Open Provence ne prend actuellement en charge que l 'anglais et le japonais, ce qui le rend inadapté à nos cas d'utilisation bilingues.

Nous avons formé un modèle de mise en évidence sémantique bilingue et l'avons mis à disposition en libre accès

Un modèle de surlignage sémantique conçu pour des charges de travail réelles doit offrir quelques capacités essentielles :

  • De solides performances multilingues

  • Une fenêtre contextuelle suffisamment large pour prendre en charge de longs documents

  • Une généralisation robuste en dehors du domaine

  • Une grande précision dans les tâches de mise en évidence sémantique

  • Une licence permissive et adaptée à la production (MIT ou Apache 2.0).

Après avoir évalué les solutions existantes, nous avons constaté qu'aucun des modèles disponibles ne répondait aux exigences requises pour une utilisation en production. Nous avons donc décidé d'entraîner notre propre modèle de surlignage sémantique : zilliz/semantic-highlight-bilingual-v1.

Pour atteindre tous ces objectifs, nous avons adopté une approche simple : utiliser de grands modèles de langage pour générer des données étiquetées de haute qualité, puis entraîner un modèle de mise en évidence sémantique léger à l'aide d'un outil open-source. Cela nous permet de combiner la force de raisonnement des LLM avec l'efficacité et la faible latence requises dans les systèmes de production.

La partie la plus difficile de ce processus est la construction des données. Pendant l'annotation, nous demandons à un LLM (Qwen3 8B) de produire non seulement les portées de mise en évidence mais aussi tout le raisonnement qui les sous-tend. Ce signal de raisonnement supplémentaire produit une supervision plus précise et plus cohérente et améliore considérablement la qualité du modèle résultant.

À un niveau élevé, le pipeline d'annotation fonctionne comme suit : raisonnement LLM → étiquettes de mise en évidence → filtrage → échantillon de formation final.

Cette conception offre trois avantages concrets dans la pratique :

  • Une meilleure qualité d'étiquetage: Le modèle est invité à réfléchir d'abord, puis à répondre. Cette étape de raisonnement intermédiaire sert d'autocontrôle intégré, réduisant la probabilité d'étiquettes superficielles ou incohérentes.

  • Amélioration de l'observabilité et du débogage: Chaque étiquette étant accompagnée d'une trace de raisonnement, les erreurs deviennent visibles. Il est ainsi plus facile de diagnostiquer les cas d'échec et d'ajuster rapidement les messages-guides, les règles ou les filtres de données dans le pipeline.

  • Données réutilisables: Les traces de raisonnement fournissent un contexte précieux pour le ré-étiquetage futur. Au fur et à mesure que les besoins évoluent, les mêmes données peuvent être réexaminées et affinées sans avoir à repartir de zéro.

Grâce à ce pipeline, nous avons généré plus d'un million d'échantillons de formation bilingues, répartis à peu près équitablement entre l'anglais et le chinois.

Pour l'entraînement du modèle, nous sommes partis de BGE-M3 Reranker v2 (0.6B paramètres, 8,192-token context window), nous avons adopté le cadre d'entraînement Open Provence, et nous nous sommes entraînés pendant trois époques sur 8× A100 GPUs, terminant l'entraînement en approximativement cinq heures.

Nous approfondirons ces choix techniques - y compris la raison pour laquelle nous nous appuyons sur les traces de raisonnement, la façon dont nous avons sélectionné le modèle de base et la façon dont l'ensemble de données a été construit - dans un article ultérieur.

Analyse comparative du modèle de mise en évidence sémantique bilingue de Zilliz

Pour évaluer les performances dans le monde réel, nous avons évalué plusieurs modèles de mise en évidence sémantique sur un ensemble varié de données. Les benchmarks couvrent à la fois des scénarios in-domain et out-of-domain, en anglais et en chinois, afin de refléter la variété des contenus rencontrés dans les systèmes de production.

Jeux de données

Nous avons utilisé les ensembles de données suivants pour notre évaluation :

  • MultiSpanQA (anglais) - un ensemble de données de réponse à des questions multi-domaines.

  • WikiText-2 (anglais) - un corpus Wikipédia hors domaine

  • MultiSpanQA-ZH (chinois) - un ensemble de données chinoises de réponse aux questions à portée multiple.

  • WikiText-2-ZH (chinois) - un corpus Wikipédia chinois hors domaine

Modèles comparés

Les modèles inclus dans la comparaison sont les suivants :

  • Modèles Open Provence

  • Provence / XProvence (publié par Naver)

  • OpenSearch Semantic Highlighter

  • Le modèle de surlignage sémantique bilingue de Zilliz

Résultats et analyse

Ensembles de données en anglais :

Jeux de données chinois :

Sur l'ensemble des benchmarks bilingues, notre modèle atteint des scores F1 moyens de pointe, surpassant tous les modèles et approches précédemment évalués. Les gains sont particulièrement prononcés sur les ensembles de données chinoises, où notre modèle surpasse de manière significative XProvence, le seul autre modèle évalué avec un support chinois.

Plus important encore, notre modèle offre des performances équilibrées entre l'anglais et le chinois, une propriété que les solutions existantes peinent à atteindre :

  • Open Provence ne prend en charge que l'anglais

  • XProvence sacrifie les performances en anglais par rapport à Provence

  • OpenSearch Semantic Highlighter ne prend pas en charge le chinois et présente une faible généralisation.

Par conséquent, notre modèle évite les compromis habituels entre la couverture linguistique et la performance, ce qui le rend plus adapté aux déploiements bilingues dans le monde réel.

Un exemple concret dans la pratique

Au-delà des scores de référence, il est souvent plus révélateur d'examiner un exemple concret. Le cas suivant montre comment notre modèle se comporte dans un scénario réel de mise en évidence sémantique et pourquoi la précision est importante.

Requête : Qui a écrit le film L'assassinat d'un cerf sacré?

Contexte (5 phrases) :

  1. The Killing of a Sacred Deer est un film de thriller psychologique de 2017 réalisé par Yorgos Lanthimos, dont le scénario a été écrit par Lanthimos et Efthymis Filippou.

  2. Le film met en vedette Colin Farrell, Nicole Kidman, Barry Keoghan, Raffey Cassidy, Sunny Suljic, Alicia Silverstone et Bill Camp.

  3. L'histoire est basée sur la pièce de théâtre grecque Iphigénie à Aulis d'Euripide.

  4. Le film raconte l'histoire d'un chirurgien cardiaque qui se lie d'une amitié secrète avec un adolescent lié à son passé.

  5. Il présente le garçon à sa famille, après quoi de mystérieuses maladies commencent à se manifester.

Bonne réponse : Laphrase 1 est la bonne réponse, car elle indique explicitement que le scénario a été écrit par Yorgos Lanthimos et Efthymis Filippou.

Cet exemple contient un piège subtil. La phrase 3 mentionne Euripide, l'auteur de la pièce de théâtre grecque originale dont l'histoire est librement inspirée. Cependant, la question demande qui a écrit le film, et non la source antique. La bonne réponse est donc les scénaristes du film, et non le dramaturge d'il y a des milliers d'années.

Résultats :

Le tableau ci-dessous résume les performances des différents modèles pour cet exemple.

ModèleRéponse correcte identifiéeRésultat
Le nôtre (M3 bilingue)A sélectionné la phrase 1 (correcte) et la phrase 3
XProvence v1A sélectionné la phrase 3 uniquement, n'a pas trouvé la bonne réponse
XProvence v2A sélectionné la phrase 3 seulement, a manqué la bonne réponse

Comparaison des scores au niveau des phrases

PhraseLes nôtres (M3 bilingue)XProvence v1XProvence v2
Phrase 1 (scénario de film, correct)0.9150.1330.081
Phrase 3 (pièce de théâtre originale, distracteur)0.7190.9470.802

Les points faibles de XProvence

  • XProvence est fortement attiré par les mots-clés "Euripide" et "écrit", attribuant à la phrase 3 un score presque parfait (0.947 et 0.802).

  • Dans le même temps, il ignore largement la réponse correcte de la phrase 1, lui attribuant des scores extrêmement faibles (0,133 et 0,081).

  • Même après avoir abaissé le seuil de décision de 0,5 à 0,2, le modèle ne parvient toujours pas à faire apparaître la bonne réponse.

En d'autres termes, le modèle est principalement guidé par des associations de mots clés au niveau de la surface plutôt que par l'intention réelle de la question.

Comment notre modèle se comporte-t-il différemment ?

  • Notre modèle attribue un score élevé (0,915) à la réponse correcte de la phrase 1, qui identifie correctement les scénaristes du film.

  • Il attribue également un score modéré (0,719) à la phrase 3, qui mentionne effectivement un concept lié au scénario.

  • Il est essentiel que la séparation soit claire et significative : 0,915 contre 0,719, soit un écart de près de 0,2.

Cet exemple met en évidence la force principale de notre approche : aller au-delà des associations basées sur les mots-clés pour interpréter correctement l'intention de l'utilisateur. Même lorsque plusieurs concepts d'"auteur" apparaissent, le modèle met systématiquement en évidence celui auquel la question fait réellement référence.

Nous partagerons un rapport d'évaluation plus détaillé et d'autres études de cas dans un article ultérieur.

Essayez-le et dites-nous ce que vous en pensez

Nous avons ouvert notre modèle de mise en évidence sémantique bilingue sur Hugging Face, avec tous les poids du modèle disponibles publiquement afin que vous puissiez commencer à expérimenter dès maintenant. Nous aimerions savoir comment il fonctionne pour vous - veuillez nous faire part de vos commentaires, problèmes ou idées d'amélioration au fur et à mesure que vous l'essayez.

En parallèle, nous travaillons sur un service d'inférence prêt pour la production et sur l'intégration du modèle directement dans Milvus en tant qu'API de mise en évidence sémantique native. Cette intégration est déjà en cours et sera bientôt disponible.

La mise en évidence sémantique ouvre la voie à une expérience plus intuitive en matière de RAG et d'IA agentique. Lorsque Milvus récupère plusieurs longs documents, le système peut immédiatement faire apparaître les phrases les plus pertinentes, en indiquant clairement où se trouve la réponse. Cela n'améliore pas seulement l'expérience de l'utilisateur final, mais aide également les développeurs à déboguer les pipelines de recherche en montrant exactement les parties du contexte sur lesquelles le système s'appuie.

Nous pensons que la mise en évidence sémantique deviendra une fonctionnalité standard dans les systèmes de recherche et de RAG de la prochaine génération. Si vous avez des idées, des suggestions ou des cas d'utilisation pour la mise en évidence sémantique bilingue, rejoignez notre canal Discord et partagez vos idées. Vous pouvez également réserver une session individuelle de 20 minutes pour obtenir des informations, des conseils et des réponses à vos questions dans le cadre des Milvus Office Hours.

    Try Managed Milvus for Free

    Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

    Get Started

    Like the article? Spread the word

    Continuer à Lire