返回首頁

GitHub Repo

Transformers 社群提出快取卸載修補,處理全滑動視窗模型生成時崩潰

10 月 24 日的 Transformers 修補提案指出,全為滑動視窗注意力的模型使用特定快取卸載設定時,可能在首次前向運算失敗。提案附有 GPU 重現與修補前後對照,但截至查核時尚未合併。

Marcus Qwertyus · Public domain · Image source
zh-Hant

Transformers 社群於 10 月 24 日提交 PR #49955,處理 offloaded_static 在特定模型設定下直接中斷生成的問題。提交者指出,當所有注意力層都是滑動視窗層時,首次前向運算可能拋出 ValueError;受影響設定包括 Phi-3-mini 與 Mistral-7B-v0.1。這是新提出的修補,尚非正式發布的修復。修補提案

快取卸載的用途,是把部分 KV 狀態移到 CPU,降低 GPU 記憶體需求,再於計算前預取。官方文件說明,靜態快取預設只卸載非滑動視窗層,因為滑動視窗快取大小受到限制,搬移成本可能抵銷節省記憶體的好處。這個預設值與動態快取不同,工程師不能只看「已啟用卸載」便推定每層都會搬到 CPU。快取策略文件

依提案分析,全滑動視窗配置會讓待卸載層清單完全沒有目標,但預取函式仍嘗試尋找下一個目標,因而觸發例外。修補方式是在沒有任何層需要卸載時直接返回。這也意味著,修補後該配置的滑動視窗快取仍留在加速器上,不能把「不再崩潰」解讀為獲得額外記憶體節省。原因與修改說明

提交者以縮小的 Phi-3 設定及微型 Mistral 模型,在 RTX 2060 SUPER 上展示修補後輸出與一般靜態快取一致;這支持特定路徑的正確性,尚不足以代表完整模型的部署表現。對使用低顯存 GPU 的團隊,接下來應關注維護者審查與納入版本,並用實際模型比較生成輸出、峰值顯存及吞吐量。現階段應將此視為附有重現證據的社群修補提案。重現與測試結果

來源

  1. Fix offloaded_static cache crashing on models with only sliding-window layers — PR #49955
  2. Transformers documentation: Cache strategies