推論予算がただのハードカットになる問題を修正し、モデルが文の途中で締めの一言を言い切ってしまう事態を防ぎました。
これは最も上品な方法ではありません。おそらく性能低下も生じます。
ただ、停止されないときにはモデルは数分間推論を行います。
ある程度の予算の後に、以下のような文が挿入されると分かりました:
「Final Answer: Based on my analysis above,」
モデルはそれが自分のアイデアであるかのように書き続け、要約で優雅に締めくくります。
この機能をプロンプト注入フラグで実装しました。例えば300トークンの後にサマリー用の残予算を取ります。残予算はかなり多く、数千トークン程度になることもあり、私のテストではその後モデルはすぐに終了します。
私はClaudeコードでこのコードを書いたのでプルリクを作成しませんでした。動作は予定どおりでしたが、llama.cpp のルールでは PR にAIコードの使用を許可していないとされており、保守者をAIコードで圧倒したくありません。ですので、洞察を共有する方を選びました。
誰かがコードをレビューしてPRを作成したい場合は遠慮なくどうぞ。コードは喜んで共有します。
よろしくお願いします。
qwen3.5 27b、35ba3b、9bで正常にテスト済み。
GitHub の Issue: https://github.com/ggml-org/llama.cpp/issues/20632
[リンク] [コメント]