--- license: apache-2.0 license_link: https://ai.google.dev/gemma/docs/gemma_4_license base_model: google/gemma-4-E2B-it library_name: gguf pipeline_tag: text-generation tags: - gguf - llama.cpp - on-device - mobile - quantized - multilingual --- # ClickBook Gemma 4 E2B — full vocabulary, IQ4_XS The **maximum script coverage** variant of the ClickBook on-device reading model. Every script the base model shipped with is retained: no vocabulary pruning. **1.950 GB.** > ### Read this before choosing this model > > This variant scores **63.6** on our benchmark against **79.2** for the pruned > [ClickBook-Gemma-4-E2B-multi-IQ4_XS](https://huggingface.co/Clickbook/ClickBook-Gemma-4-E2B-multi-IQ4_XS), > which is **1.844 GB — smaller as well as better.** > > Choose this one only if you need a script the pruned build removes. For every > language both models support, the pruned build is better in every respect. ## Why the full vocabulary is worse Both models are the same weights, quantised identically with the same importance matrix. The only difference is vocabulary size — 262,144 tokens here against 231,955 — and it costs 15.6 points. | build | vocabulary | size | score | failures / 90 | |---|---:|---:|---:|---:| | same weights at f16 | 231,955 | 8.676 GB | 80.5 | 12 | | [pruned, recommended](https://huggingface.co/Clickbook/ClickBook-Gemma-4-E2B-multi-IQ4_XS) | 231,955 | 1.844 GB | **79.2** | 15 | | narrower prune | 180,850 | 1.666 GB | 79.0 | 15 | | **this model** | 262,144 | 1.950 GB | **63.6** | 23 | The regression is worst on the *easiest* third of the benchmark (91.5 → 70.8), which is the signature of a general degradation rather than a few hard items going wrong. A plausible mechanism: at Q2_K precision the embedding table and the output distribution spend representational capacity on tens of thousands of tokens the model never needs, at the expense of the tokens it does. **Vocabulary pruning is not only a size optimisation — it is a quality one.** The measurement is single-seed and reported as measured; the explanation is a hypothesis. It shows qualitatively too. Asked to define a word, this build often restates it ("waiting means to wait for something") or retells the sentence instead of defining the tapped word — the failure mode the prompts were specifically revised to eliminate, reappearing here. ## What this build adds Fourteen script groups the pruned build removes. Each was probed with a single tap and **all of them tokenise and return plausible English answers** — no byte-fallback garbage: | script | probe result | |---|---| | Malayalam | "He waited in front of the shop for a long time." | | Ethiopic | "He waited for a long time in front of his shop." | | Georgian | "It was waiting for a long time." | | Kannada | "He was waiting." | | Bengali | "Waiting means to stay in one place or time." | | Telugu, Gujarati, Sinhala | correct but tautological — "waiting means to wait" | | Lao, Myanmar | correct but very terse — "Wait" | Also present: Tamil, Thai, Oriya, Gurmukhi, Tibetan, Cherokee, Thaana, Syriac, Mongolian, NKo and the emoji block. **One tap per script is not a benchmark.** It establishes that the tokeniser works and the model is not producing rubbish. It says nothing about quality, and given the overall 63.6 you should assume quality in these scripts is lower than the probes suggest. **Greek remains wrong** here as in the pruned build: asked about `τράπεζα` used to mean a park bench, it answered "the bank means a bank". ## No prompts exist for the new scripts `prompts.json` in this repo is the same file as the pruned build's and covers **18 languages only**. The additional scripts here tokenise, but have no MEANING, EXAMPLE, TRANSLATION or CONTEXT templates. Using them means writing prompts first; the existing ones are a reasonable model to follow. ## Usage Identical to the pruned build. See `MOBILE-INTEGRATION.md`. ```jsonc { "temperature": 0.1, "top_k": 40, "top_p": 0.9, "repeat_penalty": 1.05, "chat_template_kwargs": { "enable_thinking": false } // REQUIRED } ``` Without `enable_thinking: false` the model spends its whole budget in `reasoning_content` and returns empty `content` with `finish_reason: "length"` — indistinguishable from an unsupported language. ## License and provenance **Apache License 2.0**, matching the base model, [`google/gemma-4-E2B-it`](https://huggingface.co/google/gemma-4-E2B-it). Google also publishes a [Gemma 4 license page](https://ai.google.dev/gemma/docs/gemma_4_license), linked from the upstream card. **Modifications**, as Apache 2.0 requires derivative works to state: quantised to IQ4_XS with Q2_K token embeddings under an importance matrix. **The vocabulary is unmodified.** No weights were fine-tuned, distilled or retrained. Gemma is a trademark of Google LLC. This is an independent derivative, not endorsed by or affiliated with Google.