r/LocalLLaMAが追ったllama.cppのreasoning budget制御

なぜLocalLLaMAが反応したのか

local reasoning modelは強力だが、単純な質問でも長く考え続けてlatencyとtokenを浪費することがある。だからr/LocalLLaMA threadは、このllama.cpp commitにすぐ反応した。今回の変更はreal reasoning-budget samplerを追加し、parserとchat handlingを広げて、reasoning block内のtoken数を数えながらbudget到達時に終了へ導けるようにした。これまでの--reasoning-budgetが実質的にはtemplate側のstubに近かったのに対し、今回はsampler layerで本当に制御する方向へ進んでいる。

このpostが面白いのは、単なるfeature紹介ではなく失敗データまで出している点だ。投稿者によれば、hard cutoffはQwen3 9BのHumanEval scoreを大きく落とした。full reasoningは94%、non-reasoningは88%だったのに、強制budgetでは78%まで下がった。そこで追加されたのが--reasoning-budget-messageで、thinking終了直前に短いhandoff messageを差し込んでanswer phaseへ自然に移らせる。budget 1000とtransition messageを使った場合、報告されたHumanEval scoreは89%まで戻った。

threadが示した実運用の論点

commentsはすぐにcontrol problemへ進んだ。end-of-think tokenのbiasを徐々に上げてhard stopより自然な終わり方を作れないかという提案もあれば、CLIとHTTP fieldの命名差を気にする声もあった。さらに、local環境ではreasoning modelが些細なpromptに80秒以上費やすことがあり、そこが実際の使い勝手を悪くしているという実感も共有された。必要なのは単なるon/off toggleではなく、latency、energy use、answer qualityを調整するための実戦的なknobだというわけだ。

このcommitの意味は小さなparser tweak以上に大きい。local inference stackがhosted reasoning APIに近い運用制御面を持ち始めたサインだからだ。MacBookやdesktop、小型serverでllama.cppを使う人にとって、reasoning budgetはbenchmark用の飾りではなく、体感を変えるusability featureに近い。

Commit | Reddit discussion