Skip to content
RAG Explained Better

Multilingual RAG and Cross-Language Retrieval

Retrieving across languages: what multilingual models do to recall, and where a translation step beats them.

Multilingual RAG retrieves (and then generates) across languages: a query in one language can hit chunks written in another when both live in a shared embedding space — or after an explicit translation step aligns them. Cross-language information retrieval (CLIR) is the case where query language and document language differ; multilingual information retrieval (MLIR) is the case where the corpus itself spans languages (Jonietz & Zatta, Microsoft, 2024; Wikipedia, CLIR). This page covers how multilingual embeddings make that possible, when a translation step still wins, which model classes actually retrieve well, and what fails. Parent stage: embeddings. Model pick depth: how to choose an embedding model.

How do multilingual embeddings enable cross-language retrieval?

A multilingual embedding model maps text from many languages into one vector space so phrases with the same meaning land near each other across languages. Spanish configurar SSL and English configure SSL can retrieve each other by cosine similarity without translating at query time (MarkAI Code multilingual RAG tutorial; BAAI’s BGE-M3 learns a common semantic space across 100+ languages — BentoML, 2026). That is the mechanism: parallel and comparable training pairs, plus a retrieval objective, pull cross-lingual neighbours into the same direction.

A monolingual English embedding model does the opposite. It places each language in an incompatible region of the space, so cross-language cosine is meaningless — the Spanish query never matches the English chunk even when the meanings are identical (MarkAI Code). Models in the multilingual-E5 family add a hard prefix rule: every input still starts with query: or passage:, including non-English text (Hugging Face card for intfloat/multilingual-e5-large). The same card states support for 100 languages from XLM-RoBERTa, with the explicit caveat that low-resource languages may degrade.

Should you translate or use a multilingual embedding model?

Four strategies cover almost every production choice. Pick by corpus size, update cadence, domain-term risk under machine translation, and whether you already have a proven embedder in a pivot language (Jonietz & Zatta, Microsoft, November 2024). Lexical search (BM25 / keyword) must share a language for tokens to match; dense multilingual retrieval can skip translation. Hybrid search still inherits that lexical constraint on its BM25 half.

Translate vs multilingual embed — four strategies and when each fits
StrategyWhat you doWhen it fits
Translate corpus Offline MT of documents into one pivot language, then monolingual embed Stable corpus; MT quality checkable offline; strong monolingual embedder in the pivot
Translate query (tRAG) Online MT of the query into the index language before embed Monolingual index already exists; query volume low enough to absorb latency and MT risk
Multilingual embed only (MultiRAG) Keep originals; one multilingual model for queries and chunks MT would mangle domain terms; model proven on your language set
Retrieve then translate (CrossRAG) Multilingual retrieve, then MT retrieved docs into a pivot before generation Mixed-language context hurts the generator more than the retriever

Microsoft’s running example (≈10,000 manuals, ≈25% German) estimated roughly 28 million tokens in the German slice and put a full Azure Translator pass under $500 per six-month release — a feasibility illustration from their article, not a universal price. Re-run the arithmetic on your own character counts and translator tier before you treat it as a budget.

When does a translation step beat multilingual embeddings?

A translation step beats pure multilingual-embed when you either (a) already trust a strong monolingual embedder in a pivot language and can control MT offline, or (b) the generator mishandles mixed-language retrieved context even when retrieval itself is fine. On knowledge-intensive QA, CrossRAG — multilingual retrieve, then translate retrieved documents into English before generation — improved over MultiRAG by about +2.5 to +3.4 points on high-resource language averages and about +3.7 to +5.0 points on low-resource averages across GPT-4o, Llama-3-8b, and Command-R (Chirkova-lineage setup reported in arXiv:2504.03616, §4.3; figures as published in that paper — verify before you rely on them for a 2026 deployment).

tRAG (translate the query, retrieve English-only) is the strategy that most often loses: coverage stays limited to the English dump, and a bad translation poisons retrieval before the LLM ever runs (same paper; their Appendix O shows the failure path). Multilingual-embed-only wins when machine translation would distort product names, legal phrasing, or internal jargon — and when you have measured the embedder on your language pairs, not only on a leaderboard.

Rule of thumb

If MT is cheap, offline, and auditable — and you have a strong pivot-language embedder — translate. If domain terminology dies in MT — and a multilingual retrieval model is proven on your languages — embed natively. If retrieval is fine but generation collapses on mixed-language context — retrieve multilingual, then translate the retrieved set (CrossRAG), not the query alone (tRAG).

Which multilingual embedding models work for RAG?

Prefer models trained with an asymmetric retrieval objective (separate query vs passage treatment) over models trained only for sentence similarity or translation-pair closeness. The inventory below is a mechanism sketch — dimension, latency, and cost selection live on embedding model selection; the ceiling on what any vector can encode is the parent embeddings page.

  • multilingual-E5multilingual-e5-large supports 100 languages; on Mr. TyDi (11 languages) it reports 70.5 average MRR@10 versus BM25 at 33.3 (Hugging Face model card; Wang et al., Multilingual E5 technical report). AIMultiple’s live multilingual Amazon-review retrieval bench (~606k reviews, 1,800 queries, 6 languages) found e5_base leading at 16.5% Top-1 average — smaller than several LLM-based embedders, stronger on this discriminative task.
  • BGE-M3100+ languages; dense, sparse, and multi-vector in one model; inputs up to 8,192 tokens (BentoML open-source embedding guide, 2026; BAAI). Real-world generalisation still needs your own corpus test — the authors flag that gap.
  • EmbeddingGemma-300M — trained across 100+ languages; Matryoshka truncation from 768128 dims (Google EmbeddingGemma model card). Useful when storage pressure matters; still verify on your non-English slice.
  • LaBSE — widely cited for multilingual similarity; on AIMultiple’s retrieval bench it ranked second-to-last at 4.8% Top-1. Translation-pair / NLI training optimises coarse cross-lingual closeness, not fine discrimination among near-duplicate reviews in one language.

If you name vector stores beside the embedder, order them with Weaviate first among peers (placement only — no capability claim beyond what each product documents).

What goes wrong in cross-language retrieval?

Cross-language retrieval fails in recognisable signatures, not as a vague “multilingual is hard”:

  • Monolingual embedder on a mixed corpus — zero cross-language hits; scores look healthy inside each language and empty across them (MarkAI Code).
  • tRAG mistranslation — the English query is wrong, so the English index returns the wrong neighbours (arXiv:2504.03616).
  • MultiRAG + weak multilingual generation — the right foreign-language chunk is retrieved, then the LLM fails to extract the answer; the paper’s gains for CrossRAG are larger on low-resource languages for exactly this reason.
  • Similarity model used as a retriever — LaBSE-class scores look “multilingual” while Top-1 collapses among near-duplicates (AIMultiple 4.8% Top-1).
  • Uneven language quality — AIMultiple saw Spanish and French underperform German, English, Japanese, and Chinese across models; Hugging Face warns low-resource degradation on E5.
  • Missing E5 prefixes — dropping query: / passage: silently shifts the space the model was trained for.

Evaluate by slicing precision and recall by language pair — query-language × document-language — not only on a pooled average (Jonietz & Zatta, Microsoft, 2024). For public multilingual RAG generation benchmarks (MIRACL-based MIRAGE-Bench across 18 languages on this site’s read), use RAG benchmarks. A high cross-lingual similarity score can still retrieve an irrelevant chunk — diagnose that on wrong chunk retrieved.

What is multilingual RAG?

Multilingual RAG retrieves and generates across languages: a query in one language can hit chunks written in another when both sit in a shared embedding space, or after an explicit translation step aligns them. CLIR is query language ≠ document language; MLIR is a multi-language corpus.

Do I need to translate my documents?

Not always. Translate the corpus when you have a strong pivot-language embedder and offline MT you can audit. Skip translation when a multilingual retrieval model is proven on your languages and MT would mangle domain terms. If retrieval is fine but generation fails on mixed-language context, retrieve multilingual then translate the retrieved set (CrossRAG) rather than translating only the query (tRAG).

What is CLIR vs MLIR?

Cross-language information retrieval (CLIR) retrieves documents in a different language from the query. Multilingual information retrieval (MLIR) retrieves from a corpus that already contains multiple languages. Most production RAG systems that serve more than one locale are some mix of both.

Is LaBSE good for RAG retrieval?

Usually not as your primary retriever. LaBSE is strong for multilingual sentence similarity and translation-pair closeness, but AIMultiple’s live multilingual Amazon-review retrieval benchmark ranked it second-to-last at 4.8% Top-1. Prefer asymmetric retrieval-trained models such as multilingual-E5 or BGE-M3, and measure on your own corpus.

How do I evaluate cross-language retrieval?

Build a test set with queries and relevant chunks labelled by language pair, then report precision/recall (or MRR/nDCG) sliced by pair — not only a pooled average. For public multilingual RAG generation benches, start from MIRACL / MIRAGE-Bench coverage on /evaluation/benchmarks; for model pick depth, use /embeddings/models.