# 制約付きデコーディング ## 定義 制約付きデコーディング(Constrained Decoding / Guided Decoding)とは、LLMのトークン生成過程そのものに出力フォーマットや構造上の制約を組み込み、生成されるトークン列が構造的に準拠したものになるよう強制する技術である。推論後にビジネスロジックで検証・再試行・修復する事後的アプローチと対比され、無効な生成に対価を払うコストを避ける。([[@2026__Netflix TechBlog__In-House LLM Serving at Netflix]]) Netflixの実装では、各制約を生成済みトークン履歴とともに進化する状態機械としてモデル化し、デコードの各ステップでトークン適格性マスクを発行する。vLLMのカスタムlogits processorインターフェース経由でこれを実現し、リクエストごとに個別の設定済みprocessorインスタンスを持たせることで、リクエストごとに異なる制約ルールを適用できるようにしている。(Source: [[@2026__Netflix TechBlog__In-House LLM Serving at Netflix]]) ## 横断的知見 - (2ソース目以降で蓄積する。現時点はNetflix単一ソースのため空。) ## 未解決の問い - vLLM V0のper-request logits processorはGILによりCPU側処理がバッチサイズに比例して線形増加し、単一リクエストのベンチマークでは見えないテイルレイテンシ悪化を引き起こした。V1のbatch-level API(`update_state(batch_update)`)への移行とC++マルチスレッド化で解消したが、この設計はvLLM以外の推論エンジン(TensorRT-LLM、SGLang等)のlogits processor相当機構にも一般化できるか。 - V1移行後も、chunked prefillingによる部分的prefill(`BatchUpdate`が完全/部分prefillを区別できない)と、メモリ圧迫下のプリエンプション(KVキャッシュ退避によりトークン履歴が縮み状態機械の単調増加前提が崩れる)という2つの運用課題が残った。これらは状態機械ベースの制約実装に一般的な課題か、vLLM固有の実装詳細に起因するものか。 - 次の投資方向として挙げられている「ベクトル化されたlogits processor(CPUコードではなく融合GPUカーネルとして実行)」は、状態機械の遷移ロジックをどこまでGPU上に移せるか。GPU側での状態管理はCPU側に比べてどのようなトレードオフを持つか。 ## 関連 - 実装エンジン: [[vLLM]] - 導入事例: [[Netflix]] - 概念: [[LLM推論]] - 本ソース: [[@2026__Netflix TechBlog__In-House LLM Serving at Netflix]] ## 出典 - [[@2026__Netflix TechBlog__In-House LLM Serving at Netflix]]