MiniCPM5-2B sampling defaults omit repeat-penalty; without it the model runs away on a large share of generations
Nobody has claimed this yet.
- Dominant language
- Jupyter Notebook
- Stars
- 11.1k
- Forks
- 763
- Avg merge
- 6h 3m
- Merged PRs (30d)
- 5
Description
Summary
The sampling table in skills/minicpm5-deploy-llama-cpp/SKILL.md (and the matching guidance in docs/deployment/llama_cpp.md) lists only --temp 1.0 and --top-p 0.95 for MiniCPM5-2B Think. With exactly those settings and nothing else, I see a very high rate of generations where the thinking channel collapses into repetition and never terminates.
Adding a single flag, --repeat-penalty, changes the outcome dramatically. Everything else was held constant across all ten runs below; only that one value changed.
HumanEval+ (164 tasks), RTX 3060 12GB
| repeat-penalty | Q8_0 score | Q8_0 runaway rate | Q4_K_M score | Q4_K_M runaway rate |
|---|---|---|---|---|
| 1.00 (as documented) | 43.3 | 55.5% | 6.1 | 92.1% |
| 1.05 | 86.0 | 7.9% | 34.1 | 61.6% |
| 1.10 | 90.9 | 4.9% | 67.7 | 25.6% |
| 1.15 | 92.1 | 1.8% | 71.3 | 11.0% |
| 1.20 | 87.1 | 5.5% | 60.1 | 7.9% |
Both quants peak at 1.15 and regress at 1.20, so this is not simply "more is better" — 1.15 looks like a real optimum rather than an artifact.
Two things stand out:
- At the documented setting, Q4_K_M is effectively unusable for coding — 92% of tasks never produce an answer at all. The quant table in the same SKILL.md describes Q4_K_M as a "small drop, ideal for laptops", which is fair at 1.15 but very misleading at 1.00.
- The lower quant is far more sensitive to this. Q8_0 recovers almost fully in a single step from 1.00 to 1.05, while Q4_K_M needs the whole sweep. So the omission hurts exactly the users the recommended quant is aimed at.
Setup
- llama.cpp served through llama-swap (
ghcr.io/mostlygeek/llama-swap:unified-cuda), RTX 3060 12GB - Official GGUFs from
openbmb/MiniCPM5-2B-GGUF, both Q8_0 and Q4_K_M -ngl 99 -c 131072 -fa on --jinja -np 4 -ctk f16 -ctv f16 -b 2048 -ub 1024 --temp 1.0 --top-p 0.95- Thinking enabled. My harness runs one repair round, so these scores are not directly comparable to standard pass@1 numbers — the relative movement is the point, not the absolute values.
- "Runaway rate" is my harness killing a generation once it detects repetition. That is my own definition, not a MiniCPM concept.
Question
Was repeat-penalty left out deliberately — for example because it costs something on a capability I did not measure? If not, would you consider adding a recommended value to the sampling table for MiniCPM5-2B? I only tested HumanEval+ on one machine, so a value validated against your own eval suite would be much better than mine.
Related: #360 covered a different gap in the same sampling guidance, so it may be worth reviewing the documented profiles as a whole rather than patching one value at a time.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by comparing the sampling tables in skills/minicpm5-deploy-llama-cpp/SKILL.md and docs/deployment/llama_cpp.md with the reported MiniCPM5-2B settings and results. Review whether repeat-penalty affects an unmeasured capability before choosing a documented value. Done means both guidance locations agree, or the omission has a documented rationale.
Written by the indexing model from the issue text.
Assessment
- Domain
- documentation, machine-learning
- Issue type
- Documentation
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 58/100