Instructions to use BuilderHelm/Kanso-Koi-1.0 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- MLX
How to use BuilderHelm/Kanso-Koi-1.0 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("BuilderHelm/Kanso-Koi-1.0") 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 BuilderHelm/Kanso-Koi-1.0 with Pi:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "BuilderHelm/Kanso-Koi-1.0"
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": "BuilderHelm/Kanso-Koi-1.0" } ] } } }Run Pi
# Start Pi in your project directory: pi
- MLX LM
How to use BuilderHelm/Kanso-Koi-1.0 with MLX LM:
Generate or start a chat session
# Install MLX LM uv tool install mlx-lm # Interactive chat REPL mlx_lm.chat --model "BuilderHelm/Kanso-Koi-1.0"
Run an OpenAI-compatible server
# Install MLX LM uv tool install mlx-lm # Start the server mlx_lm.server --model "BuilderHelm/Kanso-Koi-1.0" # Calling the OpenAI-compatible server with curl curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "BuilderHelm/Kanso-Koi-1.0", "messages": [ {"role": "user", "content": "Hello"} ] }' - Hermes Agent
How to use BuilderHelm/Kanso-Koi-1.0 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 "BuilderHelm/Kanso-Koi-1.0"
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 BuilderHelm/Kanso-Koi-1.0
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use BuilderHelm/Kanso-Koi-1.0 with OpenClaw:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "BuilderHelm/Kanso-Koi-1.0"
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 "BuilderHelm/Kanso-Koi-1.0" \ --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"
Kanso Koi 1.0 (1.7B + LoRA adapter)
Names. ZenVoice's formatting models are called Kanso since ZenVoice 1.3.1: Kanso Koi 1.0 was ZenPolish v2.2 Lite, Koi 0.9 was ZenPolish v2.2, Koi 0.8 was ZenPolish v2, Kanso Satori 1.0 was ZenPolish v3.2 4B and Satori 0.9 was ZenPolish v3 4B. The repositories were renamed from
zen-polish-โฆ; old links and pinned revisions redirect here. Tables below use the development version numbers (v2, v2.1, v2.2, v3, v3.1, v3.2).
ZenVoice's on-device dictation-enhancement model, compact tier. The 4B tier is
Kanso-Satori-1.0.
It takes raw speech-to-text output and restores:
- punctuation and capitalization,
- filler removal (leading and mid-sentence),
- false-restart removal,
- inverse text normalization: numbers, money, dates, times, percents, emails, URLs, phones,
- meaning-preserving grammar repair.
It runs fully on-device via MLX.
Ship format: a 4-bit base (968 MB) + a bf16 LoRA adapter (70 MB), applied
live. The adapter is in adapters/ and must be loaded on top of the base
weights (LoRAContainer in mlx-swift-lm). Do NOT merge the adapter into the
weights: fusing measurably damages behavior (money ITN and filler deletion).
Lite vs the original v2.2 upload. The original v2.2 upload,
Kanso-Koi-0.9at revision53bd03b, shipped a 6-bit base (1.40 GB) derived from the v2.1 model. Lite ships the cleanmlx-community/Qwen3-1.7B-4bitbase the adapter was trained on, with the same adapter stored in bf16 instead of fp32. It is 32% smaller, decodes about 40% faster, and is more accurate (below).It was first published as
Kanso-Koi-0.9revision26b2ee6. The files here are identical to that revision with one exception: the unusedconfigfield inadapters/adapter_config.jsonnow holds a bare file name instead of a local path.
Benchmark
500-dictation suite (eval_v500, leakage-controlled). Greedy decoding,
Apple M5, MLX 0.32.2. "Original v2.2" is Kanso-Koi-0.9 at 53bd03b:
| Metric | Lite | Original v2.2 |
|---|---|---|
| WER | 5.5% | 6.7% |
| Exact match | 65.8% | 53.6% |
| Punct F1 | 0.863 | 0.759 |
| Sentence-start | 94.4% | 91.6% |
| Bundle size | 1.05 GB | 1.55 GB |
| Peak memory | 1.19 GB | 1.77 GB |
| Decode speed | 73 tok/s | 51 tok/s |
ZenVoice app runtime (mlx-swift-lm, the app's own formatting pipeline, eval_v500). The original v2.2 is shown in brackets.
- Model output: WER 4.0% (4.7%), exact match 65.4% (43.2%).
- Time: mean 0.23 s per dictation (0.27 s).
- Peak memory: 1.39 GB (1.94 GB).
234-row leakage-controlled suite, as published for v2.2:
| Metric | v2.2 | v3 (4B) | v2.1 | v2 | Stock 1.7B |
|---|---|---|---|---|---|
| WER | 9.9% | 17.2% | 12.6% | 30.5% | 11.0% |
| Exact match | 50.4% | 41.0% | 29.9% | 23.1% | 5.0% |
| Punct F1 | 0.832 | 0.750 | 0.573 | 0.649 | 0.634 |
| Casing acc | 98.3% | 95.6% | 97.0% | 92.4% | 96.3% |
| Sent-start | 90.9% | 80.7% | 86.2% | 62.1% | 74.9% |
| Hallucination | 0.0โ7.2% | 10.8% | 7.2% | 23.0% | 0.9% |
Lite with its bf16 adapter scores WER 9.7%, exact match 50.4% and punct F1 0.831 on the same 234 rows.
Usage
Load base + adapter (mlx-lm):
from huggingface_hub import snapshot_download
from mlx_lm import load, generate
from mlx_lm.sample_utils import make_sampler
path = snapshot_download("BuilderHelm/Kanso-Koi-1.0")
model, tokenizer = load(path, adapter_path=f"{path}/adapters")
SYSTEM = ("You clean up raw speech-to-text dictation. Fix punctuation and "
"capitalization, remove filler words and false restarts, and restore the "
"written forms of numbers, dates, times, money, URLs, and email "
"addresses. Keep the speaker's meaning and wording. If an 'app:' line is "
"given, match capitalization and tone to that context. Output only the "
"cleaned text, with no commentary.")
messages = [{"role": "system", "content": SYSTEM},
{"role": "user", "content": "the budget is two thousand five hundred dollars and fifty cents"}]
prompt = tokenizer.apply_chat_template(messages, add_generation_prompt=True, enable_thinking=False)
print(generate(model, tokenizer, prompt=prompt, max_tokens=200, sampler=make_sampler(temp=0.0)))
# -> "The budget is $2,500.50."
Training
Qwen3-1.7B-4bit, LoRA rank 32 / alpha 64 / scale 2.0, cosine decay 1e-4โ1e-6 with no warmup, dropout 0.05, 3,500 iters on a 90k-pair, 10-source corpus:
- dictation cleanup and real-ASR pairs,
- DisfluencySpeech mid-sentence fillers,
- Hansard question intonation,
- earnings-call money ITN,
- BudgieScribe filler + money combined patterns,
- Gutenberg exclamation mining,
- go_emotions expressive targets,
- identity passthrough negatives,
- the v2.1 relabeled corpus.
Label-consistency policies: mid-sentence filler deletion, money always โ $,
exclamation preserved, sentence-start casing. Full pipeline:
training/data_v22/ in the ZenVoice repo.
License
Apache-2.0 (Qwen3-1.7B base). Training data: MIT/Apache-2.0/CC-BY-4.0/CC0 sources only; attribution list in the ZenVoice repo.
Published under BuilderHelm AI. Previously imYChaudhary22/Kanso-Koi-1.0; existing repository links and pinned revisions redirect to this organization repository. Model filenames and weights are unchanged.
- Downloads last month
- 228
4-bit