Qwen 3.6 のCoT(思考)終了トークンの不具合?

Reddit r/LocalLLaMA / 2026/4/19

💬 オピニオンDeveloper Stack & InfrastructureSignals & Early TrendsModels & Research

要点

  • 利用者は、Qwen 3.6 のCoT処理で <think> ブロックの末尾が、期待される単一トークン </think ではなく複数トークンの </thinking > になることがあり、その結果ハーネスがCoT終了を検知できない問題を報告しています。
  • この挙動は llama-server 上で Qwen 3.6 A3B を動かしている際に観測され、ケースは一部に限られるものの、比較的低い n_past の位置でも発生したとされています。
  • 利用者は、量子化が原因である可能性(Unsloth の iq4_nl 量子化を使用し、キャッシュ/状態は非量子化)を示唆しつつ、同様の現象を他の人が見たことがあるか質問しています。
  • 対処としてはサンプラーやKVキャッシュのレベルでの修正が必要ですが、その場合 llama-server の改変、または OpenAI互換のcompletions APIの自作が必要になると述べています。
  • ハーネス側の症状としては、CoT終了検知の失敗により「モデルがプロンプトに対する出力を返さなかった」などのAPI失敗として現れるそうです。

つまりQwenの語彙には<think>と</think>それぞれに対応する個別のトークンがあります。これは、私が書いたあるアプリが、CoTを選択的に止めるために<|im_start|>assistantの後でこれらのトークンをキャッシュにプッシュしていたことから分かります。すごい。

昨日、いくつかのコーディング用ハーネスをいじっていて、llama-server上で動いているqwen 3.6 A3Bを使っていたのですが、うまくいくことが多かったです。とはいえ、いくつかのケースでは、CoTを単一トークン</think>で終える代わりに、CoTブロックの末尾に複数トークン列の</thinking>をプッシュしていました。言うまでもなく、これだとCoTブロックの終了が検出されず、ハーネスが混乱しました。

もちろんこれはサンプラー/KVキャッシュのレベルで簡単に修正できるでしょう。でも、そうなるとllama-serverをハックするか、私自身でopenai completions APIを実装することになります。私はそれをやる気にはあまりなりません。で、投稿している理由は2つあります:

  • これってたぶん量子化が原因だったのでは? その時私は、unquantised cache と recurrent state(つまり、llama-serverへの -ctk/ctv 引数なし)で、iq4_nl のunsloth量子化を使っていました。参考までに、これは任意の n_past の位置で起きていて、16k/128kあたりのかなり低いところでも発生しました。

  • みなさんの中で同じようなことを見た人はいますか? ハーネス側では、APIの失敗として現れます(たとえば「モデルがプロンプトへの出力を返さなかった」みたいなもの)あるいはそれに類する症状です。

submitted by /u/Confident_Ideal_5385
[link] [comments]

Qwen 3.6 のCoT(思考)終了トークンの不具合? | AI Navigate