返回首頁

GitHub Repo

Transformers 社群提出 RoPE 相容性修補,舊式縮放設定可能遺失模型頻率基底

10 月 12 日的 Transformers 開發版回報指出,覆寫舊式 rope_scaling 欄位可能刪除既有 RoPE 參數,導致初始化失敗或重載後改用預設值。修補提案已附回歸測試,但尚未合併,維護者也提出改用新版設定欄位的遷移問題。

Andrew Wippler from Lancaster, USA · CC BY 2.0 · Image source
zh-Hant

Transformers 社群於 10 月 12 日回報一項 RoPE 設定相容性問題:對已初始化的模型設定指定舊式 rope_scaling,可能直接取代整份 rope_parameters,連帶遺失原有頻率基底。回報使用 5.19.0.dev0 的開發分支,提供不需模型權重或 GPU 的 CPU 重現案例;目前不能據此認定所有正式版本都受影響。問題回報

案例先建立 rope_theta=500000 的 Llama 設定,再指定線性縮放與兩倍係數。舊式 type 未被轉成 rope_type,旋轉嵌入初始化因此拋出缺少鍵值的錯誤;即使改用新鍵名,原有基底仍會遺失。回報者指出,存檔後重新載入還會恢復成建構子的預設基底 10000,讓錯誤從明顯例外轉為設定數值改變。重現細節

這對延長上下文的部署具有技術意義。RoPE 透過依位置旋轉注意力的 query 與 key 向量提供位置資訊;頻率基底、縮放方式與係數共同決定其行為。官方文件目前以 rope_parameters 設定這些值,並說明省略 rope_theta 時會使用模型預設值。因此,工程上應檢查覆寫及序列化前後的完整參數,僅確認縮放係數不足以保證設定一致。官方 RoPE 文件

修補提案 #49515 會保留既有基底及旋轉比例,除非使用者明確覆寫,並處理舊鍵名、分層設定與重設縮放等情況。作者回報新增十項回歸測試,修補後完整 RoPE 測試檔的 45 項測試通過。不過,維護者在審查中質疑下游既已採用 v5,為何仍覆寫舊欄位,顯示相容層是否應承擔這項行為仍待討論。修補與審查

截至查核時,提案仍開放且未合併。使用長上下文覆寫的團隊應優先核對部署版本、完整 RoPE 設定及存檔重載結果,並追蹤上游是否保留舊介面相容性;測試通過也尚不能替代實際模型品質驗證。

來源

  1. Assigning rope_scaling drops existing RoPE base parameters — Issue #49519
  2. Preserve RoPE base parameters in the rope_scaling setter — PR #49515
  3. Rotary embeddings utilities