Dori10 commited on
Commit
ffca589
·
verified ·
1 Parent(s): 8748160

Update the model card from turintech/artemis-models

Browse files
README.md CHANGED
@@ -2,44 +2,70 @@
2
  license: apache-2.0
3
  base_model: google/embeddinggemma-2
4
  base_model_relation: quantized
 
5
  pipeline_tag: sentence-similarity
6
  tags:
7
- - gguf
 
 
8
  - embeddings
9
-
 
 
 
10
  ---
11
 
12
- <!-- opening:start -->
13
- <p><a href="https://turintech.ai"><img src="https://huggingface.co/turintech/embeddinggemma-2-Artemis-GGUF/resolve/main/assets/turintech-logo.png" width="140" alt="TurinTech"></a><br><em>TurinTech models, built with Artemis</em></p>
 
 
14
 
15
- Google's EmbeddingGemma 2 for search and retrieval on a CPU: it turns text into 768-dimensional vectors through llama.cpp's `/v1/embeddings` endpoint.
16
 
17
- - 156.935 MB download for the default file, `embeddinggemma-2-Artemis-Q4_K_S.gguf`.
18
- - Tested on a Linux CPU with four threads and a 512-token input cap.
19
- - nDCG@10 0.859481, against 0.857125 for Unsloth's Q4 (175.674 MB), from a file 10.67% smaller. This development panel also chose the files.
20
- <!-- opening:end -->
 
 
 
 
 
 
 
 
 
 
 
 
21
 
22
  ## Run it
23
 
24
- An embedding model: llama.cpp serves its vectors on `/v1/embeddings`, not chat. The commands below select the exact compact file. The local files passed the CPU interface checks described below.
 
25
 
26
  ```bash
27
- set -e
28
- hf download turintech/embeddinggemma-2-Artemis-GGUF \
29
- embeddinggemma-2-Artemis-Q4_K_S.gguf --local-dir ./embeddinggemma-2-artemis
30
- cd ./embeddinggemma-2-artemis
31
- printf '%s %s\n' f76351ba13988274750620577c88911b195a15321c37fc991bed485ed8f81f45 embeddinggemma-2-Artemis-Q4_K_S.gguf | sha256sum -c -
32
  ```
33
 
34
- <details>
35
- <summary>Runtime build, server, requests and Ollama</summary>
 
36
 
37
- <details>
38
- <summary>Build the pinned CPU runtime</summary>
 
 
39
 
40
- On Linux x86-64, install Git, CMake, a C/C++ compiler and OpenMP development support using your system's package manager. The source commit and CMake options below match our successful CPU build. This is a source-build path, not a prebuilt binary download; your compiler and CPU can produce different binary bytes. Other platforms have not been checked here. See the [upstream build instructions at this commit](https://github.com/ggml-org/llama.cpp/blob/f3363593f457169cdfbdfe22ea399b1cc139ba18/docs/build.md) for dependencies.
 
41
 
42
- Run in a directory where `llama-cpp-embeddinggemma2` does not already exist:
 
 
 
43
 
44
  ```bash
45
  set -e
@@ -56,25 +82,18 @@ export PATH="$PWD/llama-cpp-embeddinggemma2/build/bin:$PATH"
56
  llama-server --version
57
  ```
58
 
59
- Keep the build directory and its libraries together. `GGML_NATIVE=ON` targets the build machine's CPU; do not assume its binaries run on a different CPU.
 
60
 
61
- </details>
62
-
63
- With that build on PATH and the current directory containing the downloaded GGUF, run:
64
 
65
  ```bash
66
- llama-server -m embeddinggemma-2-Artemis-Q4_K_S.gguf \
67
- --embeddings --pooling mean --embd-normalize 2 \
68
- -ngl 0 -t 4 -tb 4 -c 512 -b 512 -ub 512 -np 1 \
69
- --flash-attn off --host 127.0.0.1 --port 8080 --no-warmup
70
  ```
71
 
72
- Use `embeddinggemma-2-Artemis-Q5_K_S.gguf` for the larger alternative. Download the larger file explicitly with the same `hf download` command and its exact filename. Automatic Hugging Face import defaults remain unverified. These commands follow the repository head. Verify the downloaded file against the checksum below.
73
-
74
- <details>
75
- <summary>Embed a query and document with Python</summary>
76
-
77
- The prefixes, special tokens and 512-token cap match the measured path. Run this in another terminal:
78
 
79
  ```python
80
  import json
@@ -101,22 +120,15 @@ for text in texts:
101
  print(len(vector)) # 768 for each input
102
  ```
103
 
104
- Both final files passed this two-input CPU interface check with llama.cpp `f3363593f457169cdfbdfe22ea399b1cc139ba18`. It is an embedding endpoint, not a chat model. This check does not establish performance or support in other runtimes.
105
-
106
- </details>
107
-
108
- ### Ollama
109
 
110
- [Native Ollama packages](https://ollama.com/turintech/embeddinggemma-2-artemis) are available. Pull the exact recommended variant:
 
 
111
 
112
  ```bash
113
  ollama pull turintech/embeddinggemma-2-artemis:q4_k_s
114
- ```
115
-
116
- <details>
117
- <summary>Embed a query and document with Ollama</summary>
118
-
119
- ```bash
120
  curl http://localhost:11434/api/embed -H 'Content-Type: application/json' -d '{
121
  "model": "turintech/embeddinggemma-2-artemis:q4_k_s",
122
  "input": [
@@ -128,96 +140,114 @@ curl http://localhost:11434/api/embed -H 'Content-Type: application/json' -d '{
128
  }'
129
  ```
130
 
131
- Keep the query/document prefixes and replace the text after them. This request uses CPU execution and rejects inputs exceeding the context instead of silently truncating them.
132
-
133
- </details>
134
 
135
- `latest` and `q4_k_s` select the compact file; `q5_k_s` selects the 182.04 MB alternative. Both current files passed public-pull, full-checksum and two-input CPU embedding checks in Ollama 0.40.4. The new larger file was checked after its tag was updated; the compact file and default alias are unchanged. No chat, GPU, speed or retrieval-quality claim through Ollama is made.
 
 
136
 
137
- The existing Ollama packages display the inherited broad `Q4_K_M` metadata label, including in Ollama's runtime listing. Their payloads differ: the exact tags and file checksums identify the intended mixed-quantization artifacts.
 
 
138
 
139
  </details>
140
 
141
- <!-- choose:start -->
142
- ## Choose this model
143
-
144
- - Best for search and retrieval where a small download matters.
145
- - Consider another file when you want the best measured retrieval: our Q5_K_S (182.04 MB) has higher nDCG and Recall than Unsloth Q4. The default's Recall@10 is 0.914856, against 0.920933 for Unsloth's Q4.
146
- <!-- choose:end -->
147
-
148
- ## Files
149
-
150
- <!-- files:start -->
151
- Every file we publish for this model. Sizes are download sizes, not memory.
152
-
153
- | File | Size | Use it for | Ollama tag |
154
- | --- | --- | --- | --- |
155
- | [`embeddinggemma-2-Artemis-Q4_K_S.gguf`](https://huggingface.co/turintech/embeddinggemma-2-Artemis-GGUF/resolve/main/embeddinggemma-2-Artemis-Q4_K_S.gguf) | 157 MB | Default: smaller download; measured Recall below Unsloth Q4 | `q4_k_s` (latest) |
156
- | [`embeddinggemma-2-Artemis-Q5_K_S.gguf`](https://huggingface.co/turintech/embeddinggemma-2-Artemis-GGUF/resolve/main/embeddinggemma-2-Artemis-Q5_K_S.gguf) | 182 MB | Larger file with higher observed nDCG and Recall on the exposed development panel | `q5_k_s` |
157
-
158
- - With llama.cpp or a Hugging Face pull, add the file's quant label as the tag: `-hf turintech/embeddinggemma-2-Artemis-GGUF:Q4_K_S`.
159
- - The Ollama tag pulls our package, which holds the same file: `ollama pull turintech/embeddinggemma-2-artemis:<tag>`.
160
- - LM Studio's Hub entry [`turintech/embeddinggemma-2-artemis`](https://lmstudio.ai/turintech/embeddinggemma-2-artemis) offers every model file above.
161
-
162
- Smaller weights do not shrink the embedding index.
163
- <!-- files:end -->
164
-
165
- <!-- results:start -->
166
  ## Results
167
 
168
- Our two files against Unsloth's Q4 file and the original, on 96 queries and 1,024 documents from SciFact and FiQA. This development panel was used to choose the files.
169
 
170
  | File | Size | nDCG@10 | Recall@10 |
171
  | --- | --- | --- | --- |
172
- | **Ours, Q4_K_S (default)** | 156.935 MB | 0.859481 | 0.914856 |
173
- | **Ours, Q5_K_S** | 182.036 MB | 0.872079 | 0.928224 |
174
- | Unsloth Q4 | 175.674 MB | 0.857125 | 0.920933 |
175
- | Original FP32 | n/a | 0.856404 | 0.928224 |
176
-
177
- The default is the smallest file and gives up a little Recall@10 against Unsloth's Q4. Peak RAM and GPU compatibility are not established yet. [How it was tested](#measured-retrieval-trade-offs).
178
- <!-- results:end -->
179
 
180
- <details>
181
- <summary>Measured retrieval trade-offs</summary>
182
 
183
- ## Measured retrieval trade-offs
 
184
 
185
- The recommended compact candidate is 156.94 MB, 10.67% smaller than the measured Unsloth Q4 file. On our exposed development panel, nDCG@10 was 0.236 percentage points higher and Recall@10 was 0.608 points lower. It offers a smaller download with a measured retrieval trade-off.
 
 
 
186
 
187
- A 182.04 MB alternative has higher measured nDCG and Recall than Unsloth Q4 on the same panel, at a larger file size. Neither candidate has a confirmed speed or runtime-memory advantage. Both produce 768-dimensional text embeddings; smaller weights do not shrink the embedding index.
 
188
 
189
- 96 queries and 1,024 documents across SciFact and FiQA; equal-domain averages, 512-token cap, mean pooling and normalized 768-dimensional vectors. This development panel was used to select candidates. It is not an independent test or full MTEB evaluation.
 
190
 
191
- | Candidate | File MB | nDCG@10 | Recall@10 |
192
- |---|---:|---:|---:|
193
- | Original FP32 reference | n/a | .856404 | **.928224** |
194
- | Unsloth Q4 | 175.674 | .857125 | .920933 |
195
- | Artemis compact, recommended for size | **156.935** | .859481 | .914856 |
196
- | Artemis larger alternative | 182.036 | **.872079** | **.928224** |
197
 
198
- Bold marks the best displayed value in each column, not statistical significance. The larger candidate's measured gains over Unsloth Q4 are 1.50 percentage points in nDCG and 0.73 points in Recall; it is 3.62% larger. Small sampled-panel differences do not establish broad superiority. The compact candidate had one timing-comparable observation; that does not establish a reliable speed advantage. The larger candidate had one timing-comparable observation: query latency was 6.94% higher than the paired Unsloth control, while document throughput was 1.64% higher. This is not a speedup claim. No independent confirmation has been completed.
199
 
200
- <details>
201
- <summary>Quantization labels and file size</summary>
 
 
 
202
 
203
- `Q4_K_S` and `Q5_K_S` are size classes in a measured standard K-quant ladder made from the same BF16 parent and quantizer build. They do not describe stock tensor recipes or rank quality. The compact file fits below the 178,164,000-byte stock Q4_K_S reference; the larger file fits below the 210,669,856-byte stock Q5_K_S reference. Intermediate K classes were checked; IQ formats were not part of this naming ladder.
204
 
205
- The compact file mixes Q3_K, Q4_K, BF16 and F32; the larger file mixes Q4_K, Q5_K, BF16 and F32. Whole-file bits per weight are 4.632730 and 5.373691, respectively; tensor-payload values are 4.166577 and 4.907537. Both files include about 15.79 MB of metadata and alignment. Their inherited `general.file_type` headers still read Q4_K_M; the exact filenames select the intended files.
 
 
 
 
 
206
 
207
- </details>
208
 
209
- </details>
 
 
 
 
 
 
210
 
211
  <!-- closeness:start -->
212
  ## Retrieval quality
213
 
214
- The retrieval numbers from the tables above, in one fixed layout with the protocol behind each table. nDCG@10 and Recall@10 score the ranking against the panel's relevance labels; higher is better.
215
 
216
  <details>
217
  <summary>Protocols and standard tables</summary>
218
 
219
  n/a means the card's tables or our run records do not have that value.
220
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
221
  ### Protocol `cpu-dev-panel-512-20261016`
222
 
223
  Four CPU cores, 16 October 2026.
@@ -226,46 +256,50 @@ Four CPU cores, 16 October 2026.
226
  - Panel `dev`: BEIR SciFact and FiQA development panel, equal-domain average; dataset: BEIR SciFact and FiQA; split: development queries from the train and dev relevance judgments; queries: 96 (48 per domain); documents: 1,024 (512 per domain); text SHA-256: 097270111c4e6a70cdf602a8416897bdb393c0bebdddf1ec7c6fcf29b2487cb1 (SHA-256 of the panel file)
227
  - Tool: llama-server `/v1/embeddings` for the GGUF files; nDCG@10 and Recall@10 from dot-product ranking of the normalised 768-dimensional vectors, averaged equally over the SciFact and FiQA domains
228
  - llama.cpp build: commit f3363593f457169cdfbdfe22ea399b1cc139ba18
229
- - Command: `llama-server -m <file.gguf> --embeddings --pooling mean --embd-normalize 2 -ngl 0 -t 4 -c 2048 -b 2048 -ub 2048 -np 1 --flash-attn off`, inputs capped at 512 tokens by our harness (the card's 512-token run command is for interface checks, not this measurement)
230
  - Hardware: four CPU cores, no GPU
231
  - Settings: 512-token input cap, mean pooling including prompts, query prefix `task: search result | query: `, documents as `title: ... | text: ...`
232
- - Measured by: TurinTech measured every file in this table, including Unsloth's UD-Q4_K_XL, the same way on the same machine. Our numbers were measured on the raw quantizer outputs; the published files change only header metadata, with identical tensors
233
- - Selection: this development panel was used to choose the files; it is not an independent test or a full MTEB evaluation
234
- - Source on this card: the table columns "nDCG@10", "Recall@10"
235
  - Comparison files: Unsloth: `unsloth/embeddinggemma-2-GGUF` at `031f0d4b3553`, `embeddinggemma-2-UD-Q4_K_XL.gguf`, SHA-256 ea905fd08e8061db77a0031cbb5096d459d7cfd2bdd0ad2ba66e483f16719493
236
 
237
  Protocol `cpu-dev-panel-512-20261016`, panel `dev` (BEIR SciFact and FiQA development panel, equal-domain average):
238
 
239
  | File | Repository | Measured by | Size (MB) | Size (bytes) | nDCG@10 | Recall@10 |
240
  | --- | --- | --- | --- | --- | --- | --- |
241
- | Original FP32 reference | `google/embeddinggemma-2` at `914f7f89142e` | reference | n/a | n/a | 0.856404 | 0.928224 |
242
- | `embeddinggemma-2-UD-Q4_K_XL.gguf` | `unsloth/embeddinggemma-2-GGUF` at `031f0d4b3553` | TurinTech | 175.674 | 175673856 | 0.857125 | 0.920933 |
243
  | `embeddinggemma-2-Artemis-Q4_K_S.gguf` | `turintech/embeddinggemma-2-Artemis-GGUF` at `2f1be8eeab0f` | TurinTech | 156.935 | 156935264 | 0.859481 | 0.914856 |
244
  | `embeddinggemma-2-Artemis-Q5_K_S.gguf` | `turintech/embeddinggemma-2-Artemis-GGUF` at `2f1be8eeab0f` | TurinTech | 182.036 | 182035552 | 0.872079 | 0.928224 |
 
245
 
246
  </details>
247
  <!-- closeness:end -->
248
 
249
- ## Artifact checks and sources
250
-
251
- Both raw files rebuilt to their measured SHA-256 identities. Each cleaned copy preserves all 413 tensor payloads and all inference metadata; only the display name and modality tags changed. Both final files returned finite, normalized vectors through the CPU endpoint. No GPU or multimodal result is claimed; the separate Ollama CPU interface checks are described above. MB are decimal file sizes, not memory requirements.
252
 
253
- | File | Bytes | SHA-256 |
254
- |---|---:|---|
255
  | `embeddinggemma-2-Artemis-Q4_K_S.gguf` | 156,935,264 | `f76351ba13988274750620577c88911b195a15321c37fc991bed485ed8f81f45` |
256
  | `embeddinggemma-2-Artemis-Q5_K_S.gguf` | 182,035,552 | `476a432281b3c9c8f16b5286bbe1aa482357e4b15fe69c3f8008ade36fd8f381` |
257
 
258
- Original: `google/embeddinggemma-2` at `914f7f89142e33e77833254d9c9b90c3cef7303b`.
259
- Comparator: `unsloth/embeddinggemma-2-GGUF` at `031f0d4b35536f69ab3509d4893c923264fcf253`, file `embeddinggemma-2-UD-Q4_K_XL.gguf` (175,673,856 bytes).
260
 
261
- The earlier [151 MB](previous-compact-151mb.md) and [154 MB](previous-compact-154mb.md) candidates remain in the dated research record. This compact candidate has higher measured nDCG and Recall than both, at a slightly larger file size.
 
262
 
263
- ## Changes
264
 
265
- 16 October 2026: updated the larger Q5_K_S file from 201.17 MB to 182.04 MB, with higher observed nDCG and Recall on the same development panel. The compact default is unchanged. The [previous larger file](https://huggingface.co/turintech/embeddinggemma-2-Artemis-GGUF/resolve/42212da2548a4b9ae25db9ca429270da6d48119b/embeddinggemma-2-Artemis-Q5_K_S.gguf) and [previous card](https://huggingface.co/turintech/embeddinggemma-2-Artemis-GGUF/blob/42212da2548a4b9ae25db9ca429270da6d48119b/README.md) remain available at their original revision.
266
 
267
- These files keep improving.
 
 
268
 
269
- ## About and licence
270
 
271
- Original model by Google; public GGUF comparison by Unsloth. Both candidates use Artemis compression recipes. Apache License 2.0 applies; see [LICENSE](LICENSE) and [NOTICE](NOTICE).
 
 
2
  license: apache-2.0
3
  base_model: google/embeddinggemma-2
4
  base_model_relation: quantized
5
+ library_name: gguf
6
  pipeline_tag: sentence-similarity
7
  tags:
8
+ - turintech
9
+ - artemis
10
+ - embeddinggemma
11
  - embeddings
12
+ - retrieval
13
+ - gguf
14
+ - llama.cpp
15
+ - quantized
16
  ---
17
 
18
+ <!-- v2-header:start -->
19
+ <div align="center">
20
+
21
+ <a href="https://www.turintech.ai"><img src="https://huggingface.co/turintech/embeddinggemma-2-Artemis-GGUF/resolve/main/assets/turintech-logo-v2.png" width="360" alt="TurinTech"></a>
22
 
23
+ <em>TurinTech models, built with Artemis</em>
24
 
25
+ ### EmbeddingGemma 2 for search and retrieval on a CPU, compressed with Artemis
26
+
27
+ <div style="display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 6px;">
28
+ <a href="https://www.turintech.ai"><img src="https://huggingface.co/turintech/embeddinggemma-2-Artemis-GGUF/resolve/main/assets/buttons/artemis.png" width="84" alt="Artemis"></a>
29
+ <a href="https://huggingface.co/turintech"><img src="https://huggingface.co/turintech/embeddinggemma-2-Artemis-GGUF/resolve/main/assets/buttons/other-models.png" width="122" alt="Other TurinTech models on Hugging Face"></a>
30
+ <a href="https://ollama.com/turintech/embeddinggemma-2-artemis"><img src="https://huggingface.co/turintech/embeddinggemma-2-Artemis-GGUF/resolve/main/assets/buttons/ollama.png" width="78" alt="Run it with Ollama"></a>
31
+ <a href="https://lmstudio.ai/turintech/embeddinggemma-2-artemis"><img src="https://huggingface.co/turintech/embeddinggemma-2-Artemis-GGUF/resolve/main/assets/buttons/lm-studio.png" width="99" alt="Run it in LM Studio"></a>
32
+ <a href="https://www.linkedin.com/company/turintechai"><img src="https://huggingface.co/turintech/embeddinggemma-2-Artemis-GGUF/resolve/main/assets/buttons/turintech.png" width="98" alt="TurinTech on LinkedIn"></a>
33
+ </div>
34
+
35
+ | Download | Peak CPU memory | Recall@10, BEIR test |
36
+ | :---: | :---: | :---: |
37
+ | **156.935 MB** | **0.339 GiB** | **0.6588** (Unsloth UD-Q4_K_XL 0.6427) |
38
+
39
+ </div>
40
+ <!-- v2-header:end -->
41
 
42
  ## Run it
43
 
44
+ An embedding model: it turns a query or a document into a 768-dimensional vector for search and retrieval, served on
45
+ llama-server's `/v1/embeddings` endpoint. It does not chat.
46
 
47
  ```bash
48
+ hf download turintech/embeddinggemma-2-Artemis-GGUF embeddinggemma-2-Artemis-Q4_K_S.gguf --local-dir .
49
+ llama-server -m embeddinggemma-2-Artemis-Q4_K_S.gguf --embeddings --pooling mean --embd-normalize 2 \
50
+ -ngl 0 -t 4 -tb 4 -c 512 -b 512 -ub 512 -np 1 --flash-attn off --host 127.0.0.1 --port 8080 --no-warmup
 
 
51
  ```
52
 
53
+ <!-- v2-apps:start -->
54
+ Ollama: [`turintech/embeddinggemma-2-artemis`](https://ollama.com/turintech/embeddinggemma-2-artemis) on `/api/embed`, as in Run it &nbsp;·&nbsp; LM Studio: [`turintech/embeddinggemma-2-artemis`](https://lmstudio.ai/turintech/embeddinggemma-2-artemis)
55
+ <!-- v2-apps:end -->
56
 
57
+ `llama-server` here is llama.cpp at commit `f3363593`, built for the CPU as in the folded section below. Other
58
+ llama.cpp builds and GPUs have not been checked with these files; Ollama and LM Studio were checked as described there.
59
+ Queries take the prefix `task: search result | query: ` and documents the form `title: ... | text: ...`; every result
60
+ below was measured with them, mean pooling and inputs of at most 512 tokens.
61
 
62
+ <details>
63
+ <summary>Build the runtime, embed with Python, check the download, Ollama and LM Studio</summary>
64
 
65
+ On Linux x86-64, install Git, CMake, a C/C++ compiler and OpenMP development support with the system package manager
66
+ ([upstream build instructions at this commit](https://github.com/ggml-org/llama.cpp/blob/f3363593f457169cdfbdfe22ea399b1cc139ba18/docs/build.md)).
67
+ These are the source commit and CMake options of our CPU build; another compiler or CPU can give different binaries,
68
+ and other platforms have not been checked. Run it in a directory without a `llama-cpp-embeddinggemma2` folder:
69
 
70
  ```bash
71
  set -e
 
82
  llama-server --version
83
  ```
84
 
85
+ Keep the build directory and its libraries together. `GGML_NATIVE=ON` targets the CPU of the build machine, so the
86
+ binaries may not run on another CPU.
87
 
88
+ Check the download against its checksum:
 
 
89
 
90
  ```bash
91
+ printf '%s %s\n' f76351ba13988274750620577c88911b195a15321c37fc991bed485ed8f81f45 embeddinggemma-2-Artemis-Q4_K_S.gguf | sha256sum -c -
 
 
 
92
  ```
93
 
94
+ For the larger file, download `embeddinggemma-2-Artemis-Q5_K_S.gguf` by its exact name with the same `hf download`
95
+ command; automatic Hugging Face imports have not been checked. With the server running, embed a query and a document
96
+ from another terminal:
 
 
 
97
 
98
  ```python
99
  import json
 
120
  print(len(vector)) # 768 for each input
121
  ```
122
 
123
+ Both files passed this two-input check on the CPU build above. The snippet keeps the first 512 tokens of a long text;
124
+ the test run kept the first 511 and the end token, as sentence-transformers does.
 
 
 
125
 
126
+ Ollama (0.40.4 tested) serves the package on `/api/embed`. `latest` and `q4_k_s` hold the default file, `q5_k_s` the
127
+ 182.04 MB file; both files passed a public pull, a full checksum and a two-input CPU embedding check. The retrieval
128
+ numbers on this card come from llama.cpp, not Ollama.
129
 
130
  ```bash
131
  ollama pull turintech/embeddinggemma-2-artemis:q4_k_s
 
 
 
 
 
 
132
  curl http://localhost:11434/api/embed -H 'Content-Type: application/json' -d '{
133
  "model": "turintech/embeddinggemma-2-artemis:q4_k_s",
134
  "input": [
 
140
  }'
141
  ```
142
 
143
+ This request runs on the CPU and rejects an input longer than the context instead of cutting it. Ollama lists both
144
+ tags as `Q4_K_M`, a label the files inherit from their headers; the tags and checksums identify the files.
 
145
 
146
+ LM Studio (0.4.26 tested, CPU engine 2.64.0) loaded the Hub entry
147
+ [turintech/embeddinggemma-2-artemis](https://lmstudio.ai/turintech/embeddinggemma-2-artemis) with the default file on
148
+ 25 October 2026, and its `/v1/embeddings` on port 1234 returned 768-dimensional vectors:
149
 
150
+ ```bash
151
+ lms get turintech/embeddinggemma-2-artemis@q4_k_s --gguf
152
+ ```
153
 
154
  </details>
155
 
156
+ <!-- v2-results:start -->
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
157
  ## Results
158
 
159
+ ![nDCG@10 on 948 BEIR SciFact and FiQA test queries for our two files, Unsloth's UD-Q4_K_XL and the FP32 original, with download sizes.](assets/comparison.png)
160
 
161
  | File | Size | nDCG@10 | Recall@10 |
162
  | --- | --- | --- | --- |
163
+ | [**TurinTech Q4_K_S**](https://huggingface.co/turintech/embeddinggemma-2-Artemis-GGUF/resolve/main/embeddinggemma-2-Artemis-Q4_K_S.gguf) | 156.935 MB | 0.5754 | **0.6588** |
164
+ | [**TurinTech Q5_K_S**](https://huggingface.co/turintech/embeddinggemma-2-Artemis-GGUF/resolve/main/embeddinggemma-2-Artemis-Q5_K_S.gguf) | 182.036 MB | 0.5790 | 0.6538 |
165
+ | Unsloth UD-Q4_K_XL | 175.674 MB | 0.5738 | 0.6427 |
166
+ | FP32 original | n/a | **0.5833** | 0.6541 |
 
 
 
167
 
168
+ Equal-weight means of SciFact (300 queries, 5,183 documents) and FiQA (648 queries, 57,638 documents): BEIR test queries, each ranked against its dataset's full corpus. The records of how the files were chosen do not mention these queries ([How it was tested](#how-it-was-tested)); bold marks the best in each column, not a tested difference. One gap holds after correcting for four planned tests: Recall@10 of our Q4_K_S over Unsloth's UD-Q4_K_XL (0.6588 against 0.6427, Bonferroni p 0.043). The default's nDCG@10 did not separate from Unsloth's file (0.5754 against 0.5738) or from the original (0.5833), and the plan did not test our Q5_K_S. [Full results, memory and method](RESULTS.md).
169
+ <!-- v2-results:end -->
170
 
171
+ <!-- v2-files:start -->
172
+ ## Files
173
 
174
+ | File | Size | Peak CPU memory | Use it for |
175
+ | --- | --- | --- | --- |
176
+ | [`embeddinggemma-2-Artemis-Q4_K_S.gguf`](https://huggingface.co/turintech/embeddinggemma-2-Artemis-GGUF/resolve/main/embeddinggemma-2-Artemis-Q4_K_S.gguf) | 157 MB | 0.339 GiB | Default: the smaller download, Ollama tag `q4_k_s` (latest) |
177
+ | [`embeddinggemma-2-Artemis-Q5_K_S.gguf`](https://huggingface.co/turintech/embeddinggemma-2-Artemis-GGUF/resolve/main/embeddinggemma-2-Artemis-Q5_K_S.gguf) | 182 MB | 0.359 GiB | Larger file with higher measured nDCG@10 than the default, Ollama tag `q5_k_s` |
178
 
179
+ Text only. Smaller weights do not shrink the embedding index, which stores 768 values per text. The memory figures come from a 2,048-token context and batch; the 512-token settings in Run it were not measured. Peak CPU memory measured on AMD Ryzen 9 5900X, CPU only, 12 threads, llama.cpp f3363593 CPU build, -c 2048 -b 2048 -ub 2048 -np 1 --flash-attn off --no-warmup, peak resident memory over the 300 SciFact test queries in requests of up to 16, the memory-mapped file included.
180
+ <!-- v2-files:end -->
181
 
182
+ <!-- v2-pick:start -->
183
+ ## Pick this model
184
 
185
+ - **Good for** search and retrieval on a CPU in a 156.935 MB download. On 948 test queries its Recall@10 was higher than that of Unsloth's 175.674 MB UD-Q4_K_XL (0.6588 against 0.6427), and its nDCG@10 did not separate from that file or the original.
186
+ - **Pick another file** when nDCG@10 matters more than download size: our Q5_K_S (182.036 MB) scored nDCG@10 0.5790 against the default's 0.5754 but Recall@10 0.6538 against 0.6588, and no planned test covers either gap.
187
+ <!-- v2-pick:end -->
 
 
 
188
 
189
+ ## How it was made
190
 
191
+ Built with [Artemis](https://www.turintech.ai/product/overview), TurinTech's optimisation platform, from Google's
192
+ [EmbeddingGemma 2](https://huggingface.co/google/embeddinggemma-2) at revision `914f7f8`. Each file is a per-tensor mix
193
+ of standard llama.cpp quant types, so the llama.cpp build above, Ollama and LM Studio load it as it is. Its label is a
194
+ size class: the Q4_K_S file is smaller than a stock Q4_K_S file of this model, the Q5_K_S file smaller than a stock
195
+ Q5_K_S. The tensor types and bits per weight are on the [results page](RESULTS.md). Text only.
196
 
197
+ ## How it was tested
198
 
199
+ Every file in the Results table ran on one AMD Ryzen 9 5900X with no GPU (12 threads) on 27 and 28 October 2026: the
200
+ GGUF files through llama-server at llama.cpp `f3363593`, the FP32 original through sentence-transformers, with the
201
+ same prompts, 512-token cap, mean pooling and normalisation. The queries are all 948 BEIR test queries of SciFact and
202
+ FiQA that have a relevance judgment, each ranked against the full corpus of its dataset. Before scoring, a BF16
203
+ conversion of the original on the same llama-server gave the same vectors as the FP32 original on 128 of the queries,
204
+ to a worst cosine error of 8.3e-06.
205
 
206
+ ### Measured retrieval trade-offs
207
 
208
+ The files were chosen on a development panel of 96 queries from the train and dev relevance judgments of the same two
209
+ datasets, with 1,024 of their documents. The records of how the files were chosen mention only that panel; they do not
210
+ mention the test queries. On the development panel the default had a little lower Recall@10 than Unsloth's file
211
+ (0.914856 against 0.920933); on the test queries it was higher (0.6588 against 0.6427), the one gap that holds after a
212
+ Bonferroni correction over the four tests the run planned. nDCG@10 did not separate from Unsloth's file or from the
213
+ original. The [results page](RESULTS.md) has the method, the scores per dataset, the paired tests, peak memory and the
214
+ development panel.
215
 
216
  <!-- closeness:start -->
217
  ## Retrieval quality
218
 
219
+ The retrieval numbers from the tables on the [results page](RESULTS.md), in one fixed layout with the protocol behind each table. nDCG@10 and Recall@10 score the ranking against the panel's relevance labels; higher is better.
220
 
221
  <details>
222
  <summary>Protocols and standard tables</summary>
223
 
224
  n/a means the card's tables or our run records do not have that value.
225
 
226
+ ### Protocol `cpu-beir-test-512-20261027`
227
+
228
+ AMD Ryzen 9 5900X, CPU only, 27 and 28 October 2026.
229
+
230
+ - Reference: the original google/embeddinggemma-2 FP32 checkpoint (revision 914f7f89142e33e77833254d9c9b90c3cef7303b) through sentence-transformers 6.2.0 and PyTorch 2.14.1 on the same CPU, mean pooling, L2-normalised; it is not a GGUF. A BF16 GGUF conversion served by the same llama-server matched its vectors on 128 test queries (mean cosine error 2.9e-06, worst 8.3e-06)
231
+ - Panel `test`: BEIR SciFact and FiQA test queries, full corpora, equal-domain average; dataset: BEIR SciFact (BeIR/scifact at b3b5335604bf5ee3c4447671af975ea25143d4f5, judgments BeIR/scifact-qrels at 2938d17dc3b09882fdb8c12bbbe2e2dc0e75a029) and FiQA (BeIR/fiqa at 979c07a7cb5ccc6ca009792241fa1250b98055dd, judgments BeIR/fiqa-qrels at 252958f2d646e22cab6d0c72dd3f0d5de6d0655a); split: test relevance judgments (test.tsv); every query with at least one positive judgment; queries: 948 (SciFact 300, FiQA 648); documents: 62,821, the full corpora (SciFact 5,183, FiQA 57,638); text SHA-256: 37688fe561f82a27b54e556d1e3b41b5d340df3ead021039d7c9681cb052c41f (SHA-256 of the panel file; content digest 904fd90350ab83bcd1edc11aa893353f3352bbbc59583b24385d0ab32f54e4eb)
232
+ - Tool: llama-server `/v1/embeddings` for the GGUF files, each text sent as the server's own token ids; cosine ranking within each dataset (ties by ascending document id), linear-gain nDCG@10 and Recall@10, averaged equally over SciFact and FiQA
233
+ - llama.cpp build: commit f3363593f457169cdfbdfe22ea399b1cc139ba18, CPU build from source (its version line reads build 1, commit f336359)
234
+ - Command: `llama-server -m <file.gguf> --embeddings --pooling mean --embd-normalize 2 -ngl 0 -t 12` (the flags the run record lists), 16 texts per request
235
+ - Hardware: AMD Ryzen 9 5900X 12-Core Processor, 12 threads, no GPU
236
+ - Settings: 512-token cap (a longer text keeps its first 511 tokens and the end token, as sentence-transformers cuts it; 2,890 of the 63,769 texts reached the cap), mean pooling including prompts, query prefix `task: search result | query: `, documents as `title: <title, or none> | text: <text>`
237
+ - Measured by: TurinTech measured every GGUF file in this table, including Unsloth's UD-Q4_K_XL, the same way on the same machine, each once, and the original through sentence-transformers on that machine; the GGUF files measured are the published ones
238
+ - Selection: the records of how the files were chosen do not mention these test queries; the files were chosen on the development panel of protocol cpu-dev-panel-512-20261016, whose documents come from the same two corpora
239
+ - Source, on the results page: the table columns "nDCG@10", "Recall@10"
240
+ - Comparison files: Unsloth: `unsloth/embeddinggemma-2-GGUF` at `031f0d4b3553`, `embeddinggemma-2-UD-Q4_K_XL.gguf`, SHA-256 ea905fd08e8061db77a0031cbb5096d459d7cfd2bdd0ad2ba66e483f16719493
241
+
242
+ Protocol `cpu-beir-test-512-20261027`, panel `test` (BEIR SciFact and FiQA test queries, full corpora, equal-domain average):
243
+
244
+ | File | Repository | Measured by | Size (MB) | Size (bytes) | nDCG@10 | Recall@10 |
245
+ | --- | --- | --- | --- | --- | --- | --- |
246
+ | FP32 original | `google/embeddinggemma-2` at `914f7f89142e` | reference | n/a | n/a | 0.5833 | 0.6541 |
247
+ | `embeddinggemma-2-Artemis-Q4_K_S.gguf` | `turintech/embeddinggemma-2-Artemis-GGUF` at `8748160053b5` | TurinTech | 156.935 | 156935264 | 0.5754 | 0.6588 |
248
+ | `embeddinggemma-2-Artemis-Q5_K_S.gguf` | `turintech/embeddinggemma-2-Artemis-GGUF` at `8748160053b5` | TurinTech | 182.036 | 182035552 | 0.5790 | 0.6538 |
249
+ | `embeddinggemma-2-UD-Q4_K_XL.gguf` | `unsloth/embeddinggemma-2-GGUF` at `031f0d4b3553` | TurinTech | 175.674 | 175673856 | 0.5738 | 0.6427 |
250
+
251
  ### Protocol `cpu-dev-panel-512-20261016`
252
 
253
  Four CPU cores, 16 October 2026.
 
256
  - Panel `dev`: BEIR SciFact and FiQA development panel, equal-domain average; dataset: BEIR SciFact and FiQA; split: development queries from the train and dev relevance judgments; queries: 96 (48 per domain); documents: 1,024 (512 per domain); text SHA-256: 097270111c4e6a70cdf602a8416897bdb393c0bebdddf1ec7c6fcf29b2487cb1 (SHA-256 of the panel file)
257
  - Tool: llama-server `/v1/embeddings` for the GGUF files; nDCG@10 and Recall@10 from dot-product ranking of the normalised 768-dimensional vectors, averaged equally over the SciFact and FiQA domains
258
  - llama.cpp build: commit f3363593f457169cdfbdfe22ea399b1cc139ba18
259
+ - Command: `llama-server -m <file.gguf> --embeddings --pooling mean --embd-normalize 2 -ngl 0 -t 4 -c 2048 -b 2048 -ub 2048 -np 1 --flash-attn off`, inputs capped at 512 tokens by our harness
260
  - Hardware: four CPU cores, no GPU
261
  - Settings: 512-token input cap, mean pooling including prompts, query prefix `task: search result | query: `, documents as `title: ... | text: ...`
262
+ - Measured by: TurinTech measured every GGUF file in this table, including Unsloth's UD-Q4_K_XL, the same way on the same machine. Our numbers were measured on the raw quantizer outputs; the published files change only header metadata, with identical tensors
263
+ - Selection: this development panel was used to choose the files, so it favours them; it is not an independent test or a full MTEB evaluation
264
+ - Source, on the results page: the table columns "nDCG@10, development panel", "Recall@10, development panel"
265
  - Comparison files: Unsloth: `unsloth/embeddinggemma-2-GGUF` at `031f0d4b3553`, `embeddinggemma-2-UD-Q4_K_XL.gguf`, SHA-256 ea905fd08e8061db77a0031cbb5096d459d7cfd2bdd0ad2ba66e483f16719493
266
 
267
  Protocol `cpu-dev-panel-512-20261016`, panel `dev` (BEIR SciFact and FiQA development panel, equal-domain average):
268
 
269
  | File | Repository | Measured by | Size (MB) | Size (bytes) | nDCG@10 | Recall@10 |
270
  | --- | --- | --- | --- | --- | --- | --- |
271
+ | FP32 original | `google/embeddinggemma-2` at `914f7f89142e` | reference | n/a | n/a | 0.856404 | 0.928224 |
 
272
  | `embeddinggemma-2-Artemis-Q4_K_S.gguf` | `turintech/embeddinggemma-2-Artemis-GGUF` at `2f1be8eeab0f` | TurinTech | 156.935 | 156935264 | 0.859481 | 0.914856 |
273
  | `embeddinggemma-2-Artemis-Q5_K_S.gguf` | `turintech/embeddinggemma-2-Artemis-GGUF` at `2f1be8eeab0f` | TurinTech | 182.036 | 182035552 | 0.872079 | 0.928224 |
274
+ | `embeddinggemma-2-UD-Q4_K_XL.gguf` | `unsloth/embeddinggemma-2-GGUF` at `031f0d4b3553` | TurinTech | 175.674 | 175673856 | 0.857125 | 0.920933 |
275
 
276
  </details>
277
  <!-- closeness:end -->
278
 
279
+ <!-- v2-checksums:start -->
280
+ <details>
281
+ <summary>File checksums</summary>
282
 
283
+ | File | Bytes | sha256 |
284
+ | --- | --- | --- |
285
  | `embeddinggemma-2-Artemis-Q4_K_S.gguf` | 156,935,264 | `f76351ba13988274750620577c88911b195a15321c37fc991bed485ed8f81f45` |
286
  | `embeddinggemma-2-Artemis-Q5_K_S.gguf` | 182,035,552 | `476a432281b3c9c8f16b5286bbe1aa482357e4b15fe69c3f8008ade36fd8f381` |
287
 
288
+ </details>
289
+ <!-- v2-checksums:end -->
290
 
291
+ <!-- v2-footer:start -->
292
+ ---
293
 
294
+ <div align="center">
295
 
296
+ [Artemis](https://www.turintech.ai/product/overview) is TurinTech's optimisation platform: teams use it to make their own models smaller and faster, or to optimise their code.
297
 
298
+ [All our models](https://www.turintech.ai/models) · [LinkedIn](https://www.linkedin.com/company/turintechai) · [Questions and requests](https://huggingface.co/spaces/turintech/README/discussions/1)
299
+
300
+ <sub>Apache 2.0, as released by Google ([licence](https://www.apache.org/licenses/LICENSE-2.0)); see `LICENSE` and `NOTICE`. An independent TurinTech release, not affiliated with or endorsed by Google. When serving these files to others, for example through an API, an inference provider or OpenRouter, we'd appreciate a mention of TurinTech (turintech.ai) as the source of the quantization.</sub>
301
 
302
+ These files keep improving.
303
 
304
+ </div>
305
+ <!-- v2-footer:end -->
RESULTS.md ADDED
@@ -0,0 +1,143 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # EmbeddingGemma 2 Artemis GGUF: full results and method
2
+
3
+ Everything behind the numbers on the [model card](README.md): the BEIR test queries the card reports, with the
4
+ paired tests, peak memory and the encoder check, then the development panel the files were chosen on.
5
+
6
+ ## BEIR test queries, AMD Ryzen 9 5900X, 27 and 28 October 2026
7
+
8
+ The numbers on the card come from this run.
9
+
10
+ AMD Ryzen 9 5900X 12-Core Processor, CPU only, 12 threads. The queries are every BEIR test query of SciFact and FiQA
11
+ with at least one positive relevance judgment, 948 in all (SciFact 300, FiQA 648), and each is ranked against the full
12
+ corpus of its dataset (SciFact 5,183 documents, FiQA 57,638). The datasets are pinned to `BeIR/scifact` at
13
+ `b3b5335604bf5ee3c4447671af975ea25143d4f5` with the `test.tsv` judgments of `BeIR/scifact-qrels` at
14
+ `2938d17dc3b09882fdb8c12bbbe2e2dc0e75a029`, and `BeIR/fiqa` at `979c07a7cb5ccc6ca009792241fa1250b98055dd` with those of
15
+ `BeIR/fiqa-qrels` at `252958f2d646e22cab6d0c72dd3f0d5de6d0655a`. Texts take the prompts in Run it, `task: search result
16
+ | query: <text>` for a query and `title: <title, or none> | text: <text>` for a document. Each text is tokenized with
17
+ its special tokens and capped at 512 tokens; a longer text keeps its first 511 tokens and the end token, as
18
+ sentence-transformers cuts it (2,890 of the 63,769 texts reached the cap). Vectors are mean-pooled over every token,
19
+ prompt included, and L2-normalised to 768 dimensions. Each query ranks its own dataset's documents by cosine
20
+ similarity (ties by ascending document id). nDCG@10 (linear gain) and Recall@10 are averaged over the queries of each
21
+ dataset, and the card's numbers are the mean of the two datasets with equal weight.
22
+
23
+ The GGUF files ran on llama-server at llama.cpp `f3363593f457169cdfbdfe22ea399b1cc139ba18` (the commit Run it
24
+ builds), `llama-server -m <file> --embeddings --pooling mean --embd-normalize 2 -ngl 0 -t 12`, with each text sent as
25
+ the server's own token ids, 16 texts per request. The original, `google/embeddinggemma-2` at
26
+ `914f7f89142e33e77833254d9c9b90c3cef7303b` (`model.safetensors` SHA-256
27
+ `197a32965d4b1105faf060417baa899e193fb73cd401f42ec9295234d5553d79`), ran at FP32 through sentence-transformers 6.2.0
28
+ and PyTorch 2.14.1 on the same CPU with `max_seq_length` 512. The files measured are the published ones (SHA-256 in
29
+ the card's checksums) and Unsloth's `embeddinggemma-2-UD-Q4_K_XL.gguf` from `unsloth/embeddinggemma-2-GGUF` at
30
+ `031f0d4b35536f69ab3509d4893c923264fcf253` (SHA-256 `ea905fd08e8061db77a0031cbb5096d459d7cfd2bdd0ad2ba66e483f16719493`).
31
+ TurinTech measured every file the same way on the same machine, each once.
32
+
33
+ The files were chosen on the development panel further down, 96 queries from the train and dev relevance judgments of
34
+ the same two datasets with 1,024 of their documents. The records of how the files were chosen mention only that panel;
35
+ they do not mention these test queries. Both panels draw their documents from the same two corpora.
36
+
37
+ ### Results
38
+
39
+ | File | Size | nDCG@10 | Recall@10 | SciFact nDCG@10 | SciFact Recall@10 | FiQA nDCG@10 | FiQA Recall@10 |
40
+ | --- | --- | --- | --- | --- | --- | --- | --- |
41
+ | TurinTech Q4_K_S | 156.935 MB | 0.5754 | 0.6588 | 0.8372 | 0.9413 | 0.3137 | 0.3763 |
42
+ | TurinTech Q5_K_S | 182.036 MB | 0.5790 | 0.6538 | 0.8455 | 0.9410 | 0.3125 | 0.3667 |
43
+ | Unsloth UD-Q4_K_XL | 175.674 MB | 0.5738 | 0.6427 | 0.8416 | 0.9337 | 0.3061 | 0.3518 |
44
+ | FP32 original | n/a | 0.5833 | 0.6541 | 0.8544 | 0.9403 | 0.3122 | 0.3680 |
45
+
46
+ Sizes are download sizes in decimal MB; n/a for the original, which ran as a safetensors checkpoint. No bold here: the
47
+ paired tests below decide what differs. The two datasets pull in different directions: on SciFact our Q4_K_S ranked a
48
+ little below Unsloth's file (nDCG@10 0.8372 against 0.8416), on FiQA a little above (0.3137 against 0.3061).
49
+
50
+ ### Paired tests
51
+
52
+ A paired bootstrap over queries: 10,000 resamples with seed 20261027, queries drawn with replacement within each
53
+ dataset (dataset sizes kept), the equal-weight mean recomputed each time. The interval is the 2.5th to 97.5th
54
+ percentile of the resampled differences; p is two-sided (twice the smaller share of resampled differences on either
55
+ side of zero, at most 1). The plan for the run named two comparisons, our default against Unsloth's file and against
56
+ the original, on two metrics: four tests. It set no correction for multiple tests; this page applies Bonferroni over
57
+ the four, so a difference is stated only when the corrected p is below 0.05 (p below 0.0125).
58
+
59
+ | Comparison | Metric | First | Second | Difference | 95% interval | p | Bonferroni p (x4) | Queries first better / second better |
60
+ | --- | --- | --- | --- | --- | --- | --- | --- | --- |
61
+ | TurinTech Q4_K_S vs Unsloth UD-Q4_K_XL | nDCG@10 | 0.5754 | 0.5738 | +0.0016 | -0.0072 to +0.0105 | 0.716 (not significant) | 1.00 (not significant) | 155 / 139 |
62
+ | TurinTech Q4_K_S vs Unsloth UD-Q4_K_XL | Recall@10 | 0.6588 | 0.6427 | +0.0161 | +0.0038 to +0.0287 | 0.0108 | 0.043 | 64 / 34 |
63
+ | TurinTech Q4_K_S vs FP32 original | nDCG@10 | 0.5754 | 0.5833 | -0.0079 | -0.0165 to +0.0005 | 0.067 (not significant) | 0.27 (not significant) | 143 / 150 |
64
+ | TurinTech Q4_K_S vs FP32 original | Recall@10 | 0.6588 | 0.6541 | +0.0047 | -0.0062 to +0.0155 | 0.399 (not significant) | 1.00 (not significant) | 43 / 39 |
65
+
66
+ One difference holds: Recall@10 of our Q4_K_S over Unsloth's UD-Q4_K_XL. Our Q5_K_S was not in the plan, so its gaps
67
+ to the other files are descriptive only.
68
+
69
+ ### Peak CPU memory
70
+
71
+ | File | Peak CPU memory, GiB | Peak CPU memory, MiB |
72
+ | --- | --- | --- |
73
+ | TurinTech Q4_K_S | 0.339 | 346.8 |
74
+ | TurinTech Q5_K_S | 0.359 | 367.4 |
75
+ | Unsloth UD-Q4_K_XL | 0.362 | 371.0 |
76
+ | BF16 conversion of the original | 0.657 | 672.8 |
77
+
78
+ A fresh llama-server per file, `llama-server -m <file> --embeddings --pooling mean --embd-normalize 2 -ngl 0 -t 12 -tb
79
+ 12 -c 2048 -b 2048 -ub 2048 -np 1 --flash-attn off --no-warmup` at llama.cpp `f3363593`, embedded all 300 SciFact test
80
+ queries in requests of up to 16; the figure is the server process's peak resident memory (VmHWM) at the end. The
81
+ memory-mapped model file counts. Run it uses a 512-token context and batch, which was not measured. The BF16 row is
82
+ the original converted to a BF16 GGUF with the converter of the same llama.cpp commit; it is there for scale and is not
83
+ a published file.
84
+
85
+ ### Encoder check
86
+
87
+ Before scoring, the first 64 test queries of each dataset (128 in all) were encoded twice with the same prompts,
88
+ pooling and normalisation: by the FP32 original through sentence-transformers, and by that BF16 conversion through
89
+ llama-server. The mean cosine error between the two was 2.9e-06 and the worst 8.3e-06 (SciFact query 5), inside the
90
+ limits of 0.001 and 0.01. The check compared only these 128 short queries (3,003 tokens, none at the cap);
91
+ documents, capped texts and the retrieval ranking of the BF16 conversion were not compared. In the scoring runs all
92
+ four arms counted the same 11,513,932 tokens, with the same 2,890 texts at the cap.
93
+
94
+ ## Development panel, four CPU cores, 16 October 2026
95
+
96
+ The files were chosen on this panel, so it favours them. It is not an independent test or a full MTEB evaluation.
97
+
98
+ 96 queries and 1,024 documents, 48 queries and 512 documents per dataset from SciFact and FiQA, the queries from the
99
+ train and dev relevance judgments (panel file SHA-256 `097270111c4e6a70cdf602a8416897bdb393c0bebdddf1ec7c6fcf29b2487cb1`;
100
+ the dataset revisions were not recorded). Four CPU cores, no GPU, CPU model not recorded; llama.cpp `f3363593`,
101
+ `llama-server -m <file> --embeddings --pooling mean --embd-normalize 2 -ngl 0 -t 4 -c 2048 -b 2048 -ub 2048 -np 1
102
+ --flash-attn off`, inputs capped at 512 tokens by the harness, the same prompts and pooling. Equal-domain averages. The
103
+ original is the same FP32 checkpoint, mean pooling, L2-normalised. Our numbers here were measured on the raw quantizer
104
+ outputs; the published files change only header metadata, with the same tensors.
105
+
106
+ | File | Size | nDCG@10, development panel | Recall@10, development panel |
107
+ | --- | --- | --- | --- |
108
+ | TurinTech Q4_K_S | 156.935 MB | 0.859481 | 0.914856 |
109
+ | TurinTech Q5_K_S | 182.036 MB | 0.872079 | 0.928224 |
110
+ | Unsloth UD-Q4_K_XL | 175.674 MB | 0.857125 | 0.920933 |
111
+ | FP32 original | n/a | 0.856404 | 0.928224 |
112
+
113
+ On this panel the default, 10.67% smaller than Unsloth's file, had nDCG@10 0.236 points higher and Recall@10 0.608
114
+ points lower (in percentage points). Our Q5_K_S, 3.62% larger than Unsloth's file, was 1.50 points higher in nDCG@10
115
+ and 0.73 points higher in Recall@10. No test of these gaps was run. Timing was observed once per file during the
116
+ choice: the Q5_K_S file's query latency was 6.94% higher than the paired Unsloth control and its document throughput
117
+ 1.64% higher. A single observation is not a speed result, and the card makes no speed claim.
118
+
119
+ ## Quantization labels and file size
120
+
121
+ `Q4_K_S` and `Q5_K_S` are size classes in a measured standard K-quant ladder made from the same BF16 parent and
122
+ quantizer build. They do not describe stock tensor recipes or rank quality. The compact file fits below the
123
+ 178,164,000-byte stock Q4_K_S reference; the larger file fits below the 210,669,856-byte stock Q5_K_S reference.
124
+ Intermediate K classes were checked; IQ formats were not part of this naming ladder.
125
+
126
+ The compact file mixes Q3_K, Q4_K, BF16 and F32; the larger file mixes Q4_K, Q5_K, BF16 and F32. Whole-file bits per
127
+ weight are 4.632730 and 5.373691; tensor-payload values are 4.166577 and 4.907537. Both files include about 15.79 MB of
128
+ metadata and alignment. Their inherited `general.file_type` headers still read Q4_K_M; the exact file names select the
129
+ intended files, and the Ollama packages show the same inherited Q4_K_M label.
130
+
131
+ ## Files and earlier versions
132
+
133
+ Both raw files rebuilt to their measured SHA-256 identities. Each published copy keeps all 413 tensor payloads and
134
+ all inference metadata; only the display name and modality tags changed. Both returned finite, normalized vectors
135
+ through the CPU endpoint.
136
+
137
+ 16 October 2026: the larger Q5_K_S file went from 201.17 MB to 182.04 MB, with higher nDCG@10 and Recall@10 on the
138
+ development panel; the compact default did not change. The
139
+ [previous larger file](https://huggingface.co/turintech/embeddinggemma-2-Artemis-GGUF/resolve/42212da2548a4b9ae25db9ca429270da6d48119b/embeddinggemma-2-Artemis-Q5_K_S.gguf)
140
+ and [previous card](https://huggingface.co/turintech/embeddinggemma-2-Artemis-GGUF/blob/42212da2548a4b9ae25db9ca429270da6d48119b/README.md)
141
+ remain at their original revision. The earlier [151 MB](previous-compact-151mb.md) and
142
+ [154 MB](previous-compact-154mb.md) compact candidates remain in the research record; on the development panel the
143
+ current default has higher nDCG@10 and Recall@10 than both, at a slightly larger size.
assets/buttons/artemis.png ADDED
assets/buttons/lm-studio.png ADDED
assets/buttons/ollama.png ADDED
assets/buttons/other-models.png ADDED
assets/buttons/turintech.png ADDED
assets/comparison.png ADDED
assets/turintech-logo-v2.png ADDED