Instructions to use imYChaudhary22/zen-polish-v3-4bit with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- MLX
How to use imYChaudhary22/zen-polish-v3-4bit with MLX:
# Make sure mlx-lm is installed # pip install --upgrade mlx-lm # Generate text with mlx-lm from mlx_lm import load, generate model, tokenizer = load("imYChaudhary22/zen-polish-v3-4bit") prompt = "Write a story about Einstein" messages = [{"role": "user", "content": prompt}] prompt = tokenizer.apply_chat_template( messages, add_generation_prompt=True ) text = generate(model, tokenizer, prompt=prompt, verbose=True) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- LM Studio
- Pi
How to use imYChaudhary22/zen-polish-v3-4bit with Pi:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "imYChaudhary22/zen-polish-v3-4bit"
Configure the model in Pi
# Install Pi: npm install -g @earendil-works/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "mlx-lm": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "imYChaudhary22/zen-polish-v3-4bit" } ] } } }Run Pi
# Start Pi in your project directory: pi
- MLX LM
How to use imYChaudhary22/zen-polish-v3-4bit with MLX LM:
Generate or start a chat session
# Install MLX LM uv tool install mlx-lm # Interactive chat REPL mlx_lm.chat --model "imYChaudhary22/zen-polish-v3-4bit"
Run an OpenAI-compatible server
# Install MLX LM uv tool install mlx-lm # Start the server mlx_lm.server --model "imYChaudhary22/zen-polish-v3-4bit" # Calling the OpenAI-compatible server with curl curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "imYChaudhary22/zen-polish-v3-4bit", "messages": [ {"role": "user", "content": "Hello"} ] }' - Hermes Agent
How to use imYChaudhary22/zen-polish-v3-4bit with Hermes Agent:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "imYChaudhary22/zen-polish-v3-4bit"
Configure Hermes
# Install Hermes: curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash hermes setup # Point Hermes at the local server: hermes config set model.provider custom hermes config set model.base_url http://127.0.0.1:8080/v1 hermes config set model.default imYChaudhary22/zen-polish-v3-4bit
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use imYChaudhary22/zen-polish-v3-4bit with OpenClaw:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "imYChaudhary22/zen-polish-v3-4bit"
Configure OpenClaw
# Install OpenClaw: npm install -g openclaw@latest # Register the local server and set it as the default model: openclaw onboard --non-interactive --mode local \ --auth-choice custom-api-key \ --custom-base-url http://127.0.0.1:8080/v1 \ --custom-model-id "imYChaudhary22/zen-polish-v3-4bit" \ --custom-provider-id mlx-lm \ --custom-compatibility openai \ --custom-text-input \ --accept-risk \ --skip-health
Run OpenClaw
openclaw agent --local --agent main --message "Hello from Hugging Face"
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.
| Metric | ZenPolish v3 (4B) | ZenPolish v2 (1.7B) | Stock Qwen3-4B | Raw input floor |
|---|---|---|---|---|
| WER | 17.2% | 30.5% | 24.4% | 40.4% |
| Exact match | 41.0% | 23.1% | 33.3% | 0.0% |
| Punctuation F1 | 0.750 | 0.649 | 0.745 | 0.000 |
| New-content (hallucination) rate | 10.8% | 23.0% | 17.1% | 32.5% |
| Capitalization accuracy | 95.6% | 92.4% | 95.4% | 76.5% |
| Sentence-start accuracy | 80.7% | 62.1% | 73.9% | 0.9% |
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.
- Downloads last month
- 33
4-bit
Model tree for imYChaudhary22/zen-polish-v3-4bit
Base model
Qwen/Qwen3-4B-Instruct-2507