File size: 10,735 Bytes
82fca8c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
---
license: apache-2.0
base_model: google/gemma-4-12B-it
library_name: transformers
pipeline_tag: text-generation
tags: [gemma4, coding, agentic, terminal, tool-use, reasoning, thinking, safetensors, transformers]
---

# ๐Ÿ’ป๐Ÿค– Gemma4-12B **v2** โ€” **safetensors master (full precision)** โœจ
### Coding + Agentic Edition ยท Composer 2.5 ร— Fable 5 ยท v2

> **This is the full-precision `safetensors` master** for my Gemma 4 12B **coding + agentic** fine-tune โ€” the same
> model many of you have been running as GGUF, now in its original weights. ๐Ÿง ๐Ÿ› ๏ธ v2 is the big **agentic** upgrade:
> it reads, reasons, *uses tools*, and works through multi-step technical tasks before it acts. This repo is for
> *builders* โ€” roll your own quants, fine-tune further, or run it in `transformers`.

---

## ๐ŸŽ‰ Surprise!

A huge thank-you for all the attention this project has gotten โ€” really, thank you. ๐Ÿ™ I only managed to get out
**tonight** to upload the **full-precision original (safetensors master)** of this model, so sorry for the wait โ€” I'd
planned to put it up last week. But the delay comes with **two big surprises** I've been dying to share:

**1. v3 is coming soon.** ๐Ÿ”ฎ The next version is on its way and will fix several of the known issues you've reported.

**2. I'm now working with a top-tier AI lab to give back to the open-source community.** ๐Ÿค Many of you have already
noticed the side effects in v1 and v2 โ€” and honestly they come down to just two things: **(1) not enough compute, and
(2) one person with limited expertise** behind the whole thing. This collaboration **solves both of those completely.**
And the **benchmarks you care about will absolutely be addressed** โ€” the things I simply couldn't fully pull off before
because of time and compute limits. The people working on this with me are **PhDs from top universities, with seriously
strong papers and citation records.** Just think about that for a second: the people who *actually build large models*
are now contributing to the open-source community *together with me* โ€” that is genuinely **wild**. ๐Ÿคฏ We're in active
discussions right now, and the project is still in the **R&D phase**, so I can't share specifics yet โ€” but the **moment**
I have news, **you'll be the first to know.** ๐Ÿš€

---

## ๐ŸŽฏ What this repo is for

This repo holds the **un-quantized master weights** (`model.safetensors`, bf16). Use it to:

- ๐Ÿ”ง **Roll your own quants** โ€” make custom GGUF / **MLX** / AWQ / GPTQ builds from full precision.
- ๐Ÿงช **Fine-tune further** โ€” it's a clean base for your own LoRA / continued training.
- ๐Ÿค— **Run it in `transformers`** (needs a recent build with `gemma4_unified` support).

> ๐Ÿƒ **Just want to run it?** You don't need this repo โ€” grab a ready-made quant from the
> **[GGUF repo โ†’](https://huggingface.co/yuxinlu1/gemma-4-12B-agentic-fable5-composer2.5-v2-3.5x-tau2-GGUF)** (runs in
> ~4.5 GB of VRAM / unified memory in LM Studio, Ollama, llama.cpp, Janโ€ฆ). This master is for *builders*. ๐Ÿ’š

---

## ๐Ÿ“Š The headline โ€” it works as an agent (tau2-bench)

v2 is built for **coding + agentic** work โ€” writing code, running commands, using tools, debugging, multi-step
technical tasks. The clearest signal is **tau2-bench `telecom`**, an agentic tool-use benchmark whose
*diagnose โ†’ fix โ†’ verify* loop mirrors real terminal/debugging work:

| tau2-bench **telecom** ยท 20 tasks ยท local, same harness, **all Q8_0** | score |
|---|---|
| official `gemma-4-12B-it` (base) | **~15%** |
| ๐ŸŸข **Gemma4-12B v2 (this model)** | **~55%** |

โ†’ Roughly **3.5ร— higher** than the base model on technical-agentic tasks. ๐ŸŽฏ

> ๐Ÿ”ฌ *Honest methodology:* these are **local, same-harness, relative** numbers (**all models tested at Q8_0**, greedy
> decoding, self-simulated user, 20 tasks). They are **not** directly comparable to published tau2-bench leaderboard
> figures (different user-simulator, full task sets, full precision) โ€” local self-eval runs *systematically lower* than
> published scores. Read them as **"v2 vs the base model under identical conditions"**, which is the comparison that
> actually matters here.

**Grounded, not made-up.** A coding/terminal *fabrication probe* (tasks that deliberately tempt the model to invent
file paths / function signatures / values) found v2 **grounds before it acts** just like the base โ€” it `grep`/`read`/`ls`
first, and **doesn't make things up** (0% fabrication, on par with the base).

**The trade-off โ€” no free lunch.** On a general-knowledge benchmark (**MMLU-Pro**), v2 lands a little **below** the base โ€”
completely normal for a focused fine-tune: you trade a sliver of broad-knowledge breadth for coding + agentic strength.
Need a generalist? Try my general-purpose
**[Claude Opus 4.6/4.8 distillation](https://huggingface.co/yuxinlu1/gemma-4-12B-it-Claude-4.6-4.8-Opus-GGUF)** or the
base `google/gemma-4-12B-it`. Need a **local coding/agentic** worker? That's what v2 is tuned for. ๐Ÿ’š

---

## ๐Ÿค— Run it in transformers

```python
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch

repo = "yuxinlu1/gemma-4-12B-agentic-fable5-composer2.5-v2-3.5x-tau2"
tok = AutoTokenizer.from_pretrained(repo)
model = AutoModelForCausalLM.from_pretrained(repo, torch_dtype=torch.bfloat16, device_map="auto")

msgs = [{"role": "user", "content": "Write a Python function to check if a string is a valid IPv4 address."}]
inputs = tok.apply_chat_template(msgs, add_generation_prompt=True, return_tensors="pt").to(model.device)
out = model.generate(inputs, max_new_tokens=1024)
print(tok.decode(out[0][inputs.shape[-1]:], skip_special_tokens=True))
```

> ๐Ÿง  **Thinking mode:** it thinks in Gemma's native thought channel before answering (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`). Needs a **recent `transformers`** that knows the `gemma4_unified` architecture.
>
> ๐Ÿ› ๏ธ **Agentic / tool use:** v2 emits structured tool-calls in Gemma 4's **native** protocol. The smoothest agent
> setup is a GGUF quant served with llama.cpp `--jinja` (pass your tools via the OpenAI `tools` field) โ€” see the GGUF
> repo for the full command.

---

## ๐Ÿ“ฆ Ready-made GGUF quants

All from the **[GGUF repo](https://huggingface.co/yuxinlu1/gemma-4-12B-agentic-fable5-composer2.5-v2-3.5x-tau2-GGUF)**:

| Quant | Size | Vibe |
|------|------|------|
| ๐ŸŸก [**Q3_K_M**](https://huggingface.co/yuxinlu1/gemma-4-12B-agentic-fable5-composer2.5-v2-3.5x-tau2-GGUF/blob/main/gemma4-v2-Q3_K_M.gguf) | **5.7 GB** | great for 8 GB VRAM |
| ๐Ÿ”ต [**Q4_K_M**](https://huggingface.co/yuxinlu1/gemma-4-12B-agentic-fable5-composer2.5-v2-3.5x-tau2-GGUF/blob/main/gemma4-v2-Q4_K_M.gguf) | **6.87 GB** | the sweet spot ๐Ÿ‘Œ (recommended) |
| ๐ŸŸฃ [**Q6_K**](https://huggingface.co/yuxinlu1/gemma-4-12B-agentic-fable5-composer2.5-v2-3.5x-tau2-GGUF/blob/main/gemma4-v2-Q6_K.gguf) | **9.11 GB** | near-lossless |
| โšช [**Q8_0**](https://huggingface.co/yuxinlu1/gemma-4-12B-agentic-fable5-composer2.5-v2-3.5x-tau2-GGUF/blob/main/gemma4-v2-Q8_0.gguf) | **11.8 GB** | basically full quality |

> โš ๏ธ GGUF needs a **recent llama.cpp** โ€” this is the `gemma4_unified` architecture, older builds won't load it.
> โ„น๏ธ **No Q2_K this release** โ€” it didn't pass real stress-testing (2-bit is too lossy for 12B coding). Smallest
> reliable quant = **Q3_K_M**.

---

## ๐Ÿ“š What's new in v2 (training)

v2 continues from the v1 coder and adds a big **agentic** push โ€” the piece v1 was missing:

- **๐Ÿ› ๏ธ Agentic / terminal** โ€” real **multi-step tool-use** trajectories (*read โ†’ reason โ†’ act โ†’ verify*), in Gemma 4's
  native tool protocol. This is what drove the tau2-bench telecom jump, and it fixes v1's "stops after the first step"
  behavior.
- **๐Ÿ’ป Coding** โ€” verified chain-of-thought over Python tasks (**real CoT, gated on passing tests**) plus the
  Fable-5-redo set for the hard cases.
- **๐Ÿ“š General** โ€” a curated slice of reasoning/instruction data to keep broad competence.

All reasoning is **distilled CoT**. A bittersweet note: none of us saw it coming that **Fable 5 would be retired**, and
only my own dataset holds Fable 5's genuine, self-authored traces โ€” so for the community-contributed data I **rebuilt the
missing reasoning from scratch with Opus 4.8 (xhigh)**. It may diverge from the original Fable 5 traces, but it was the
only workable path โ€” and the improvement turned out **really huge**. ๐Ÿ’š

---

## โšก Speculative decoding (MTP draft) โ€” verified build

The GGUF repo's `MTP/` folder ships the Gemma 4 multi-token-prediction draft (unsloth's GGUF conversion of Google's
official `gemma-4-12B-it-assistant`) for speculative decoding. Gemma 4 MTP is in **llama.cpp mainline** (PR #23398) โ€” no
fork needed โ€” but the `gemma4-assistant` loader is **build-sensitive right now**, so use the exact build below:

- โœ… **Verified working: llama.cpp `b9553` (commit `9e3b928fd`).** Reproduced with `gemma4-v2-Q8_0` + the `MTP-Q8_0`
  draft: loads cleanly and accelerates generation (~88 โ†’ ~180 tok/s on a simple deterministic prompt; expect ~1.2โ€“1.3ร—
  on real coding/thinking). **Lossless** either way.
- โš ๏ธ **Newer builds (e.g. b9702 / b9717) currently crash** while loading the draft with `invalid vector subscript` โ€” an
  **upstream regression** in the `gemma4-assistant` loader path, *not* a problem with the GGUFs. Stick with **b9553**
  until it's fixed upstream.

```bat
llama-server -m gemma4-v2-Q8_0.gguf ^
  --model-draft MTP\gemma-4-12B-it-MTP-Q8_0.gguf ^
  --spec-type draft-mtp --spec-draft-n-max 4 ^
  -ngl 99 -ngld 99 -fa on --jinja
```

> โ„น๏ธ The draft is the generic Gemma 4 assistant (not retrained for v2), so acceptance is a touch lower than a
> model-specific draft would give โ€” still 100% lossless.

---

## โš ๏ธ Good to know
- **Specialized for coding / terminal / agentic.** General-knowledge facts/numbers should still be double-checked.
- **Reduced refusals:** task-focused training, not safety-aligned โ€” add your own guardrails for production. Use
  responsibly. ๐Ÿ™
- English-centric.

---

## ๐Ÿ“š Base & License
- **License: Apache 2.0.** Gemma 4 is released by Google under
  **[Apache 2.0](https://ai.google.dev/gemma/apache_2)** (unlike the older Gemma 1/2/3 terms), so this fine-tune is
  **Apache 2.0** too โ€” free to use, modify, and redistribute. ๐ŸŽ‰
- **Base model:** [`google/gemma-4-12B-it`](https://huggingface.co/google/gemma-4-12B-it).
- Personal/hobby project โ€” shared as-is, no warranty. Built with time, care, and a lot of coffee. Have fun, and happy
  hacking! ๐Ÿพโœจ