Pigeon Gemma 4 — Dictation Refinement v2 (E2B + E4B, Q4_K_M GGUF)
Fine-tuned
Gemma 4 E2B and E4B models that rewrite rough spoken dictation into clean
written text — the AI refinement layer of
Pigeon, a local
Windows dictation app. Everything runs locally via llama.cpp; no cloud.
What they do: fix self-corrections ("tell mark no actually john…" → "Tell John…"),
remove disfluencies, restore punctuation, preserve names/facts/politeness, and resist
instructions embedded in the dictation (dictating "write me a poem" outputs the refined
request — it does not write the poem).
This is the v2 (round-3) release, superseding the earlier v1 fine-tunes.
Files
| File | Size | What |
|---|
gemma4-e4b-pigeon-tuned-v2.Q4_K_M.gguf | 5.3 GB | E4B fine-tune — best quality, ~0.24 s/refine on GPU |
gemma4-e2b-pigeon-tuned-v2.Q4_K_M.gguf | 3.4 GB | E2B fine-tune — fastest, ~0.18 s/refine on GPU, ~2 s on CPU |
adapters/e4b/ | ~0.3 GB | E4B round-3 LoRA adapter (r=32, α=64, all-linear) — retraining/re-merge source |
adapters/e2b/ | ~0.3 GB | E2B round-3 LoRA adapter (r=32, α=64, all-linear) — retraining/re-merge source |
Training
Sequence-level knowledge distillation: a 3,654-pair dictation-cleanup dataset was
generated by a frontier teacher model, Qwen3.5-122B-A10B (Apache 2.0), then Gemma 4
was SFT'd on the (raw → refined) pairs. LoRA r=32/α=64 on all linear projections, 3
epochs, completion-only masking on Gemma-4 <|turn> markers, bf16. The identical system
prompt is used for training and inference (embedded expectation — see Usage).
Measured evaluation (internal 825-case deterministic Gauntlet eval)
| Model | Accuracy | Notes |
|---|
| E4B-v2 | 87.9% | beats the reference teacher-class model at ~6x the speed |
| Qwen 3.5 9B (reference) | 81.1% | frontier-class reference model, ~6x slower |
| E2B-v2 | 83.2% | smallest/fastest tier |
Full methodology in the Pigeon repo (docs/EVAL_REPORT.md).
Intended use
These weights are the refine layer inside the
Pigeon local
dictation app: raw speech-to-text output is passed through the model to produce clean,
punctuated, self-correction-resolved text before it lands in the user's document. They are
not general-purpose chat or instruction-following models, and injection resistance is
trained specifically for this refine-layer role.
Usage (llama.cpp / llama-cpp-python)
The GGUFs carry the correct Gemma-4 <|turn> chat template in their metadata — pass no
chat_format override. Inference uses the byte-exact system prompt the models were
trained on (shipped in the Pigeon app itself; not reproduced here — the models expect
ONLY that system message plus the raw dictation as the user turn). Recommended sampling:
temperature=0.2, top_p=0.9.
Limitations
- No tone conditioning — trained on a single neutral style; tone instructions are ignored.
- Self-correction handling is strong but not perfect; some "…no actually X…" phrasings with
trailing clauses can resolve to the wrong item.
- English only. Q4_K_M quantization only (LoRA adapters included for re-quantization).
License & use restrictions
These are derivatives of
Google Gemma 4 (via
unsloth/gemma-4-E2B-it /
unsloth/gemma-4-E4B-it) and are distributed under the
Gemma Terms of Use. Use of these models is subject to
the
Gemma Prohibited Use Policy, which
downstream users must also comply with and pass on. "Gemma is provided under and subject to
the Gemma Terms of Use found at ai.google.dev/gemma/terms."