返回首頁

GitHub Repo

Transformers 5.20.1 修復 PyTorch 2.7 模型載入失敗,調整分散式檢查點版本檢查

Hugging Face 於 10 月 16 日發布 Transformers 5.20.1,修正 5.20.0 在 PyTorch 2.7 環境中的模型載入回歸問題。新版將分散式檢查點功能的版本門檻調整至 PyTorch 2.8,避免缺少模組的錯誤波及一般載入流程。

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

Hugging Face 於 10 月 16 日發布 Transformers 5.20.1,修復舊版 PyTorch 的模型載入問題。這次值得部署團隊注意的變動,是 5.20.0 的分散式檢查點相依檢查可能阻斷一般模型載入;官方發布說明已確認回歸問題,並列入對應修補。發布說明

社群回報提供 Windows、Python 3.12.2 與 PyTorch 2.7.1 CPU 環境的重現方式:呼叫 AutoModelForCausalLM.from_pretrained() 載入微型 GPT-2 測試模型,就會出現模型類別無法匯入的錯誤。直接匯入 transformers.modeling_utils,才會看到根因是缺少 torch.distributed.checkpoint.hf_storage。回報者未使用分散式設定,同一環境搭配 Transformers 5.19.0 則可正常運作。問題回報

原因在於功能檢查把 PyTorch 2.7 判定為可使用相關檢查點整合,但所需的 hf_storage 模組從 2.8 才提供。由於模型工具模組會無條件匯入分散式檢查點模組,錯誤便沿匯入鏈擴散。修補將判斷門檻提高至 2.8,並同步調整相關錯誤訊息及 FSDP2 檢查;該修補沒有提高套件整體的 PyTorch 最低版本要求。修補內容

這個版本界線也有上游依據:PyTorch 2.8 的官方公告將 DCP 對 SafeTensors 的儲存、載入與重新分片支援列為新增功能,當時標示為 API 尚未穩定。對工程團隊而言,套件可安裝與特定整合功能可用,必須分別驗證。PyTorch 技術公告

仍固定使用 PyTorch 2.7 的團隊,可優先驗證 5.20.1 的基本載入流程,再測試實際使用的平行化與檢查點路徑。發布說明另列出 PyTorch 2.6、2.7 的張量分片修補,不能僅憑模型成功載入便推定所有分散式功能相容。公開資料尚不足以涵蓋各種硬體組合;上述修補最初提出的專用回歸測試,也在審查過程中被移除。發布說明、審查紀錄

來源

  1. Transformers v5.20.1 發布說明
  2. Issue #49651:PyTorch 2.7 的 from_pretrained 載入失敗
  3. PR #49652:調整分散式檢查點的 PyTorch 版本檢查
  4. PyTorch 2.8 Release Blog