このトピックでは、training-nv-pytorch バージョン 25.08 のリリースノートについて説明します。
主な特徴とバグ修正
主な特徴
transformers を 4.53.3+ali にアップグレードしました。
vllm を 0.10.0 に、ray を 2.48.0 にアップグレードしました。
バグ修正
(なし)
内容
アプリケーションシナリオ | トレーニング/推論 |
フレームワーク | PyTorch |
要件 | NVIDIA ドライバーリリース >= 575 |
コアコンポーネント |
|
アセット
25.08
egslingjun-registry.cn-wulanchabu.cr.aliyuncs.com/egslingjun/training-nv-pytorch:25.08-serverless
VPC イメージ
acs-registry-vpc.{region-id}.cr.aliyuncs.com/egslingjun/{image:tag}
{region-id}は、ACS がアクティブ化されている リージョン (cn-beijing や cn-wulanchabu など) を示します。{image:tag}は、イメージの名前とタグを示します。
現在、VPC 経由でプルできるのは、中国 (北京) リージョン内のイメージのみです。
egslingjun-registry.cn-wulanchabu.cr.aliyuncs.com/egslingjun/training-nv-pytorch:25.08-serverless イメージは、ACS および Lingjun のマルチテナントプロダクトに適しています。このイメージは Lingjun のシングルテナントプロダクトには適しておらず、Lingjun のシングルテナントシナリオでは使用しないでください。
ドライバー要件
25.08 リリースは CUDA 12.8.0 に基づいており、NVIDIA ドライバーバージョン 575 以降が必要です。ただし、T4 などのデータセンター GPU で実行している場合は、NVIDIA ドライバーバージョン 470.57 (またはそれ以降の R470 リリース)、525.85 (またはそれ以降の R525 リリース)、535.86 (またはそれ以降の R535 リリース)、または 545.23 (またはそれ以降の R545 リリース) を使用できます。
CUDA ドライバー互換性パッケージは、特定のドライバーのみをサポートします。したがって、R418、R440、R450、R460、R510、R520、R530、R545、R555、および R560 ドライバーは CUDA 12.8 とのフォワード互換性がないため、すべてアップグレードする必要があります。サポートされているドライバーの完全なリストについては、「CUDA アプリケーションの互換性」をご参照ください。詳細については、「CUDA の互換性とアップグレード」をご参照ください。
主な特徴と機能強化
PyTorch コンパイルの最適化
PyTorch 2.0 で導入されたコンパイル最適化機能は、1 つの GPU での小規模なトレーニングに適しています。ただし、LLM トレーニングには、GPU メモリの最適化と、FSDP や DeepSpeed などの分散フレームワークが必要です。その結果、torch.compile() はトレーニングにメリットをもたらさず、悪影響を及ぼす可能性があります。
DeepSpeed フレームワークで通信の粒度を制御することで、コンパイラが完全な計算グラフを取得し、より広い範囲のコンパイル最適化を実現できます。
最適化された PyTorch:
PyTorch コンパイラのフロントエンドは、計算グラフでグラフの中断が発生した場合でもコンパイルを確実に行えるように最適化されています。
モードマッチングと動的シェイプ機能が強化され、コンパイルされたコードが最適化されます。
上記最適化後、8B LLM のトレーニング時に E2E スループットが 20% 向上します。
再計算のための GPU メモリ最適化
さまざまなクラスターにデプロイされたモデルや、さまざまなパラメーターで構成されたモデルでパフォーマンステストを実行し、GPU メモリ使用率などのシステムメトリックを収集することで、モデルの GPU メモリ消費量を予測および分析します。その結果に基づいて、アクティベーション再計算レイヤーの最適な数を提案し、それを PyTorch に統合します。これにより、ユーザーは GPU メモリ最適化の恩恵を簡単に受けることができます。現在、この機能は DeepSpeed フレームワークで使用できます。
ACCL
ACCL は、Alibaba Cloud が Lingjun 向けに提供する社内 HPN 通信ライブラリです。GPU アクセラレーションシナリオ向けに ACCL-N を提供します。ACCL-N は、NCCL に基づいてカスタマイズされた HPN ライブラリです。NCCL と完全に互換性があり、NCCL のいくつかのバグを修正しています。ACCL-N は、より高いパフォーマンスと安定性も提供します。
E2E パフォーマンスゲイン評価
クラウドネイティブ AI パフォーマンス評価および分析ツール CNP を使用して、包括的なエンドツーエンド (E2E) パフォーマンス比較が実施されました。主流のオープンソースモデルとフレームワーク構成が使用され、標準のベースイメージと比較されました。アブレーション実験を通じて、各最適化コンポーネントがモデル全体のトレーニングパフォーマンスに与える貢献がさらに評価されました。
コア GPU コンポーネントの E2E パフォーマンス貢献度分析
以下のテストはバージョン 25.08 に基づいており、マルチノード GPU クラスターでのトレーニングに関する E2E パフォーマンス評価と比較分析が含まれます。比較項目は次のとおりです。
Base: NGC PyTorch イメージ。
ACS AI Image: Base+ACCL: このイメージは ACCL 通信ライブラリを使用します。
ACS AI Image: AC2+ACCL: Golden イメージは、最適化が有効になっていない AC2 BaseOS を使用します。
ACS AI Image: AC2+ACCL+CompilerOpt: Golden イメージは、torch コンパイル最適化のみが有効になっている AC2 BaseOS を使用します。
ACS AI Image: AC2+ACCL+CompilerOpt+CkptOpt: Golden イメージは、torch コンパイルと選択的勾配チェックポイント最適化の両方が有効になっている AC2 BaseOS を使用します。

クイックスタート
次の例は、Docker を使用して training-nv-pytorch イメージをプルする方法を示しています。
ACS で training-nv-pytorch イメージを使用するには、コンソールでワークロードを作成するときに [Artifacts] ページから選択するか、YAML ファイルでイメージリファレンスを指定します。
1. イメージの選択
docker pull egslingjun-registry.cn-wulanchabu.cr.aliyuncs.com/egslingjun/training-nv-pytorch:[tag]2. API を呼び出してコンパイラと再計算ビデオメモリ最適化を有効にする
コンパイル最適化を有効にする
transformers Trainer API を使用します。

再計算ビデオメモリ最適化を有効にする
export CHECKPOINT_OPTIMIZATION=true
3. コンテナーの起動
このイメージには、ljperf という名前の組み込みモデルトレーニングツールが含まれています。次のステップでは、このツールを使用してコンテナーを起動し、トレーニングタスクを実行する方法について説明します。
LLM クラス
# コンテナーを起動して入る
docker run --rm -it --ipc=host --net=host --privileged egslingjun-registry.cn-wulanchabu.cr.aliyuncs.com/egslingjun/training-nv-pytorch:[tag]
# トレーニングデモを実行する
ljperf benchmark --model deepspeed/llama3-8b 4. 使用上の推奨事項
イメージの変更には、PyTorch や DeepSpeed などのライブラリが含まれます。これらを再インストールしないでください。
DeepSpeed 構成では、zero_optimization.stage3_prefetch_bucket_size を空のままにするか、auto に設定します。
このイメージに組み込まれている
NCCL_SOCKET_IFNAME環境変数は、シナリオに基づいて動的に調整する必要があります。単一の Pod がトレーニングまたは推論タスクのために 1、2、4、または 8 枚のカードをリクエストする場合、
NCCL_SOCKET_IFNAME=eth0を設定します。これは、このイメージのデフォルト構成です。単一の Pod がマシン上の 16 枚すべてのカードをトレーニングまたは推論タスクのためにリクエストする場合、ハイパフォーマンスネットワーク (HPN) を使用できます。この場合、
NCCL_SOCKET_IFNAME=hpn0を設定します。
既知の問題
(なし)