Downloads · 30 days
8
12% of all-time downloads
abhiyan10/bol-cleanup-350m-4bit
bol-cleanup-350m-4bit is a text generation model from abhiyan10. Use it when you need the model to write or continue text. It is set up for mlx. The card lists the license as apache-2.0.
The transcript-cleanup model for Bol, the open-source voice loop for Claude Code. Turns raw voice dictation into a clean coding prompt without changing its meaning:
Downloads · 30 days
8
12% of all-time downloads
All-time downloads
65
Public
Parameters
354M
200 MB on disk
Likes
0
Public
Click a slice to open those files.
.safetensors200 MB · 98%
How the weights are stored.
U32354M · 100%
From the Hugging Face model README
The transcript-cleanup model for Bol, the open-source voice loop for Claude Code. Turns raw voice dictation into a clean coding prompt without changing its meaning:
in: um so like refactor the the auth module in auth dot py and uh run the
tests but don't touch login dot py
out: Refactor the auth module in auth.py and run the tests, but don't touch
login.py.
LoRA fine-tune of LFM2.5-350M, fused and quantized to 4-bit for MLX. 195MB, 40-100ms per cleanup on Apple Silicon.
Generic 1B-class models failed Bol's safety bar in live testing: they dropped negated clauses ("but don't touch login.py") and parroted few-shot examples. A 350M model tuned on exactly this task is both faster and safer.
| Metric | Result |
|---|---|
| Exact match | 94% |
| Negations preserved | 100% |
| File names / flags preserved | 100% |
| Clean input left untouched | 100% |
Fully synthetic and reproducible (pipeline in the Bol repo):
150 seed coding prompts, rule-corrupted into spoken form (fillers, stutters,
"auth dot py", "dash dash verbose"), plus roundtrip pairs where each seed is
spoken by macOS say and transcribed by Parakeet to capture real STT error
patterns, plus identity pairs so clean text passes through untouched.
With Bol, in ~/.config/bol/config.toml:
[cleanup]
model = "abhiyan10/bol-cleanup-350m-4bit"
Standalone with mlx-lm:
from mlx_lm import load, generate
model, tok = load("abhiyan10/bol-cleanup-350m-4bit")
prompt = tok.apply_chat_template([
{"role": "system", "content": "Clean this voice dictation for a coding agent. Output only the cleaned text."},
{"role": "user", "content": "um fix the the login bug in auth dot py"},
], add_generation_prompt=True)
print(generate(model, tok, prompt=prompt, max_tokens=120))