Blog/Best open embedding models
Models · November 2026

Best open embedding models in November 2026: MTEB scores, licenses and memory for 18 models

By Samuel Seidel · Published November 7, 2026 · Sources checked November 7, 2026

Of 18 open-weight embedding models I scored from the official MTEB results on 7 November 2026, Microsoft's harrier-oss-v1-27b ranks first on MTEB(Multilingual, v2) at a 74.27 mean task score (MIT license, about 54 GB in BF16), followed by Tencent's KaLM-Embedding-Gemma3-12B-2511 at 72.32 and Qwen3-Embedding-8B at 70.58 (Apache 2.0). On MTEB(eng, v2), the best complete runs in that set are QZhou-Embedding at 75.97 and Qwen3-Embedding-8B at 75.22. For most self-hosted RAG, Qwen3-Embedding-4B or 8B is the pick: Apache 2.0, 32k context, 8 to 15 GB of weights.

Which open embedding model scores highest on MTEB?

harrier-oss-v1-27b has the highest MTEB(Multilingual, v2) mean of the 18 open models I computed, 3.7 points above Qwen3-Embedding-8B at 3.6 times the parameter count. The live board at leaderboard.mteb.org would not load its score table from my network, so I took the raw per-task results from the results repository that feeds it (last updated 5 November 2026) and averaged them over the task lists in mteb 2.27.1: 131 tasks for MTEB(Multilingual, v2), 41 for MTEB(eng, v2). The method reproduces published figures to the second decimal: 70.58 for Qwen3-Embedding-8B, 72.32 for KaLM, 69.46 for llama-embed-nemotron-8b, 59.56 for BGE-M3.

ModelMTEB(Multilingual, v2)MTEB(eng, v2)LicenseSourceDate
harrier-oss-v1-27b74.27incomplete (21 of 41)MITMTEB results2026-11-07
KaLM-Embedding-Gemma3-12B-251172.32incomplete (21 of 41)Tencent + Gemma terms, not for EUMTEB results2026-11-07
Qwen3-Embedding-8B70.5875.22Apache 2.0MTEB results2026-11-07
llama-embed-nemotron-8b69.46incomplete (21 of 41)NVIDIA, non-commercialMTEB results2026-11-07
Qwen3-Embedding-4B69.4574.60Apache 2.0MTEB results2026-11-07
harrier-oss-v1-0.6b69.0170.64MITMTEB results2026-11-07
Octen-Embedding-8B67.68 (129 of 131, not comparable)incomplete (21 of 41)Apache 2.0MTEB results2026-11-07
jina-embeddings-v5-text-small67.7 (self-reported)71.7 (self-reported)CC BY-NC 4.0Jina model card2026-02-18
harrier-oss-v1-270m66.5567.72MITMTEB results2026-11-07
jina-embeddings-v5-text-nano65.5271.11CC BY-NC 4.0MTEB results2026-11-07
Qwen3-Embedding-0.6B64.3470.47Apache 2.0MTEB results2026-11-07
multilingual-e5-large-instruct63.2265.56MITMTEB results2026-11-07
embeddinggemma-300m61.1469.67Gemma termsMTEB results2026-11-07
embeddinggemma-260.52 (card: 61.36)67.53 (card: 68.46)Apache 2.0MTEB results2026-11-07
bge-m359.56incomplete (27 of 41)MITMTEB results2026-11-07
snowflake-arctic-embed-l-v2.057.0363.60Apache 2.0MTEB results2026-11-07
granite-embedding-311m-multilingual-r255.96incomplete (28 of 41)Apache 2.0MTEB results2026-11-07
QZhou-Embeddingincomplete (24 of 131)75.97Apache 2.0MTEB results2026-11-07

Mean (Task), 0 to 100, my average of the per-task JSON files in embeddings-benchmark/results (last push 5 November 2026) over the task lists and eval splits in mteb 2.27.1. "Incomplete" means the repository holds results for fewer tasks than the benchmark, so no comparable mean exists. Licenses are from each model's Hugging Face card or metadata. NVIDIA's Nemotron-3-Embed-8B is missing because the repository holds only 10 of its 131 multilingual tasks; NVIDIA reports it on RTEB instead.

Why can the leaderboard order differ from the mean?

Because the live leaderboard ranks models by a Borda count across tasks, not by the mean, and because the published numbers are not all from the same runs. The llama-embed-nemotron-8b card shows the effect: in October 2025 it was Borda rank 1 with a 69.46 mean, while Qwen3-Embedding-8B had the higher 70.58 mean and sat at Borda rank 3. A model that wins many small tasks by a little can outrank one that wins fewer tasks by a lot.

Three more checks before trusting one number:

Which embedding model is best for German, French, Czech or Polish RAG?

For European-language retrieval the 4B-plus models sit within two to three points of each other, and the aggregate MTEB rank is a poor guide below 1B parameters. MTEB has language benchmarks for German, French, Polish, Dutch, Spanish, Slovak and Scandinavian languages plus a combined MTEB(Europe, v1), per the mteb 2.27.1 definitions, but no Czech one. So I pulled per-language subsets of three retrieval tasks from the same results repository.

ModelWikipedia csWikipedia deBelebele plBelebele csMIRACL-HN deMIRACL-HN fr
harrier-oss-v1-27b93.093.695.696.259.358.1
llama-embed-nemotron-8b94.193.795.296.462.061.3
Qwen3-Embedding-8B92.593.098.598.361.961.8
pplx-embed-v1-4b93.893.997.097.158.955.8
KaLM-Embedding-Gemma3-12B-251192.892.995.295.856.656.2
Qwen3-Embedding-4B91.692.395.094.763.060.2
multilingual-e5-large-instruct92.892.593.693.943.440.7
jina-embeddings-v5-text-small91.091.694.193.558.058.6
bge-m390.290.394.094.057.659.4
embeddinggemma-290.490.492.092.255.254.6
granite-embedding-311m-multilingual-r288.488.487.890.851.052.1
Qwen3-Embedding-0.6B87.789.090.089.454.255.0
harrier-oss-v1-0.6b84.087.590.290.756.457.9

nDCG@10 (0 to 100) for the cs, de and pl subsets of WikipediaRetrievalMultilingual (test), BelebeleRetrieval (monolingual pairs, test) and MIRACLRetrievalHardNegatives (dev), read from embeddings-benchmark/results on 7 November 2026. Every model here except jina-v5, pplx-embed and KaLM (whose metadata lists no training data) names MIRACL or MIRACL hard negatives among its MTEB training datasets, so the MIRACL columns are not zero-shot.

harrier-oss-v1-0.6b, sixth on the multilingual mean, is last of this group on Czech Wikipedia at 84.0, while multilingual-e5-large-instruct from February 2024 scores 92.8 (with a 514-token limit that rules it out for long chunks). At the top, the Wikipedia task is close to saturated. If your documents are Czech or Polish, the cheapest useful test is to embed a few hundred of your own question and passage pairs with two candidates and compare recall; the model evaluation guide covers how to build that set.

From the cards: Qwen recommends writing the query instruction in English even for multilingual use (worth 1 to 5 percent), and harrier-oss-v1 degrades without its "Instruct: ... Query: ..." prefix. If your documents start as scans, the OCR step sets the ceiling; see the local OCR model comparison.

Which open embedding models allow commercial use?

Most of the top models do; two families are non-commercial, and one license says the model is not meant for the EU. Grouped by what each Hugging Face card says:

For commercial use in the EU, that rules out the second- and fourth-ranked models in the multilingual table. Licenses for the LLM side of a RAG stack are compared in the open-weight license guide, and the GDPR side of self-hosting is on the EU compliance page.

How much memory does an embedding model and its index need?

The model is small next to an LLM; the vector index is what grows. BF16 weights are parameters times 2 bytes (parameter counts from each Hugging Face card):

Runtimes add more on top: NVIDIA lists 3.9 GiB for Nemotron 3 Embed 1B in BF16 on Hopper in its NIM performance tables, against about 2.3 GB of raw weights. Google warns against float16 for EmbeddingGemma 2 (NaN or degraded embeddings) and recommends bfloat16.

The index, worked for 10 million chunks (vectors only, before graph-index overhead, which the Spark embeddings and vector search guide estimates):

DimensionsPrecisionCalculationSizeExample
5,376float3210M x 5,376 x 4 B215.0 GBharrier-oss-v1-27b, full
4,096float3210M x 4,096 x 4 B163.8 GBQwen3-Embedding-8B, full
2,560int810M x 2,560 x 1 B25.6 GBpplx-embed-v1-4b, native int8
1,024float3210M x 1,024 x 4 B41.0 GBQwen3 truncated (MRL), 0.6B models
768float3210M x 768 x 4 B30.7 GBEmbeddingGemma 2, Granite R2
256float3210M x 256 x 4 B10.2 GBEmbeddingGemma 2 at 256
1,024binary10M x 128 B1.3 GBbinary quantization, usually with rescoring

My calculation. Matryoshka truncation ranges per card: Qwen3-Embedding 32 to 4,096, KaLM 64 to 3,840, jina-v5-text-small 32 to 1,024, Granite R2 128 to 768. pplx-embed-v1 outputs int8 natively and supports binary.

Truncation is cheaper than it sounds. The EmbeddingGemma 2 card gives 61.36 at 768 dimensions, 61.17 at 512 and 60.41 at 256 on MTEB(Multilingual, v2), so cutting the index by two thirds costs under one point. At 128 it drops to 57.89. A full 4,096-dimension Qwen3-8B index at 163.8 GB is bigger than a DGX Spark's 128 GB of memory; truncated to 1,024 it is a quarter of that.

How fast do embedding models run on a GPU?

Embedding is one compute-bound forward pass, so throughput falls with parameter count and input length. First-party figures with exact conditions:

ModelGPUPrecisionInput, batch, concurrencyInputs/sSourceDate
Nemotron 3.5 Embed 1BGB10 (DGX Spark)FP16512 tok, 1, 151.6NVIDIA NIM docs2026-11-07
Nemotron 3.5 Embed 1BGB10 (DGX Spark)FP168,192 tok, 1, 12.5NVIDIA NIM docs2026-11-07
Nemotron 3.5 Embed 1BH100 80GBFP16512 tok, 1, 1206.1NVIDIA NIM docs2026-11-07
Nemotron 3 Embed 1BH100 80GBBF16512 tok, 64, 3148.2NVIDIA NIM docs2026-11-07
Nemotron 3 Embed 1BRTX PRO 6000 BlackwellBF16512 tok, 64, 3130.5NVIDIA NIM docs2026-11-07
Nemotron 3 Embed 1BRTX PRO 6000 BlackwellNVFP4512 tok, 64, 3585.8NVIDIA NIM docs2026-11-07
granite-embedding-311m-multilingual-r2H100not stated512 tok, 1,024, 11,828IBM model card2026-04-29

Vendor figures, not reproduced. GPUwerk has not published embedding throughput measurements. The GB10 rows are batch 1 only; NVIDIA lists no batched GB10 rows.

Worked example: embedding 1 million 512-token chunks with Nemotron 3.5 Embed 1B at NVIDIA's batch-1 GB10 rate takes 1,000,000 / 51.6 = 19,380 s, or 5.4 hours, which is $4.25 on a Spark rented at $0.79 per hour. The same job at the H100 batch-1 rate is 1,000,000 / 206.1 = 4,852 s (1.3 hours). IBM's Granite figure would finish it in 1,000,000 / 1,828 = 547 s, about 9 minutes, on an H100. A 4B model does roughly 3.5 times the work per token of a 1.1B one, so by my estimate expect hours, not minutes, for Qwen3-Embedding-4B over a million chunks on one GB10. Large ingestion runs fit the batch processing guide. Note the NVFP4 row: 4.5 times the BF16 throughput on the same Blackwell workstation card, so look for an NVFP4 build of your embedder on Blackwell hardware.

For serving, the Qwen3 card names vLLM 0.8.5+ or Text Embeddings Inference 1.7.2, NVIDIA recommends vLLM 0.25.0 for Nemotron 3 Embed, and pplx-embed needs TEI 1.9.2+. Flags for running vLLM next to a generation model are in the vLLM install guide.

Which open reranker should you pair with it?

Qwen3-Reranker-4B: it is within 0.2 points of the 8B on Qwen's table at half the size, it beats the 0.6B to 1.5B rerankers on Jina's MIRACL and RTEB columns (jina-reranker-v3.5 edges it on English BEIR), and it is Apache 2.0. A reranker scores every query and candidate pair, so its cost grows with the candidate count.

RerankerParamsLicenseMMTEB-RBEIRMIRACLRTEBSource
Qwen3-Reranker-8B8BApache 2.072.94not listednot listednot listedQwen card
Qwen3-Reranker-4B4BApache 2.072.7462.2876.5677.68Qwen card, Jina card
jina-reranker-v3.50.6BCC BY-NC 4.0not listed63.2074.1170.95Jina card
mxbai-rerank-large-v21.5BApache 2.0not listed62.4569.6570.81Jina card
Qwen3-Reranker-0.6B0.6BApache 2.066.3656.9467.1268.41Qwen card, Jina card
bge-reranker-v2-m30.57BApache 2.058.36not listednot listednot listedQwen card

nDCG@10, self-reported by Qwen (top 100 candidates from Qwen3-Embedding-0.6B; the embedder alone scores 64.64 on MMTEB-R) and by Jina (first stage excluded). The two vendors use different candidate sets, so compare within a column from one source only. Licenses from Hugging Face metadata.

By my estimate, scaling NVIDIA's H100 figure (148.2 inputs/s, 1.14B model, 512 tokens) by parameter count gives about 42 pairs/s for a 4B reranker: roughly 2.4 seconds per query for 100 candidates, about 0.4 seconds with the 0.6B. For interactive search I rerank the top 20 to 50.

Which embedding model would I pick?

For a commercial RAG system over German, Czech or Polish documents on one 32 GB GPU or one Spark, I'd start with Qwen3-Embedding-4B truncated to 1,024 dimensions plus Qwen3-Reranker-0.6B, then try the 8B pair only if a test on my own documents shows a gain. Both are Apache 2.0, take 32k tokens, and together need under 10 GB of weights, which leaves the rest of the memory for the LLM (the memory management guide covers sharing).

Every model here except harrier-27b fits a 32 GB card in BF16; the real question is whether the LLM fits beside it. To compare candidates on real documents, a rented Spark billed by the minute has room for three embedders, a reranker and a 4-bit 70B-class model at once.

FAQ

What is the best open-source embedding model in 2026?

By MTEB(Multilingual, v2) mean task score, Microsoft's harrier-oss-v1-27b leads the open models I computed at 74.27 (MIT license), ahead of KaLM-Embedding-Gemma3-12B-2511 at 72.32 and Qwen3-Embedding-8B at 70.58. Scores come from the MTEB results repository as of 7 November 2026. For most self-hosted RAG, Qwen3-Embedding-4B or 8B (Apache 2.0, 32k context) is the better trade of quality, size and license.

What is the best embedding model for German, Czech or Polish documents?

On the MTEB per-language retrieval tasks I pulled, the 4B to 27B models all land between 91.6 and 94.1 nDCG@10 on Czech and German Wikipedia retrieval, so the gap at the top is small. Size matters more below 1B: harrier-oss-v1-0.6b scores 84.0 on Czech while the older multilingual-e5-large-instruct scores 92.8. Test two or three candidates on your own documents before choosing.

Which open embedding models can I use commercially?

Qwen3-Embedding and Qwen3-Reranker (Apache 2.0), harrier-oss-v1 (MIT), EmbeddingGemma 2 (Apache 2.0), IBM Granite Embedding R2 (Apache 2.0), BGE-M3 (MIT) and NVIDIA Nemotron 3 Embed (OpenMDW-1.1) allow commercial use per their Hugging Face cards. jina-embeddings-v5 and jina-reranker-v3.5 are CC BY-NC 4.0, llama-embed-nemotron-8b is non-commercial, and KaLM's license says it is not intended for use in the EU.

How much VRAM does an embedding model need?

Roughly the parameter count times 2 bytes in BF16, plus a few GB for activations and the runtime. Qwen3-Embedding-8B is about 15.1 GB, Qwen3-Embedding-4B about 8.0 GB, and 0.6B models about 1.2 GB, so all of them fit a 32 GB RTX 5090. harrier-oss-v1-27b needs about 54 GB in BF16, which fits a 128 GB DGX Spark but not a 32 GB card without quantization.

Which open reranker should I use with an embedding model?

Qwen3-Reranker-4B (Apache 2.0) is my default. On Qwen's own table it scores 72.74 on MMTEB-R against 72.94 for the 8B version at half the size, and on Jina's table it beats jina-reranker-v3.5 on MIRACL (76.56 vs 74.11) and RTEB (77.68 vs 70.95). For low latency, Qwen3-Reranker-0.6B or bge-reranker-v2-m3 at about 1.2 GB each are the commercial-friendly small options.

Sources

Every figure above is attributed to its source in the sentence or table where it appears. Pages were read on 7 November 2026 unless a date says otherwise.

Related pages

First top-up: pay $20, get $30 in credit

Test embedders on your own documents.

Rent a DGX Spark by the minute, load two or three embedding models next to your LLM in 128 GB, and score them on your own corpus before you commit.

A dedicated DGX Spark in the EU, $0.79/hour, billed per minute. $30 of credit is about 37 hours of compute.

Create account Set up embeddings and vector search on a Spark