| license: gemma | |
| base_model: google/gemma-4-12B-it | |
| library_name: gguf | |
| pipeline_tag: text-generation | |
| tags: [gemma4, coding, code, reasoning, thinking, gguf, llama.cpp, local-llm] | |
| # ๐ป Gemma4-12B-Coder (GGUF) โ Composer 2.5 ร Fable 5 โจ | |
| ### ๐ฃ Tiny footprint, big brain โ a local **coding** model for *everyone* | |
| > **No matter your GPU. No matter your RAM.** If you've got **~4.5 GB** of VRAM *or* unified memory free, | |
| > you can run your own private, offline coding assistant right now. ๐ | |
| > This is the **v1 / code edition** โ distilled from **real chain-of-thought** so it *thinks through* a problem | |
| > before writing the solution. ๐ง ๐ป All local, all yours, no API, no cloud. | |
| ### ๐ฏ What it is | |
| A focused fine-tune of Gemma 4 12B on **verifiable Python coding** data โ every training example's reasoning leads to | |
| code that **actually passed its tests**. The result reasons in the open (edge cases, complexity, approach) and then | |
| emits a clean, runnable solution. ๐ | |
| --- | |
| ## ๐ Training data (the interesting part ๐ณ) | |
| This is a **distillation** of two complementary chain-of-thought sources, both over verifiable Python coding tasks | |
| (algorithmic / function-level problems that come with deterministic tests): | |
| - **๐ฅ Main set โ Composer 2.5 *real* CoT.** Genuine, model-authored reasoning traces. The teacher solved each problem, | |
| its code was **run against the task's tests, and only the passing solutions were kept**. So the reasoning you're | |
| learning from leads to code that *actually works*. | |
| - **๐ฅ Aux set โ Fable 5 (released today! ๐).** A clever twist: we took the problems where **Composer 2.5 got it wrong** | |
| and handed them to **Fable 5** to *redo* โ re-deriving a fresh, self-consistent chain-of-thought and a correct | |
| solution, again **gated on passing the tests**. This recovers the hard cases the main teacher missed. These traces | |
| are **synthetic** (rationalized CoT), and are tagged separately so the two sources stay distinguishable. | |
| The recipe: real CoT for the bulk of solid coverage, plus synthetic "second-attempt" CoT to patch the failures โ | |
| both verified by execution before anything entered training. โ | |
| --- | |
| ## ๐บ๏ธ Roadmap โ v2 (if there's interest! ๐) | |
| This is **v1**. If the likes / downloads add up, I'll ship a **v2** that **pushes for the benchmarks** ๐. | |
| ### ๐ข Update on v2 & the Fable 5 situation *(2026-06-14)* | |
| Quick heads-up for everyone waiting on v2: | |
| **Fable 5 access has been pulled.** The Fable 5 CoT data I managed to save beforehand is honestly a pretty | |
| small set โ not enough on its own to act as the *primary* signal for v2 without risking **overfitting**. So the | |
| plan is shifting: | |
| - **v2 will lean more heavily on Composer 2.5 verifiable CoT** as the backbone (the main, execution-verified | |
| source), and use the limited Fable 5 data carefully as a supplement rather than the core. | |
| - **If Fable 5 access doesn't come back within ~a week**, I'm considering bringing in **GLM-5.2** as an | |
| additional teacher. I just went through the benchmarks: per **BridgeMind's eval posted on X**, GLM-5.2 actually | |
| edges out Fable 5 on both the **BS** and **reasoning** leaderboards. I haven't tested it hands-on myself yet โ | |
| my gut says it'll land *slightly below* Fable 5 in practice, but likely **very close**. | |
| Bottom line: v2 is still coming. I'd just rather take a little longer and ship something that **generalizes** | |
| than rush out an overfit model. Thanks for the patience and support ๐ | |
| โญ **Like & download if you'd like to see v2** โ that's the signal I'm watching! | |
| --- | |
| ## ๐ฆ Pick your size (GGUF quants) | |
| | Quant | Size | Vibe | | |
| |------|------|------| | |
| | ๐ข **Q2_K** | **4.5 GB** | tiniest โ runs almost anywhere | | |
| | ๐ต **Q4_K_M** | **6.87 GB** | the sweet spot ๐ (recommended) | | |
| | ๐ฃ **Q6_K** | **9.11 GB** | near-lossless | | |
| | โช **Q8_0** | **11.8 GB** | basically full quality | | |
| --- | |
| ## ๐งฎ "Will it fit?" โ context length cheat-sheet | |
| Rough estimates ๐ค (assumes `q8_0` KV cache + ~1.5 GB overhead; **use `q4_0` KV cache for โ2ร more context!**). | |
| Max context is **131K**. "โ" = won't fit, pick a smaller quant. โ๏ธ | |
| | Your VRAM / unified mem | ๐ข Q2_K (4.5G) | ๐ต Q4_K_M (6.87G) | ๐ฃ Q6_K (9.11G) | โช Q8_0 (11.8G) | | |
| |---|---|---|---|---| | |
| | **8 GB** | ~16K ctx | tight (~2โ4K) | โ | โ | | |
| | **12 GB** | ~48K | ~30K | ~12K | โ | | |
| | **16 GB** | ~80K | ~64K | ~44K | ~22K | | |
| | **24 GB** | 131K (max) ๐ | ~128K | ~110K | ~88K | | |
| | **32 GB** | 131K | 131K | 131K | 131K | | |
| > ๐ก Apple Silicon / integrated GPUs with **unified memory** count too โ same numbers, just slower than a dGPU. | |
| > ๐ก Low on room? Drop a quant or switch KV cache to `q4_0` and your context roughly doubles. | |
| --- | |
| ## ๐ How to run it (super easy) | |
| ### Option A โ llama.cpp (recommended) ๐ฆ | |
| 1. Grab a quant above (e.g. `โฆ-Q4_K_M.gguf`) and `llama-server` from [llama.cpp](https://github.com/ggml-org/llama.cpp). | |
| > โ ๏ธ Needs a **recent llama.cpp** (this is the `gemma4_unified` architecture โ older builds won't load it). | |
| 2. Run a server (Windows `.bat` shown โ tweak `--port`, `--ctx-size` to taste): | |
| ```bat | |
| @echo off | |
| cd /d C:\llama.cpp | |
| llama-server.exe ^ | |
| -m C:\models\gemma4-coding-Q4_K_M.gguf ^ | |
| --ctx-size 16384 ^ | |
| --n-gpu-layers 99 ^ | |
| --no-mmap ^ | |
| -fa on ^ | |
| --cache-type-k q8_0 --cache-type-v q8_0 ^ | |
| --temp 1.0 --top-p 0.95 --top-k 64 ^ | |
| --host 0.0.0.0 --port 18080 | |
| pause | |
| ``` | |
| 3. Open `http://localhost:18080` and chat. ๐ (Tip: bump `--ctx-size` per the table; use `q4_0` KV for more.) | |
| ### Option B โ one-click apps ๐ฑ๏ธ | |
| Works in **LM Studio**, **Jan**, **Ollama**, etc. โ just import the GGUF, pick your quant, go. ๐พ | |
| ### ๐ง Thinking mode | |
| This model thinks in Gemma's native thought channel before answering โ exactly how it was trained. Keep | |
| **`enable_thinking=true`** (the default chat template handles it). Recommended sampling: `temp 1.0, top_p 0.95, top_k 64`. | |
| For coding you can also go greedy (`temp 0`) for more deterministic solutions. | |
| --- | |
| ## โ ๏ธ Good to know | |
| - **Reduced refusals:** the training data is task-focused with no safety hedging, so this refuses less than the base | |
| model. It is **not** safety-aligned โ add your own guardrails for production. Use responsibly. ๐ | |
| - Specialized for **Python / algorithmic** coding. Reasoning quality is strongest in that domain; general-knowledge | |
| facts/numbers should still be double-checked. | |
| - English-centric. | |
| --- | |
| ## ๐ Base & License | |
| - **Base model:** [`google/gemma-4-12B-it`](https://huggingface.co/google/gemma-4-12B-it). Subject to the | |
| **[Gemma Terms of Use](https://ai.google.dev/gemma/terms)** (derivatives must comply). | |
| - Personal/hobby project โ shared as-is, no warranty. Have fun, and happy hacking! ๐พโจ | |
Xet Storage Details
- Size:
- 6.8 kB
- Xet hash:
- cfd44780bec91f3abc8c8c9e19674255dd5ac87a68ce25586cae503bbc27ff51
ยท
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.