Hugging Faceの`generate()`関数にはバグがあり、`past_key_values`が外部で作成された`DynamicCache`の場合に誤った出力が生じます。この問題は、プレフィルデータからキャッシュを再構築するSnapKV、H2O、KIVIなどのKVキャッシュ圧縮方法に影響します。根本原因は位置コンテキストの伝播に失敗し、Qwen3-VL-8Bで10.7ppの精度低下を引き起こしていることです。
- 適切な内部状態を持つキャッシュを安全に再構築するための`DynamicCache.from_kv_tensors()`クラスメソッドを追加。
- ベースライン品質を回復させるため、生成中に明示的な`attention_mask`と`position_ids`を要求。
- 後方互換性のために、新しいメソッドはオプションの`num_hidden_layers`パラメータを通じて内部リストを事前に割り当てます。
この修正により、KV圧縮ワークフローがシーケンス長とアテンションマスクを正しく処理することで、信頼性の高い出力を生み出すことが保証されます。