imYChaudhary22/zen-polish-v3-4bit
ZenPolish v3 (4B)
ZenVoice's on-device dictation-enhancement model. Takes the raw, unpunctuated text produced by speech-to-text engines and restores everything dictation loses: punctuation, capitalization, filler removal, spoken numbers, dates, and times. Runs fully on-device on Apple Silicon via MLX — nothing leaves the Mac.
Base model: fine-tuned (LoRA rank 16) from Qwen3-4B-Instruct-2507, then merged in 4-bit MLX. Qwen3 is the starting point; the formatting behavior below is entirely the fine-tune.
Usage
ChatML prompt, thinking disabled:
messages = [
{"role": "system", "content": SYSTEM_PROMPT},
{"role": "user", "content": "um yeah so we need to fix this bug by tuesday right check the pull request"},
]
# -> "Um, yeah, so we need to fix this bug by Tuesday. Check the pull request."The exact system prompt is in the ZenVoice repository (training/common.py).
Evaluation
Measured on ZenVoice's leakage-controlled 234-row eval suite (training/evaluate_v31.py over training/data/eval_v31.jsonl: 7 speech categories, rows appearing in any training mix excluded, ITN values disjoint from training templates), greedy decoding.
Per-category WER highlights (v3 vs v2): numbers/dates/money ITN 13.8% vs 37.3%, heavy filler/restart speech 31.8% vs 78.6%, run-on speech 14.4% vs 14.6%, questions 4.9% vs 0.6%.
Scope
- English-focused
- Formatting and cleanup only — never rewrites meaning, never adds content
- Strengths: punctuation, casing, filler/restart removal, spoken money and clock times, dates, percents
- Weak spots: over-cleanup on 1-5-word fragments; filler removal on very dense speech is improved but not solved
Training
Pipeline and recipe are in the ZenVoice repo under training/: build_pairs_v31.py (teacher pairs, filler/restart-intensity branch, ITN hard cases), noisifier, synthetic + real ASR pair builders, frozen eval sets, mlx-lm LoRA training (rank 16, ~25k pairs), and the WER no-regression gate. Weights: 4-bit MLX safetensors, 2.1 GB.
License
Apache-2.0, inherited from the Qwen3-4B base.
