ホームへ戻る

GitHub Repo

Transformers 5.20.1、PyTorch 2.7でのモデル読み込み失敗を修正し、分散チェックポイントのバージョン判定を調整

Hugging Faceは10月16日、Transformers 5.20.1をリリースし、PyTorch 2.7環境で発生する5.20.0のモデル読み込み回帰を修正しました。分散チェックポイント機能のバージョン要件をPyTorch 2.8に引き上げ、モジュール不足によるエラーが通常の読み込み処理に波及するのを防ぎます。

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

Hugging Faceは10月16日、旧バージョンのPyTorchで発生するモデル読み込みの問題を修正したTransformers 5.20.1をリリースしました。デプロイチームが注目すべき変更は、5.20.0の分散チェックポイント依存関係の確認が、通常のモデル読み込みを妨げる可能性があった点です。公式リリースノートはこの回帰を確認し、対応する修正を記載しています。リリースノート

コミュニティからの報告では、Windows、Python 3.12.2、CPU版PyTorch 2.7.1の環境で再現する手順が示されました。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を固定しているチームは、まずTransformers 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