Fine-tune of openbmb/MiniCPM5-1B on the
CURSOR protocol: a streaming agent that converts long meeting transcripts (zh-TW / en)
into structured, fully-anchored meeting notes by emitting edit ops (ADD/UPD/DEL/CMP/NOP)
against one evolving NOTES state — no map-reduce, no ReAct loops.
Try it live: cursor-wasm-demo runs
this model entirely in your browser via WASM — watch the NOTES state build chunk by
chunk, no server involved.
Checkpoints in this repo
file
status
notes
minicpm5-1b-cursor.Q4_K_M.gguf
locked main (p15d)
the deployed checkpoint — see results below
minicpm5-1b-cursor-p20.Q4_K_M.gguf
candidate, not yet locked
real-ASR-majority retrain, see below
minicpm5-1b-cursor-p19c.Q4_K_M.gguf
superseded experiment
coverage-focused dose, worse on the published T1 numbers than p15d
Data: teacher traces from Gemma-4-31B-it (NVFP4, thinking ON), judge-filtered
against a local gpt-oss-20b judge (only judge-verifiable teacher bullets become SFT
targets), 100% synthetic transcripts (zh-TW + en, revision-dense meetings by design).
Guards: two deterministic harness guards run at render time —
promote_decision_summaries (decision-shaped SUMMARY bullets move into DECISIONS) and
enforce_decision_chain (opposing-polarity bullets on one subject: keep the latest).
Verifier: paired with Luigi/granite-4.0-350m-verifier (Apache-2.0, ~215MB), which
gates DECISIONS/ACTIONS ops in-stream and re-verifies every final bullet against
whole-transcript evidence. The verifier is required for the 0-inversion deployment
number below — the model alone measures 4/20.
Measured results (T1 tier, n=20, local judges, 3x majority)
configuration
INVERT
FAITH
COVER
SYNTH
p15d, model-only (raw)
4/20
3.57
3.00
2.30
p15d + verifier, in-stream + sweep (deployed)
0-2/20
4.43
2.85-3.80
2.35-3.40
map-reduce baseline (Qwen3.5-9B)
3/20
3.50
3.05
2.60
G1 capability screen: PASS both languages (with the guards). Verifier agreement with
gpt-oss-20b: 97% en / 92% zh on clean evidence (zh discrimination on real-ASR-noisy
evidence remains a known, documented gap — see the agentic-summarizer repo's RESULTS.md
for the full retraining history and every measured negative on that front).
p20 (real-ASR-majority candidate, 2026-08-18): measured positive, not yet locked
p15d was trained on 100% synthetic transcripts. p20 continues from the p15d checkpoint
on the first genuinely real-ASR-majority mix (58.9% real / 41.1% clean-synthetic) —
23 real zh-TW-majority podcast transcripts (donated for this project, teacher-traced and
judge-filtered the same way as the synthetic data), oversampled against a clean-synthetic
minority.
Held-out real-meeting comparison (3 whole meetings withheld from training, never
seen by either checkpoint during training):
meeting
lang
p15d valid-op
p20 valid-op
q08
zh-TW
80%
88%
ho4
zh-TW
100%
100% (tie)
p02
en
86%
100%
p20 improves or ties valid-op on every held-out real meeting, and in spot checks avoided
a fabrication p15d made on one of them (p15d invented a DECISIONS bullet — "Use Linux as
the preferred operating system" — with no grounding in the source, a job-interview-prep
podcast).
Caveat, stated plainly: n=3 held-out meetings is directional, not a ship-gate
measurement. p20 is published here as a measured, honest candidate — not a claim that
it now supersedes p15d as the recommended deployment. Promoting it would need the same
T1-tier (n=20) confirmation p15d itself was held to. Use p15d for anything you need a
locked answer on; try p20 if your workload is real-ASR-majority zh-TW/en content
specifically and you want to see the newer checkpoint's behavior on it.
Usage
llama.cpp server, greedy, thinking OFF (the model emits hybrid <think> unless disabled):
llama-server -m minicpm5-1b-cursor.Q4_K_M.gguf --n-gpu-layers 999 --ctx-size 4096 \
--parallel 1 --flash-attn on --jinja --reasoning off --temp 0
The client is the CURSOR harness (agentic-summarizer repo, eval/run_arms.py --arms cursor --base-url <server> --tokenizer openbmb/MiniCPM5-1B --budget 2048). The model
expects the exact system prompt and NOTES rendering the harness produces — it is NOT a
general chat model.
Caveats (must accompany every reported number)
zh T2 tier is synthetic; contested-zh (real, decision-bearing zh-TW meetings, as
opposed to podcasts) remains the largest unmeasured gap in this project.
Judge-noise floor +-0.4-0.5 (FAITH/SYNTH); n=20 per tier; reduced cells directional.