Granite Embedding Multilingual R2: Open Apache 2.0 Multilingual Embeddings with 32K Context — Best Sub-100M Retrieval Quality

IBM releases two new Apache 2.0 multilingual embedding models built on ModernBERT, featuring a 32K context window and industry-leading retrieval quality for their size classes.
Granite Embedding Multilingual R2: Open Apache 2.0 Multilingual Embeddings with 32K Context — Best Sub-100M Retrieval Quality
TL;DR:Two new Apache 2.0 multilingual embedding models built on ModernBERT — a 97M-parameter compact model that beats every open sub-100M multilingual embedder on MTEB Multilingual Retrieval (60.3), and a 311M full-size model that scores 65.2 on MTEB Multilingual Retrieval (#2 among open models under 500M parameters) with Matryoshka support. Both cover 200+ languages, are tuned on 52 languages, handle 32K-token context (64x R1), and add code retrieval across 9 programming languages.
Multilingual embedding models face a persistent tension: broad language coverage usually comes at the cost of model size, and small models usually sacrifice languages. If you work across languages — retrieval-augmented generation over multilingual corpora, cross-lingual search, code retrieval in international teams — you've likely had to choose between a model that's fast enough and one that's good enough.
The Granite Embedding Multilingual R2 release narrows that gap considerably. We're releasing two new multilingual embedding models:
granite-embedding-311m-multilingual-r2— A 311M-parameter full-size model with 768-dimensional embeddings, Matryoshka dimension support, and top-tier multilingual retrieval quality. granite-embedding-97m-multilingual-r2— A 97M-parameter compact model with 384-dimensional embeddings that delivers strong retrieval quality for its size.
Both models support 200+ languages with enhanced retrieval quality for 52 languages and programming code, handle context lengths up to 32,768 tokens (a 64x increase over their R1 predecessors), and are released under the Apache 2.0 license. They work out of the box with sentence-transformers and transformers, require no task-specific instructions, and are compatible as drop-in replacements in LangChain, LlamaIndex, Haystack, and Milvus with a one-line model name change.
A Strong Sub-100M Multilingual Model
The standout of this release is granite-embedding-97m-multilingual-r2. At 97 million parameters, it scores 60.3 on Multilingual MTEB Retrieval across 18 languages — the highest retrieval score we've found for any open multilingual embedding model under 100M parameters. The next-best model in that size class, multilingual-e5-small, scores 50.9 on the same benchmark — a +9.4 point gap.
What Changed from R1
The Granite Embedding Multilingual R1 models were built on XLM-RoBERTa encoders with a 512-token context window. The R2 generation is a ground-up rebuild using ModernBERT. This shift brings several practical benefits: alternating attention lengths reduce computation on long sequences, rotary position embeddings allow the 32K context window without positional interpolation hacks, and Flash Attention 2.0 support speeds up encoding on modern GPUs.
Training and Methodology
The models are trained through a multi-stage pipeline including:
- Knowledge distillation: Learning from teacher models like Granite 3.3 Instruct and Mistral v0.2 Instruct.
- Contrastive fine-tuning: Standard contrastive training on multilingual retrieval pairs across 52 languages and code.
- Model merging: Combining strengths of models optimized for different objectives into a single set of weights.
- Matryoshka Representation Learning: Training with Matryoshka objectives to allow for flexible embedding dimensions.
Source: Hugging Face Blog
















