GitHub Repo
Transformers 社群回報 Qwen4-Exp 快取重設缺口,重用後可能改變稀疏注意力結果
10 月 19 日的 Transformers 社群回報指出,Qwen4-Exp 重用已重設的快取時,殘留位置資訊可能改變稀疏注意力選擇。回報附有重現程式與本機修補,但尚無維護者確認,也未完成預訓練模型評估。

Transformers 社群於 10 月 19 日提出 Qwen4-Exp 快取生命週期問題:對 DynamicCache 或 StaticCache 呼叫 reset() 後,再將同一物件交給新請求,前一輪的 position_ids 仍可能保留。當 QSA 實際裁剪注意力鍵區塊時,這些位置資訊可能改變區塊選擇與輸出 logits。回報測試的是 5.21.0.dev0 原始碼版本,尚不能推定所有正式部署均受影響。問題回報
這類問題與推論服務如何管理快取有關。官方文件說明,KV 快取可避免逐 token 生成時重複計算;DynamicCache 隨序列增長,StaticCache 則預先配置容量,方便編譯最佳化。開發者也能自行建立快取,再透過 past_key_values 傳入模型,因此快取重設是否完整,會影響手動管理物件的執行路徑。官方快取文件
回報者使用 CPU、FP32 與隨機初始化的小模型,先輸入三個 token,重設後再輸入十二個;此時快取 token 數為十二,位置數卻為十五。測試刻意縮小稀疏選擇預算,讓短序列也啟動裁剪;其中一組 logits 最大絕對差約為 0.031。移除殘留位置屬性後,結果與新建快取一致。不過,差異不能直接換算為回答品質下降,該次貪婪生成的單一 token 也未改變。重現與對照
回報中的修補構想是在重設各層狀態後,同步刪除位置屬性;作者表示本機檢查已通過,但尚未測試 CUDA、編譯執行或預訓練權重。一般獨立 generate() 呼叫在測試中會建立新快取,未重現問題。對自行重用快取的工程團隊,後續應關注維護者如何界定中繼資料的清理責任,並以實際模型比較重設與新建快取的結果;目前仍無正式修復版本。修補構想與限制