3. EmbeddingIntermediate
Multilingual Embeddings for Global RAG
November 18, 2025
11 min read
Ailog Research Team
Build RAG systems that work across languages using multilingual embedding models and cross-lingual retrieval.
Why Multilingual?
Use cases:
- Global customer support
- Cross-language research
- International knowledge bases
- Multilingual chatbots
Top Multilingual Models (Nov 2025)
mE5-large (Microsoft):
- 100+ languages
- 1024 dimensions
- Best performance/cost
multilingual-e5-large-instruct:
- Instruction-tuned
- Query/passage optimization
- SOTA on MIRACL benchmark
LaBSE (Google):
- 109 languages
- 768 dimensions
- Excellent for similar languages
Basic Implementation
DEVELOPERpythonfrom sentence_transformers import SentenceTransformer model = SentenceTransformer('intfloat/multilingual-e5-large-instruct') # English query, French documents 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" ] # Embed with instruction prefix query_emb = model.encode(f"query: {query_en}") doc_embs = model.encode([f"passage: {doc}" for doc in docs_fr]) # Compute similarity from sklearn.metrics.pairwise import cosine_similarity scores = cosine_similarity([query_emb], doc_embs)[0]
Cross-Lingual Retrieval
Search in any language, retrieve in any language:
DEVELOPERpython# Query in English, documents in multiple languages 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..." } # Encode all with same model query_emb = model.encode(f"query: {query}") doc_embs = { lang: model.encode(f"passage: {text}") for lang, text in documents.items() } # All documents are comparable in the same vector space
Language Detection + Routing
DEVELOPERpythonfrom langdetect import detect def multilingual_rag(query): # Detect query language lang = detect(query) # Route to language-specific index (optional optimization) if lang in ['en', 'fr', 'de']: index = f"docs_{lang}" else: index = "docs_multilingual" # Search results = vector_db.search( collection_name=index, query_vector=model.encode(f"query: {query}") ) return results
Translation Fallback
For rare languages, translate first:
DEVELOPERpythonfrom transformers import pipeline translator = pipeline("translation", model="facebook/nllb-200-distilled-600M") def translate_then_search(query, source_lang, target_lang='en'): # Translate query to common language if source_lang != target_lang: translated = translator( query, src_lang=source_lang, tgt_lang=target_lang )[0]['translation_text'] else: translated = query # Search in translated space results = vector_search(translated) return results
Qdrant with Language Filtering
DEVELOPERpythonfrom qdrant_client import QdrantClient from qdrant_client.models import Filter, FieldCondition, MatchValue client = QdrantClient("localhost", port=6333) # Index documents with language metadata client.upsert( collection_name="multilingual_docs", points=[{ "id": 1, "vector": embedding, "payload": { "text": "...", "language": "fr" } }] ) # Search with language filter results = client.search( collection_name="multilingual_docs", query_vector=query_embedding, query_filter=Filter( must=[ FieldCondition( key="language", match=MatchValue(value="fr") ) ] ) )
Evaluation Across Languages
DEVELOPERpython# MIRACL benchmark (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"Average nDCG@10: {results['MIRACL']['ndcg@10']}")
Multilingual embeddings unlock global RAG. Use mE5 for best results in November 2025.
Tags
embeddingmultilingualcross-lingualglobal
Related Guides
guidesintermediate
Embeddings: The Foundation of Semantic Search
Deep dive into embedding models, vector representations, and how to choose the right embedding strategy for your RAG system.
12 min read
guidesadvanced
Fine-Tune Embeddings for Your Domain
Boost retrieval accuracy by 30%: fine-tune embedding models on your specific documents and queries.
14 min read
guidesintermediate
Choosing Embedding Models for RAG
Compare embedding models in 2025: OpenAI, Cohere, open-source alternatives. Find the best fit for your use case.
11 min read