MiniCPM5-1B-CURSOR โ€” agentic meeting summarizer (sub-1B on-device)

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
minicpm5-1b-cursor-p13.Q4_K_M.gguf superseded earlier round, kept for the historical record

How p15d (locked main) was made

  • Base: openbmb/MiniCPM5-1B (4k context, linear+full attention hybrid).
  • 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.
  • On-device envelope: ~650 MB Q4_K_M, 4k context, per-step ~2.9k prefill tokens.
  • p20's held-out comparison is n=3 meetings โ€” directional, not a ship-gate result.
Downloads last month
122
GGUF
Model size
1B params
Architecture
llama
Hardware compatibility
Log In to add your hardware

4-bit

Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Model tree for Luigi/minicpm5-1b-cursor

Quantized
(82)
this model

Space using Luigi/minicpm5-1b-cursor 1