vLLMの制約付きデコーディングでKimi K2.6のツール呼び出し精度が100%に
35秒でわかる内容解説
Ubicloudの開発者がvLLM 0.31で導入された制約付きデコーディングを有効化し、Kimi K2.6のツール呼び出しスキーマ準拠率を92%から100%に引き上げた。PCやサーバーでオープンウェイトモデルを推論する際、出力形式の揺らぎがエージェントの処理を阻害する要因となる。この手法はランタイムで無効なトークンを遮断するため、パフォーマンス低下もほぼない。自前の推論環境でも設定を変更するだけで安定した構造出力が得られる。OpenAIやAnthropicは2024年から同機能を活用しており、ローカル推論の精度格差が縮まる。
ランタイムで構文を強制する制約付きデコーディング
制約付きデコーディングは、ランタイムで無効なトークンを遮断する手法である。通常の推論では確率に基づいて自由なサンプリングを行うが、この機能は各ステップで有効なトークンだけを抽出する。vLLM 0.31ではサーバーサイドのフラグとして公開された。
構文解析ライブラリであるXGrammarを用いてツール呼び出しの構造を定義すると、ツール名の開始位置やJSON引数の形式が強制される。例えばツールインデックスの段階では整数トークンのみを通し、それ以外はマスクする。この仕組みにより、モデルは依然として自身でトークンを選択するが、出力パスは常に構文的に正しい状態に保たれる。
写真ではvLLMとオープンウェイトモデルの推論パイプラインが示されている。
写真では、XGrammarによるトークンマスクの仕組みが可視化されている。各フェーズで有効なトークンだけがGPU上で効率的に適用されるため、実行時のオーバーヘッドはほぼない。UbicloudはMoonshot AIが公開したK2VV ToolCallベンチマークで100%の精度を確認し、本番環境へデプロイした。
単純なアプローチではモデルの訓練に依存するが、確率的な性質により25回に2回は失敗していた。制約付きデコーディングは、失敗を事後検証からランタイム保証へ変更した。これによりエージェントワークロード(複数回のやり取りを続ける作業)における文脈汚染(エラーメッセージなどが対話履歴を埋め尽くす状態)やリトライコストを削減できる。
生成されたJSONが指定されたスキーマ(パラメータの型や必須項目を定義した構造)に準拠する必要がある。パラメータの型や必須項目が一致しないと実行側でエラーが発生する。この機能はスキーマ準拠をランタイムで保証するため、複雑なエージェントワークロードでも安定した処理が期待できる。
vLLMのデフォルト無効化とUbicloudの設定変更
UbicloudがvLLM 0.28でKimi K2.6を運用していた際、ツール呼び出しスキーマの精度は92%にとどまっていた。その後vLLMは制約付きデコーディングをマージしたが、デフォルトで有効にすると品質が低下するケースが相次いだ。主な原因は3つある。
一部のモデルは制約なしの出力がスキーマから大きく逸脱し、強制されたトークン選択で軌道修正に失敗する。Qwen 3.6やGLM 5.1でも同様の現象が報告された。また、特定のモデル形式への文法変換バグや、スペキュラティブデコーディング(推論を高速化する事前トークン生成機能)との干渉による推論破綻も確認された。
これらの課題を受け、vLLMはモデル非依存のサービングエンジンとしてデフォルトを無効化し、--tool-strict-levelフラグでユーザーが設定できるようにした。UbicloudはKimiとDeepSeekの品質を第一に優先するため、独自設定でベンチマークを再実行した。検証結果は100%のスキーマ準拠率だったため、変更を本番環境へ反映させた。
推論エンジンの設定変更がモデルの出力品質を直接変化させる事例であり、オープンウェイトモデルを扱う技術者にとって設定値の重要性を裏付ける結果となった。
コミュニティが捉える実装の有用性と比較検証
Hacker Newsでは、vLLMの設定変更で挙動が揺らいだため記事タイトルは誤解を招くとの指摘があった。llama.cppやJS transformersでは以前から同機能が実装されており、OpenAIとAnthropicは2024年から制約付きデコーディングを活用していた。技術者からはスキーマ準拠率が100%でない場合のリスクが強調された。
95%の精度で50回の連続ツール呼び出しが必要な場合、エラーなしで完了する確率は約8%まで低下する。写真では記事の執筆者であるJesse DonkervlietとJunhao Liが写っている。
写真では、UbicloudのシニアエンジニアであるJesse DonkervlietとJunhao Liが記事の背景を説明している。彼らは推論エンジンとモデル、デコーディング実装の統合に慎重なテストが必要だと述べた。リトライ方式と比較すると、制約付きデコーディングはトークン使用量を9%増やすが、文脈汚染を防げる利点がある。
300回以上のツール呼び出しを必要とするワークロードでは、OpenAIやAnthropicの採用が優勢との見方もある。 ローカル環境でもvLLMの最新バージョンを導入すれば、同等の精度で推論を回せる可能性がある。
I do things that require ~300 tool calls per prompt and I have been stuck with OpenAI and Anthropic since 2024.
1つのプロンプトで約300回のツール呼び出しを行う作業では、2024年からOpenAIとAnthropicを使っている。
出力分布への影響とリトライ方式のコスト比較
制約付きデコーディングを適用すると、モデル全体の出力分布が変化するため、長期的な推論品質への影響が注視されている。スキーマに縛られることで本来生成されるはずだった自然な文章が制限される可能性があり、実際の品質低下データは公開されていない。リトライ方式とのコスト比較についても明確な定量的データがない。リトライは文脈を汚染するが実装が簡易であり、制約付きデコーディングはオーバーヘッドが小さい代わりに設定が複雑である。
今後はvLLM 0.31以降のバージョンが広く普及し、ローカル環境でのツール呼び出し標準が定まる見込みである。Moonshot AIは自身のAPIでも同機能をデフォルト有効に推奨しており、オープンウェイト界隈の採用が加速する。2026年10月下旬から各推論サーバーで設定変更が活発化し、エージェント開発のボトルネックが解消される。技術者は各モデルのツール呼び出し形式に合わせて構文定義を調整する必要がある。
出典
- Fixing Tool-Call Accuracy in vLLM(Hacker News) · 議論