KucLab Hertz 0.4

A Czech/English STEM + programming assistant built by KucLab on top of google/gemma-4-12B-it, fine-tuned toward physics, chemistry, biology, mathematics and programming in Czech, while keeping the base model's native 256k-token context and tool-calling.

What this is

Hertz 0.4 is a LoRA fine-tune (r=8, merged into the base weights) trained on a self-distilled corpus of Czech/English STEM concepts, worked problems, programming exercises, and formatting examples. Training data was generated by prompting Qwen3.8-27B (Alibaba/Tongyi, Apache 2.0) as a data-generation teacher — it never trains itself, only produces answers used to fine-tune the actual model that ships here — with a system instruction asking for direct, confident answers over hedged ones.

  • Base: google/gemma-4-12B-it (11.95B params, Apache 2.0)
  • Method: QLoRA, r=8 / alpha=16, merged to bf16 then quantized
  • Context: 262144 tokens natively (no context-extension hack needed — unlike Hertz 0.3's Qwen2.5-14B base, this model ships long context out of the box). Deployed here with a default num_ctx of 65536; the model can go higher, this is a practical default, not a hard limit.
  • Training data: 744 rows — 497 newly self-distilled (STEM concepts/terms/problems, a new programming category, formatting), plus 234 rows reused as-is from Hertz 0.3's corpus.
  • Format available: GGUF (q4_k_m, ~7.4GB) for llama.cpp/Ollama, plus the raw LoRA adapter.

Gemma-4 has its own native thinking mechanism (channel-based, gated by an enable_thinking flag). Training data deliberately does not replicate that token syntax — output is plain text with visible step-by-step reasoning, same choice as Hertz 0.3. This doesn't disable native thinking mode, it just means the fine-tune doesn't touch it either way.

Quickstart (Ollama)

ollama pull hf.co/KucLab/kuclab-hertz-0.4:Q4_K_M
ollama run hf.co/KucLab/kuclab-hertz-0.4:Q4_K_M

Example

Q: Kolik je 17 × 23? Ukaž postup.

A: Výsledek: 391 — pak krok za krokem 17×(20+3) = 340+51 = 391.

Q: Napiš v Pythonu funkci pro binární vyhledávání.

A: (correct, idiomatic implementation with type hints and a docstring)

Benchmarks — and an honest complication

Measured against the same base model (google/gemma-4-12B-it, Q4_K_M via Ollama), same prompts, same grading code, both models cold.

MMLU-Pro STEM (240 held-out questions, this project's own curated subset)

base Hertz 0.4 Δ
Biology 86.7% 76.7% −10.0pp
Chemistry 55.0% 45.0% −10.0pp
Math 85.0% 76.7% −8.3pp
Physics 63.3% 56.7% −6.6pp
Total 72.5% 63.7% −8.8pp

We do not trust this number at face value, and you shouldn't either. Both models — base and fine-tuned — tend to work through every multiple-choice option individually with detailed reasoning before giving a final answer, and a meaningful fraction of responses got cut off by our grading harness's token budget before reaching the final answer letter (18% unparsed for base, 23% for Hertz 0.4). The drop is uniform across all four subjects, which points to a harness/verbosity artifact rather than genuine domain-knowledge loss, but we have not yet re-run this with a larger token budget to confirm. Until we do, treat this MMLU-Pro number as unverified and likely pessimistic for both models — we're publishing it anyway because we'd rather show a confusing number with an honest explanation than hide it.

Czech terminology benchmark: not yet run for this release.

Honest status

  • ✅ Coherent, correct Czech and English output (spot-checked: arithmetic, physics, code, terminology — one wrong term found: "smělná odchylka" instead of "směrodatná odchylka" for standard deviation)
  • ✅ Correctly identifies as a KucLab model, not as "Gemma" (LoRA + system prompt)
  • ✅ 256k native context (inherited from base, not independently long-context-tested by us yet)
  • ⚠️ MMLU-Pro STEM comparison run but confounded by a benchmark-harness token-budget issue (see above) — re-run pending
  • ⏳ Czech terminology benchmark not yet run for this release
  • ⏳ Tool-calling fine-tuning — base supports it natively, this fine-tune didn't add tool-use training examples
  • ⏳ No uncensoring/decensoring pass — safety behavior inherited from the base model as-is

If you're deciding whether this fits your use case: treat it as "gemma-4-12B-it, nudged toward Czech STEM/programming fluency and KucLab identity," with an open question mark on general STEM benchmark performance until we re-verify it.

License

Apache 2.0, inherited from google/gemma-4-12B-it (per Google's official Hugging Face listing). Qwen3.8-27B (used only to generate training data, never trained or redistributed here) is separately licensed under Apache 2.0 by Alibaba/Tongyi.

Credits

Downloads last month
7
GGUF
Model size
12B params
Architecture
gemma4
Hardware compatibility
Log In to add your hardware

4-bit

Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for KucLab/kuclab-hertz-0.4

Adapter
(55)
this model