You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Related data point that partly bounds the "raise the budget" mitigation discussed in #388 — posting it here because it cuts against my own conclusion, which seems relevant to your question 2.
On my side (MiniCPM5-2B Q4_K_M GGUF, phone, max_tokens=384): the loop failures were pure budget exhaustion — the whole 384-token budget was consumed inside reasoning_content, content came back empty (8/27 positive cases). Raising max_tokens 384 → 512 took that from 8/27 to 1/9. So for that failure mode, more budget was the fix.
But your cases loop at --max_tokens=8192, which means "just give it more budget" is not a general answer. It only works when the loop is bounded by the budget rather than genuinely non-convergent. Your Pattern B (generate → doubt → re-derive → generate) reads like the latter, so I'd expect sampler-side knobs and prompt structure to matter more than max_tokens there. Treat my result as scoped to "short-budget truncation", not as a remedy for non-convergent thinking.
One config detail that did matter on my side: llama.cpp's default min_p=0.05 filters out the low-probability tokens needed to escape a loop; I had to set min_p=0.0 explicitly for runs to converge. I don't know whether vLLM-Ascend exposes an equivalent sampling floor, but if it does, it may be worth checking before tuning repeat_penalty alone.
Data if useful: the measurement is #388, raw TSVs available on request. Not claiming it solves your case — the two setups differ in both budget scale and engine.
Activity
Lmeng486 commentedon Oct 20, 2026
Related data point that partly bounds the "raise the budget" mitigation discussed in #388 — posting it here because it cuts against my own conclusion, which seems relevant to your question 2.
On my side (MiniCPM5-2B Q4_K_M GGUF, phone,
max_tokens=384): the loop failures were pure budget exhaustion — the whole 384-token budget was consumed insidereasoning_content,contentcame back empty (8/27 positive cases). Raisingmax_tokens384 → 512 took that from 8/27 to 1/9. So for that failure mode, more budget was the fix.But your cases loop at
--max_tokens=8192, which means "just give it more budget" is not a general answer. It only works when the loop is bounded by the budget rather than genuinely non-convergent. Your Pattern B (generate → doubt → re-derive → generate) reads like the latter, so I'd expect sampler-side knobs and prompt structure to matter more thanmax_tokensthere. Treat my result as scoped to "short-budget truncation", not as a remedy for non-convergent thinking.One config detail that did matter on my side: llama.cpp's default
min_p=0.05filters out the low-probability tokens needed to escape a loop; I had to setmin_p=0.0explicitly for runs to converge. I don't know whether vLLM-Ascend exposes an equivalent sampling floor, but if it does, it may be worth checking before tuningrepeat_penaltyalone.Data if useful: the measurement is #388, raw TSVs available on request. Not claiming it solves your case — the two setups differ in both budget scale and engine.