De la recherche vectorielle aux puissantes API REST, Elasticsearch offre aux développeurs la boîte à outils de recherche la plus complète. Explorez nos notebooks d’exemples sur GitHub pour tester de nouveaux cas d’usage. Vous pouvez également démarrer votre essai gratuit ou exécuter Elasticsearch en local dès aujourd’hui.
Introduction
Dans la dernière partie de cette série, nous avons déployé le modèle E5 pré-entraîné d'Elastic (ainsi que d'autres modèles d'intégration de texte multilingue de Hugging Face) et nous nous sommes plongés dans la génération d'intégrations vectorielles denses à partir de vos données textuelles à l'aide d'Elasticsearch et de Kibana. Dans ce blog, nous examinerons les résultats de ces encastrements et mettrons en évidence les avantages significatifs de l'utilisation d'un modèle multilingue.
Maintenant que nous avons notre index coco_multilingual, la recherche nous donnera des documents en plusieurs langues, avec le champ "en" pour référence :
Effectuer une recherche en anglais
Essayons d'effectuer la recherche en anglais et voyons ce qu'il en est :
Ici, même si la requête semble faussement simple, nous recherchons les enchâssements numériques du mot "kitty" dans tous les documents, dans toutes les langues, sous le capot. Et comme nous effectuons une recherche vectorielle, nous pouvons rechercher sémantiquement tous les mots susceptibles d'être liés à "kitty" : "chat", "chaton", "félin", "gatto" (italien), "mèo" (vietnamien), 고양이 (coréen), 猫 (chinois), etc. Ainsi, même si ma requête est en anglais, nous pouvons rechercher du contenu dans toutes les autres langues. Par exemple, la recherche d'un chat lying on something donne des documents en italien, en néerlandais ou en vietnamien. Une question d'efficacité !
Recherche de contenu dans d'autres langues
De même, une recherche par mot-clé pour "chat" en coréen ("고양이") donnera également des résultats significatifs. Ce qui est spectaculaire ici, c'est que nous n'avons même pas de documents en coréen dans cet index !
Cela fonctionne parce que le modèle d'intégration représente le sens dans un espace sémantique partagé, ce qui permet de retrouver des images pertinentes même si la requête est formulée dans une langue différente de celle des légendes indexées.
Augmenter la pertinence des résultats de recherche grâce à la recherche hybride et au reranking
Nous sommes heureux que les résultats pertinents soient apparus comme prévu. Mais dans le monde réel, par exemple dans le commerce électronique ou dans les applications RAG qui doivent se limiter aux 5 à 10 premiers résultats les plus pertinents, nous pouvons utiliser un modèle de classement pour hiérarchiser les résultats les plus pertinents.
Par exemple, une requête demandant "quelle est la couleur du chat ?" en vietnamien donnera un grand nombre de résultats, mais les 1 ou 2 premiers ne seront pas forcément les plus pertinents.
Les résultats mentionnent tous le chat, ou une forme de couleur :

Améliorons donc cela ! Intégrons le modèle de rerank multilingue de Coherepour améliorer le raisonnement correspondant à notre question.
Maintenant, avec les premiers résultats, notre application peut répondre en toute confiance que la couleur du chaton est noire ou brune avec des rayures. Ce qui est encore plus intéressant ici, c'est que notre recherche vectorielle a détecté une omission dans la légende anglaise de l'ensemble de données original. Il est capable de trouver le chat à rayures brunes alors que la traduction anglaise de référence a omis ce détail. C'est la force de la recherche vectorielle.
Conclusion
Dans ce blog, nous avons présenté l'utilité d'un modèle d'intégration multilingue, et comment tirer parti d'Elasticsearch pour intégrer les modèles afin de générer des intégrations, et d'améliorer efficacement la pertinence et la précision avec une recherche hybride et un reranker. Vous pouvez créer votre propre cluster Cloud pour essayer la recherche sémantique multilingue en utilisant notre modèle E5 prêt à l'emploi sur la langue et l'ensemble de données de votre choix.




