EmbeddingGemma v1 vs v2: v1 ranked better in our text-search test
TL;DR
If you’re choosing an embedding model for text search, the older of Google’s two EmbeddingGemma
models ranked the relevant passages higher in our test. We call them EmbeddingGemma v1, Google’s
EmbeddingGemma (embeddinggemma:300m in Ollama), and EmbeddingGemma v2, the new EmbeddingGemma 2
(embeddinggemma-2:270m).
Ask both “What is the longest snake in the world?” over English Wikipedia. v1 puts first a passage from List of largest snakes that names the reticulated python. v2 puts first a line about a sea snake, from Hydrophis spiralis, and ranks a passage that MIRACL’s annotators judged relevant 4th (Example 1).
Averaged over MIRACL’s Korean, Chinese and English sets, 1,405 questions in all, the scores point the same way. Searching by vectors alone, with both models at bf16 (16-bit weights), v1 scored 61.1 nDCG@10 and v2 55.5. nDCG@10 runs from 0 to 100, and higher is better: the relevant passages sit nearer the top of the first ten results. v1’s lead was 5.6 points, with a 95% interval of 4.2 to 7.0. Hybrid search, which adds keyword search to the vectors, brought the two within about a point.
Google reports v2 ahead on code and adds images, audio and video [1, 2]; we tested none of those. For text in these languages, v1 is the better pick on our sets. If you run v2 for text, pull its bf16 or 8-bit build rather than Ollama’s 4-bit default, send its prompts, and set any distance cutoff for it again.
6:18 Prefer watching? The benchmark walkthrough Real search examples, precision checks, and what changes when you add keyword search.
Watch on YouTube
1. What Google says, and what we tested
Google released EmbeddingGemma 2, our v2, on 6 October 2026 under Apache 2.0. It maps text, images, audio and video into one 768-dimension space and reads up to 8,192 tokens [1, 2]. Google compares it with the first EmbeddingGemma, our v1: 78.68 against 68.76 on MTEB Code, about 14% better, and 61.36 against 61.15 on MTEB Multilingual, which the launch post calls matching its predecessor’s multilingual text performance [1, 2].
An embedding model turns a text into a list of numbers, a vector, so that texts with similar meanings land close together; search returns the passages closest to the question. MTEB Multilingual averages many kinds of task, from classification and clustering to sentence similarity and retrieval [4]. We measured one of them, retrieval: given a question, put the passages that answer it at the top. That’s the job of a search box, and the first step when an LLM answers from your documents, often called RAG. Our result covers that job on these sets, so it doesn’t contradict Google’s average.
2. What we ran
We searched the way Stuga, our open-source document workspace, searches: its prompts, vector width, keyword search and fusion. We have no relationship with Google, Ollama or any other vendor whose model we tested, and we paid list price for every hosted call.
Sets. Two public benchmarks whose questions and relevant passages were marked by people:
| Set | Questions | Passages | What it is |
|---|---|---|---|
| MIRACL Korean | 213 | 43,293 | Wikipedia, hard negatives |
| MIRACL Chinese | 393 | 81,309 | Wikipedia, hard negatives |
| MIRACL English | 799 | 178,768 | Wikipedia, hard negatives |
| BRIGHT StackOverflow | 117 | 107,081 | Technical questions, documentation and forum pages |
- MIRACL [3]: native speakers wrote questions over Wikipedia and judged the passages. We used MMTEB’s hard-negative version [4], which keeps, per language, every judged passage and the top results that several retrievers, BM25 among them, returned for each question: passages that rank high for some question without being marked relevant to it. A passage is embedded the way Stuga embeds a document’s first section: its title, a blank line, its text.
- BRIGHT StackOverflow [5]: technical questions, each with the documentation and forum passages BRIGHT judged relevant to it, often worded differently from the question. With 117 questions, a difference of a few points may be noise, so we call these results exploratory. It’s a set of technical questions, not a code-retrieval set.
A check on the Chinese result, on four C-MTEB sets, is in section 3.
Models. Ten models: nine on MIRACL, six of them local through Ollama and three hosted on Amazon Bedrock, as served on 7 October 2026, and OpenAI’s text-embedding-3-large on BRIGHT only.
| Model | Run as | Precision | Width | Sets |
|---|---|---|---|---|
| EmbeddingGemma v2 | Ollama embeddinggemma-2:270m | nvfp4 (default) | 768 | MIRACL ko zh en, BRIGHT, C-MTEB |
| EmbeddingGemma v2 | Ollama embeddinggemma-2:270m-bf16-text | bf16 | 768 | MIRACL ko zh en, BRIGHT |
| EmbeddingGemma v2 | Ollama embeddinggemma-2:270m-mxfp8-text | mxfp8 | 768 | MIRACL ko zh en |
| EmbeddingGemma v2, no prompts | Ollama embeddinggemma-2:270m | nvfp4 | 768 | MIRACL ko zh en |
| EmbeddingGemma v2 | sentence-transformers google/embeddinggemma-2 | bf16 | 768 | MIRACL ko |
| EmbeddingGemma v1 | Ollama embeddinggemma:300m | BF16 | 768 | MIRACL ko zh en, BRIGHT, C-MTEB |
| bge-m3 | Ollama bge-m3 | F16 | 1,024 | MIRACL ko zh en, BRIGHT |
| nomic-embed-text-v2-moe | Ollama nomic-embed-text-v2-moe | F16 | 768 | MIRACL ko zh en |
| Snowflake Arctic Embed 2 | Ollama snowflake-arctic-embed2 | F16 | 1,024 | MIRACL ko zh en |
| Qwen3-Embedding 0.6B | Ollama qwen3-embedding:0.6b | Q8_0 | 1,024 | MIRACL ko zh en |
| Cohere Embed Multilingual v3 | Bedrock cohere.embed-multilingual-v3 | hosted | 1,024 | MIRACL ko zh en, BRIGHT |
| Cohere Embed v4 | Bedrock us.cohere.embed-v4:0 | hosted | 1,024 | MIRACL ko zh en, BRIGHT |
| Amazon Titan Text Embeddings V2 | Bedrock amazon.titan-embed-text-v2:0 | hosted | 1,024 | MIRACL ko zh en, BRIGHT, C-MTEB |
| OpenAI text-embedding-3-large | OpenAI text-embedding-3-large | hosted | 1,024 | BRIGHT |
How each model was called. Each model got what a Stuga node sends it:
- Prompts. Many embedding models were trained to see a short instruction before a question and
another before a passage. Each model got the ones Stuga sends it, copied verbatim from Stuga’s
code: for v1 and v2,
task: search result | query:before a question andtitle: none | text:before a passage. bge-m3 and Titan Text Embeddings V2 take none. On Bedrock, both Cohere models got the input typessearch_queryandsearch_document; Cohere Embed Multilingual v3 refuses a text over 2,048 characters, so texts were cut to that first. - Width. A Stuga node stores 1,024-dimension vectors by default. A narrower model returned its own width, 768 for v1 and v2; hosted models were asked for 1,024.
- Ollama. Version 0.40.0 on one Mac (Apple M6, 32 GB), 64 texts a request, each tag at the quantization it ships with. Of the tags we ran, only v2’s default is 4-bit (nvfp4), so we ran its bf16 and mxfp8 tags too.
- A check outside Ollama. On Korean, we also ran v2 through sentence-transformers [10], the library Google’s model card uses, at bf16 with the same prompts, cut at 2,048 tokens as Ollama cut it.
Scoring.
- Vectors alone: every passage scored by cosine similarity, how closely its vector points the same way as the question’s, with no index in between. nDCG@10 as MMTEB scores it [4, 6], and Recall@100, the share of relevant passages in the first hundred.
- Hybrid: Stuga’s search. The 96 nearest passages and the 96 best by BM25 [7], through pg_search with Stuga’s tokenizers for Korean and Chinese, are merged by reciprocal rank fusion [8] (k = 60) and 24 kept: what Stuga hands its reranker. The reranker is off, and no distance cutoff applies, as for Stuga’s Ask and agents’ retrieval.
- Differences: paired on the same questions, 2,000 bootstrap resamples within each language, 95% interval [9]. An interval that includes zero means the test can’t tell the two apart. The intervals are exploratory: they aren’t adjusted for multiple comparisons. MIRACL figures average the three languages.
- Examples: each is one MIRACL English question. For each pattern we took the short, plain questions where it happened, ordered them by how near their ranks sat to the middle of that list, read them in that order, and kept the first whose difference shows in the excerpts. The ones we passed over, some because an unjudged passage also answered the question, are in the results with the reason. Beside each example is how many questions fit its rule, and how many fit the reverse.
3. MIRACL: Korean, Chinese and English
3.1 One question
Example 1 shows the first three passages each model returned for one question, both at bf16 with vectors alone.
EmbeddingGemma v1bf16, vectors alone
- 1 List of largest snakes Judged relevant
“Although it is generally accepted that the reticulated python is the world's longest living snake, most length estimates longer than 6.35 m (20 ft 10 in) have…”
- 2 King Cobra (disambiguation) Not judged
“The King Cobra is the world's longest venomous snake.”
- 3 Reticulated python Judged relevant
“The reticulated python ("Python reticulatus") is a species of python found in South Asia and Southeast Asia. They are the world's longest snakes and longest…”
First relevant passage: 1st
EmbeddingGemma v2bf16, vectors alone
- 1 Hydrophis spiralis Not judged
“This is perhaps the longest species of seasnake, up to .”
- 2 Snake Not judged
“The now extinct "Titanoboa cerrejonensis" snakes found were in length. By comparison, the largest extant snakes are the reticulated python, which measures…”
- 3 Titanoboa Not judged
“The only known species is "Titanoboa cerrejonensis", the largest snake ever discovered, which supplanted the previous record holder, "Gigantophis".”
First relevant passage: 4th
- This is one of 70 English questions where v1 put a relevant passage first and v2’s first relevant passage came 3rd to 10th. The reverse, v2 first and v1 3rd to 10th, happened on 26.
- Over all 799 English questions, the first passage was one MIRACL judged relevant for 404 with v1 and 362 with v2.
- Exploratory: v2 put a very short passage first, like the sea-snake line, more often than v1. A passage under 80 characters, such as a heading, a list’s lead-in or a sentence fragment, came first on 58 of the 799 English questions for v2 and on 14 for v1. About 15% of the passages are that short.
3.2 Every question
| Model | Vectors alone, nDCG@10higher is better | Hybridhigher is better | ||||
|---|---|---|---|---|---|---|
| All | ko | zh | en | nDCG@10 | Recall@24 | |
| bge-m3 | 63.9 | 70.2 | 63.7 | 57.8 | 56.3 | 84.8 |
| Cohere Embed Multilingual v3 | 61.6 | 66.1 | 60.9 | 57.7 | 56.0 | 83.6 |
| nomic-embed-text-v2-moe | 61.2 | 66.6 | 61.5 | 55.5 | 53.3 | 82.0 |
| EmbeddingGemma v1, bf16 | 61.1 | 64.4 | 63.0 | 55.8 | 54.4 | 83.0 |
| Snowflake Arctic Embed 2 | 60.6 | 66.2 | 61.3 | 54.3 | 54.5 | 82.7 |
| Cohere Embed v4 | 60.2 | 62.3 | 60.9 | 57.5 | 54.7 | 81.9 |
| Qwen3-Embedding 0.6B | 56.7 | 57.6 | 58.7 | 53.9 | 53.2 | 79.5 |
| EmbeddingGemma v2, bf16 | 55.5 | 61.7 | 54.7 | 50.1 | 53.4 | 81.7 |
| EmbeddingGemma v2, 8-bit (mxfp8) | 55.4 | 61.7 | 54.7 | 49.7 | 53.3 | 81.7 |
| EmbeddingGemma v2, 4-bit (nvfp4), Ollama's default | 54.1 | 59.7 | 53.5 | 49.0 | 53.0 | 81.7 |
| Amazon Titan Text Embeddings V2 | 51.3 | 55.8 | 49.2 | 49.0 | 51.8 | 79.5 |
| BM25 alone | 27.9 | 34.3 | 19.6 | 29.7 | — | — |
- At the same precision, v1 scored higher in each language. With vectors alone, 61.1 against 55.5 for v2 at bf16, +5.6 [4.2, 7.0]. The gap was largest on MIRACL Chinese, 63.0 against 54.7, 8.3 points; English 55.8 against 50.1, 5.7; Korean 64.4 against 61.7, 2.8. Differences come from the unrounded scores.
- v2 wasn’t behind on every measure. On Korean, its bf16 tag found 97.4% of relevant passages in the first hundred, against 96.9% for v1 (Table 5). Over the three languages, v1’s Recall@100 was higher, +0.8 [0.2, 1.6].
- With hybrid search, the two were about a point apart: 54.4 against 53.4, +1.0 [0.1, 2.0]. Between the best and the worst model, the gap shrank from 12.6 points with vectors alone to 4.6 in hybrid search.
- Against v2 at bf16, with vectors alone, bge-m3, Cohere Embed Multilingual v3, nomic-embed-text-v2-moe, EmbeddingGemma v1, Snowflake Arctic Embed 2 and Cohere Embed v4 scored higher with intervals above zero; the test couldn’t tell Qwen3-Embedding 0.6B apart from it; Amazon Titan Text Embeddings V2 scored lower.
- bge-m3 scored highest with vectors alone, 63.9, and in hybrid search, 56.3.
3.3 Where keywords help
On MIRACL, adding keyword search lowered most scores (Table 3), yet it can still find what vectors miss, such as a name. Example 2 is one question, with v2 at bf16.
Vectors aloneEmbeddingGemma v2, bf16
- 1 Christian Stauffer Not judged
“A few months after his exile, (April 6, 1672) Christian died of old age in Dirmstein, Germany. He was 93 years old.”
- 2 Johann Christian Ritter Not judged
“He died at the age of 55.”
- 3 Christian von Ehrenfels Not judged
“There he studied philosophy, was a pupil of Franz Brentano and Alexius Meinong, promoted under supervision of Meinong, following him after his move to the…”
First relevant passage: 16th
Hybrid: vectors and keywordsEmbeddingGemma v2, bf16, with BM25
- 1 Christian von Ehrenfels Not judged
“Christian von Ehrenfels was born on 20 June 1859 in Rodaun near Vienna and grew up at his father's castle Brunn am Walde in Lower Austria. He joined secondary…”
vectors alone 10th · keywords 2nd
- 2 Christian von Ehrenfels Judged relevant
“Christian von Ehrenfels (also "Maria Christian Julius Leopold Freiherr von Ehrenfels"; 20 June 1859 – 8 September 1932) was an Austrian philosopher, and is…”
vectors alone 16th · keywords 1st
- 3 Christian Stauffer Not judged
“A few months after his exile, (April 6, 1672) Christian died of old age in Dirmstein, Germany. He was 93 years old.”
vectors alone 1st · keywords 46th
First relevant passage: 2nd
By meaning alone, v2 put two other men called Christian first and the relevant passage 16th. Keyword search ranked it 1st, on the words Christian, von and Ehrenfels, and the fused list put it 2nd. This is one of 20 English questions where hybrid search lifted v2’s first relevant passage from below 10th into the top 3. The reverse, a relevant passage in the top 3 by vectors pushed below 10th by hybrid search, happened on 36. v1 had this passage first with vectors alone.
3.4 A second Chinese check
To test the Chinese result on text other than Wikipedia, and on passages that weren’t pooled from BM25, we ran four C-MTEB retrieval sets [11], about 100,000 passages each. v2 ran there only as Ollama’s default tag, not its bf16 build, so the comparison is with the 4-bit build. With vectors alone, v1 scored higher on three of them and the test couldn’t tell the two apart on e-commerce. Each of those gaps was smaller than MIRACL Chinese’s against the same tag (Table 4).
| Set | Text | Questions | Vectors alone, nDCG@10higher is better | Hybrid differenceabove zero: v1 ahead | ||
|---|---|---|---|---|---|---|
| v1 | v2 | Differenceabove zero: v1 ahead | ||||
| C-MTEB DuRetrieval | Web search | 2,000 | 78.8 | 75.5 | +3.3 [2.6, 4.0] | +1.0 [0.6, 1.4] |
| C-MTEB EcomRetrieval | E-commerce | 1,000 | 59.9 | 59.9 | 0.0 [−1.6, 1.6] | +1.5 [0.4, 2.5] |
| C-MTEB MedicalRetrieval | Medical | 1,000 | 49.9 | 43.1 | +6.8 [5.1, 8.5] | +2.9 [1.7, 4.0] |
| C-MTEB CovidRetrieval | COVID-19 news | 949 | 78.5 | 75.8 | +2.7 [1.2, 4.0] | +1.2 [0.2, 2.3] |
| MIRACL Chinese | Wikipedia | 393 | 63.0 | 53.5 | +9.5 [7.1, 12.2] | +1.4 [−0.1, 3.0] |
4. Precision and prompts
4.1 Ollama’s 4-bit default
| Model | Run as | nDCG@10higher is better | Recall@100higher is better | Hybrid nDCG@10higher is better |
|---|---|---|---|---|
| EmbeddingGemma v2 | sentence-transformers, bf16 | 62.4 | 97.4 | 61.9 |
| EmbeddingGemma v2 | Ollama, bf16 | 61.7 | 97.4 | 61.9 |
| EmbeddingGemma v2 | Ollama, mxfp8 | 61.7 | 97.4 | 61.9 |
| EmbeddingGemma v2 | Ollama, nvfp4 (default) | 59.7 | 96.2 | 61.4 |
| EmbeddingGemma v1 | Ollama, BF16 | 64.4 | 96.9 | 62.0 |
Through sentence-transformers, v2 scored 62.4 on Korean, +0.7 [0.2, 1.3] against Ollama’s bf16 tag, with the same Recall@100: Ollama’s bf16 build came close to it. We checked Korean only, and the check doesn’t tell us where the gap to v1 comes from.
Over the three languages, with vectors alone:
- Ollama’s default 4-bit (nvfp4) tag scored −1.4 [−2.1, −0.6] against the bf16 tag.
- The mxfp8 tag scored −0.1 [−0.5, 0.3]: the test can’t tell it from bf16.
- In hybrid search the 4-bit difference was −0.4 [−1.0, 0.2], which the test can’t tell from zero either.
If you run v2 in Ollama for text search, pull embeddinggemma-2:270m-bf16-text or
embeddinggemma-2:270m-mxfp8-text.
4.2 Send the prompts
Google’s model card says omitting the prefix “still works but reduces precision” [2]. Example 3 is one question, on Ollama’s default tag of v2, sent with its prompts and as raw text.
With its promptsEmbeddingGemma v2, Ollama's default tag
task: search result | query: What is a civil war? - 1 Civil war Judged relevant
“James Fearon, a scholar of civil wars at Stanford University, defines a civil war as "a violent conflict within a country fought by organized groups that aim…”
- 2 Civil War Not judged
“A civil war is an armed conflict within a nation. It is also commonly used is titles or subjects of publication and other works of art, and sometimes in local…”
- 3 Civil war Not judged
“A civil war is a high-intensity conflict, often involving regular armed forces, that is sustained, organized and large-scale. Civil wars may result in large…”
First relevant passage: 1st
Raw textThe same tag, no prompts
What is a civil war? - 1 Civil War Not judged
“Civil War may specifically refer to:”
- 2 Civil War Not judged
“A civil war is an armed conflict within a nation. It is also commonly used is titles or subjects of publication and other works of art, and sometimes in local…”
- 3 Civil war Not judged
“The Geneva Conventions do not specifically define the term "civil war"; nevertheless, they do outline the responsibilities of parties in "armed conflict not of…”
First relevant passage: 4th
Sent raw, a list’s lead-in came first, and the definition MIRACL judged relevant fell to 4th, though an unjudged one-line definition stayed 2nd in both lists. This is one of 53 English questions where the prompts put a relevant passage first and raw text put its first relevant passage 3rd to 10th; the reverse happened on 13. Exploratory: sent raw, a passage under 80 characters came first on 173 questions, against 60 with the prompts.
Over the three languages, raw text scored 50.5 against 54.1 with the prompts, −3.6 [−4.7, −2.4]. English fell most, from 49.0 to 42.8; MIRACL Chinese from 53.5 to 49.3; Korean from 59.7 to 59.3. In hybrid search the difference was −1.4 [−2.1, −0.7]. If your code embeds raw text, add the prefixes yourself.
5. BRIGHT StackOverflow (exploratory)
| Model | nDCG@10higher is better | Recall@100higher is better | Hybrid nDCG@10higher is better |
|---|---|---|---|
| EmbeddingGemma v1, bf16 | 16.4 | 61.0 | 19.2 |
| Cohere Embed Multilingual v3 | 15.9 | 52.4 | 16.3 |
| Amazon Titan Text Embeddings V2 | 12.8 | 53.0 | 18.4 |
| Cohere Embed v4 | 12.7 | 48.1 | 16.7 |
| OpenAI text-embedding-3-large | 12.7 | 54.4 | 18.0 |
| EmbeddingGemma v2, 4-bit (nvfp4), Ollama's default | 10.5 | 47.0 | 17.0 |
| EmbeddingGemma v2, bf16 | 10.4 | 46.9 | 17.2 |
| bge-m3 | 10.2 | 44.7 | 14.3 |
| BM25 alone | 14.0 | — | — |
- v1 scored highest on BRIGHT: 16.4 with vectors alone and 19.2 in hybrid search, against 10.4 and 17.2 for v2 at bf16.
- v2’s vectors alone scored below BM25 alone, 14.0. Hybrid search scored above vectors alone for every model.
- bge-m3, first on MIRACL, scored lowest here: 10.2 and 14.3.
- OpenAI’s text-embedding-3-large ran here only, from the vectors our reranker benchmark made of the same texts.
- These are technical questions answered by documentation and forum pages, not code search, so they neither confirm nor contradict Google’s code results.
6. Switching models moves the distances (exploratory)
Many apps drop a match by meaning when it’s too far from the question. Cosine distance is one minus the cosine similarity of two vectors: 0 when they point the same way, larger as texts grow less alike, so lower is closer. How far is too far depends on the model.
- On MIRACL, v1 put a question’s relevant passages at a median distance of 0.425 (the median over questions) and random passages at 0.964. v2, on Ollama’s default tag, put them at 0.224 and 0.464.
- A fixed cutoff of 0.6 kept 95.6–99.0% of relevant passages for v1 and let 0.08–0.22% of random ones through, depending on the language. For v2 it let 99.98–100% of random passages through.
Keeping that cutoff when you switch from v1 to v2 lets nearly every random passage through. Set a cutoff for each model from that model’s own distances.
7. Choosing a model for text search
- Korean, Chinese or English text: v1; pull
embeddinggemma:300m. On these MIRACL sets it scored 5.6 points above v2 at bf16 with vectors alone and 1.0 in hybrid search. - Images, audio, video or code: of the two, only v2 embeds images, audio and video, and Google reports it ahead on code [1, 2]. We didn’t test these.
- Running v2 for text: pull the bf16 or mxfp8 tag, send its prompts, and set your distance cutoff for it.
- Hybrid search: it narrowed the gaps between models on MIRACL and scored above vectors alone for every model on BRIGHT.
- Your own text: bge-m3 led MIRACL and trailed BRIGHT. Try a few dozen of your own questions with known answers before you choose.
8. In Stuga
Semantic search adds search by meaning to Stuga’s keyword search, and Settings suggests a model for it from this benchmark. In Stuga 0.1.12:
- When a local Ollama has no embedding model yet, Settings says “No embedding model here yet. Pull one, such as embeddinggemma:300m.”
- The node adds the prompts of the models it knows by name, EmbeddingGemma among them, whichever server runs them.
- A model narrower than the node’s default 1,024-dimension column, such as v1 or v2 at 768, is padded with zeros, which leaves every cosine distance unchanged, with no database change.
- Ask and agents’ retrieval run the hybrid search measured here: the 96 nearest passages and the 96 best by words, fused to 24, with no distance cutoff. With Chinese chosen under the search languages, keyword search reads traditional characters as simplified.
- Search strictness sets the search box’s distance cutoff from the model in use. The node measures the model when it’s saved, on fixed texts written for the purpose, separately for short searches and longer questions. Balanced sits where 1 in 100 of the unrelated sample pairs falls. Every MIRACL query counts as a question, and there, in an exploratory check, Balanced kept 99.8–100% of relevant passages for v1 and let 0.37–1.80% of random ones through, depending on the language; for v2’s default tag, 99.3–100% and 0.48–1.35%.
AI is off until a node administrator sets it up, and with Ollama on the same machine the text stays there.
9. Limitations
- The local runs used one Mac and Ollama 0.40.0. Each tag ran at the quantization it ships with; another build of the same model can score differently, as v2’s did.
- OpenAI’s BRIGHT vectors came from our reranker benchmark.
- MIRACL’s hard negatives were picked partly by BM25, which may work against hybrid search there. The Chinese result at bf16 is MIRACL Chinese alone: Wikipedia, with simplified questions. The C-MTEB check compared v1 with v2’s 4-bit default tag only.
- BRIGHT has 117 questions and no paired intervals.
- An example is one question. The counts beside it, and the scores, say how often a pattern happened.
- We tested text retrieval only, not images, audio, video or code search.
- v2 read at most 2,048 tokens of each text, so its 8,192-token context wasn’t tested.
- The sentence-transformers check covers Korean only.
- The reranker was off: these are first-stage results.
10. Reproduce
The code, the commands and every result file are in
stuga-dev/experiments. The sets
download at pinned revisions. The vectors aren’t committed, so a fresh checkout embeds every set
before it scores. scripts/examples.ts picks the examples from the same vectors and writes
results/2026-10-07/examples.json, with the questions it passed over.
References
- Google. EmbeddingGemma 2: an open, lightweight multimodal embedding model. 6 October 2026.
- Google DeepMind. EmbeddingGemma 2 model card. Hugging Face, 2026.
- X. Zhang, N. Thakur, O. Ogundepo, E. Kamalloo, D. Alfonso-Hermelo, X. Li, Q. Liu, M. Rezagholizadeh, J. Lin. MIRACL: A Multilingual Retrieval Dataset Covering 18 Diverse Languages. TACL 11, 2023.
- K. Enevoldsen et al. MMTEB: Massive Multilingual Text Embedding Benchmark. arXiv:2502.13595, 2025.
- H. Su et al. BRIGHT: A Realistic and Challenging Benchmark for Reasoning-Intensive Retrieval. arXiv:2407.12883, 2024.
- K. Järvelin, J. Kekäläinen. Cumulated Gain-Based Evaluation of IR Techniques. ACM Transactions on Information Systems 20(4), 2002.
- S. Robertson, H. Zaragoza. The Probabilistic Relevance Framework: BM25 and Beyond. Foundations and Trends in Information Retrieval 3(4), 2009.
- G. V. Cormack, C. L. A. Clarke, S. Büttcher. Reciprocal Rank Fusion Outperforms Condorcet and Individual Rank Learning Methods. SIGIR, 2009.
- B. Efron, R. J. Tibshirani. An Introduction to the Bootstrap. Chapman & Hall, 1993.
- N. Reimers, I. Gurevych. Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks. EMNLP, 2019.
- S. Xiao, Z. Liu, P. Zhang, N. Muennighoff, D. Lian, J.-Y. Nie. C-Pack: Packed Resources For General Chinese Embeddings. SIGIR, 2024.