Embeddings Multilingues pour un RAG Global
Construisez des systèmes RAG qui fonctionnent dans toutes les langues en utilisant des modèles d'embeddings multilingues et la récupération inter-langues.
Pourquoi le multilingue ?
Cas d'usage :
- Support client global
- Recherche inter-langues
- Bases de connaissances internationales
- Chatbots multilingues
Meilleurs modèles multilingues (Nov 2025)
mE5-large (Microsoft) :
- Plus de 100 langues
- 1024 dimensions
- Meilleur rapport performance/coût
multilingual-e5-large-instruct :
- Optimisé par instructions
- Optimisation requête/passage
- État de l'art sur le benchmark MIRACL
LaBSE (Google) :
- 109 langues
- 768 dimensions
- Excellent pour langues similaires
Implémentation de base
DEVELOPERpythonfrom sentence_transformers import SentenceTransformer model = SentenceTransformer('intfloat/multilingual-e5-large-instruct') # Requête anglaise, documents français query_en = "What is machine learning?" docs_fr = [ "L'apprentissage automatique est une branche de l'IA", "Les réseaux de neurones sont utilisés en ML" ] # Embedding avec préfixe d'instruction query_emb = model.encode(f"query: {query_en}") doc_embs = model.encode([f"passage: {doc}" for doc in docs_fr]) # Calculer la similarité from sklearn.metrics.pairwise import cosine_similarity scores = cosine_similarity([query_emb], doc_embs)[0]
Récupération inter-langues
Rechercher dans n'importe quelle langue, récupérer dans n'importe quelle langue :
DEVELOPERpython# Requête en anglais, documents en plusieurs langues query = "How to bake bread?" documents = { "en": "To bake bread, mix flour, water, yeast...", "fr": "Pour faire du pain, mélanger farine, eau, levure...", "es": "Para hacer pan, mezclar harina, agua, levadura...", "de": "Um Brot zu backen, Mehl, Wasser, Hefe mischen..." } # Encoder tout avec le même modèle query_emb = model.encode(f"query: {query}") doc_embs = { lang: model.encode(f"passage: {text}") for lang, text in documents.items() } # Tous les documents sont comparables dans le même espace vectoriel
Détection de langue + Routage
DEVELOPERpythonfrom langdetect import detect def multilingual_rag(query): # Détecter la langue de la requête lang = detect(query) # Router vers un index spécifique à la langue (optimisation optionnelle) if lang in ['en', 'fr', 'de']: index = f"docs_{lang}" else: index = "docs_multilingual" # Rechercher results = vector_db.search( collection_name=index, query_vector=model.encode(f"query: {query}") ) return results
Repli par traduction
Pour les langues rares, traduire d'abord :
DEVELOPERpythonfrom transformers import pipeline translator = pipeline("translation", model="facebook/nllb-200-distilled-600M") def translate_then_search(query, source_lang, target_lang='en'): # Traduire la requête vers une langue commune if source_lang != target_lang: translated = translator( query, src_lang=source_lang, tgt_lang=target_lang )[0]['translation_text'] else: translated = query # Rechercher dans l'espace traduit results = vector_search(translated) return results
Qdrant avec filtrage par langue
DEVELOPERpythonfrom qdrant_client import QdrantClient from qdrant_client.models import Filter, FieldCondition, MatchValue client = QdrantClient("localhost", port=6333) # Indexer les documents avec métadonnées de langue client.upsert( collection_name="multilingual_docs", points=[{ "id": 1, "vector": embedding, "payload": { "text": "...", "language": "fr" } }] ) # Rechercher avec filtre de langue results = client.search( collection_name="multilingual_docs", query_vector=query_embedding, query_filter=Filter( must=[ FieldCondition( key="language", match=MatchValue(value="fr") ) ] ) )
Évaluation inter-langues
DEVELOPERpython# Benchmark MIRACL (Multilingual Information Retrieval) from mteb import MTEB model = SentenceTransformer('intfloat/multilingual-e5-large-instruct') evaluation = MTEB(tasks=["MIRACL"]) results = evaluation.run(model, output_folder="results/") print(f"nDCG@10 moyen : {results['MIRACL']['ndcg@10']}")
Les embeddings multilingues débloquent le RAG global. Utilisez mE5 pour les meilleurs résultats en novembre 2025.
Tags
Articles connexes
Embeddings : Les Fondations de la Recherche Sémantique
Plongée profonde dans les modèles d'embedding, les représentations vectorielles et comment choisir la bonne stratégie d'embedding pour votre système RAG.
Affiner les Embeddings pour Votre Domaine
Augmentez la précision de récupération de 30% : affinez les modèles d'embeddings sur vos documents et requêtes spécifiques.
Choisir des modèles d'embedding pour le RAG
Comparez les modèles d'embedding en 2025 : OpenAI, Cohere, alternatives open-source. Trouvez le meilleur pour votre cas d'usage.