このトピックでは、training-nv-pytorch 25.10 のリリースノートについて説明します。
主な機能とバグ修正
主な機能
amd64 および aarch64 のマルチアーキテクチャサポートを提供します。
コミュニティの機能を組み込むために、megatron-core を 0.14.0 に、transformer_engine を 2.4 にアップグレードします。
コミュニティの機能を組み込むために、vLLM を 0.11.0 にアップグレードします。
バグ修正
なし
内容
aarch64 アーキテクチャ | amd64 アーキテクチャ | |
アプリケーションシナリオ | トレーニング/推論 | トレーニング/推論 |
フレームワーク | PyTorch | PyTorch |
要件 | NVIDIA ドライバーリリース >= 575 | NVIDIA ドライバーリリース >= 575 |
コアコンポーネント | Ubuntu : 24.04 CUDA : 12.8 Python : 3.12.7+gc torch : 2.8.0.9+nv25.3 accelerate : 1.7.0+ali deepspeed : 0.16.9+ali diffusers : 0.34.0 flash_attn : 2.8.3 flash_attn_3 : 3.0.0b1 flashinfer-python : 0.2.5 gdb : 15.0.50.20240403-git grouped_gemm : 1.1.4 megatron-core : 0.14.0 mmcv : 2.1.0 mmdet : 3.3.0 mmengine : 0.10.3 opencv-python-headless : 4.11.0.86 peft : 0.16.0 pytorch-dynamic-profiler : 0.24.11 pytorch-triton : 3.4.0 ray : 2.50.1 timm : 1.0.20 transformer_engine : 2.4.0+3cd6870c transformers : 4.56.1+ali ultralytics : 8.3.96 vllm : 0.11.0 | Ubuntu : 24.04 CUDA : 12.8 Python : 3.12.7+gc torch : 2.8.0.9+nv25.3 accelerate : 1.7.0+ali deepspeed : 0.16.9+ali diffusers : 0.34.0 flash_attn : 2.8.3 flash_attn_3 : 3.0.0b1 flashinfer-python : 0.2.5 gdb : 15.0.50.20240403-git grouped_gemm : 1.1.4 megatron-core : 0.14.0 mmcv : 2.1.0 mmdet : 3.3.0 mmengine : 0.10.3 opencv-python-headless : 4.11.0.86 peft : 0.16.0 perf : 5.4.30 pytorch-dynamic-profiler : 0.24.11 ray : 2.50.1 timm : 1.0.20 transformer_engine : 2.4.0+3cd6870c transformers : 4.56.1+ali triton : 3.4.0 ultralytics : 8.3.96 vllm : 0.11.0 |
アセット
25.10
egslingjun-registry.cn-wulanchabu.cr.aliyuncs.com/egslingjun/training-nv-pytorch:25.10-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.10-serverless は、ACS および Lingjun のマルチテナントプロダクトに適しています。このイメージは、Lingjun のシングルテナントプロダクトには適していません。Lingjun のシングルテナントシナリオでは使用しないでください。
ドライバー要件
25.10 リリースは 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 フレームワークで使用できます。
E2E パフォーマンス効果の評価
クラウドネイティブ AI パフォーマンス評価・分析ツール CNP を使用して、主要なオープンソースモデルとフレームワーク構成について、標準のベースイメージとの包括的なエンドツーエンドのパフォーマンステストを実施しました。また、各最適化コンポーネントがモデル全体のトレーニングパフォーマンスにどの程度貢献しているかを評価するために、アブレーション実験も行いました。
イメージ比較:ベースイメージと反復評価

コア GPU コンポーネントの E2E パフォーマンス貢献度分析
以下のテストはバージョン 25.10 に基づいており、マルチノード GPU クラスター上でエンドツーエンド (E2E) のトレーニングパフォーマンス評価と比較のために実施されました。以下の項目が比較されました:
Base: NGC PyTorch Image。
ACS AI Image: AC2: ゴールデンイメージは AC2 BaseOS を使用し、最適化は有効になっていません。
ACS AI Image: AC2+CompilerOpt: ゴールデンイメージは AC2 BaseOS を使用し、torch コンパイル最適化のみが有効になっています。
ACS AI Image: AC2+CompilerOpt+CkptOpt: ゴールデンイメージは AC2 BaseOS を使用し、torch コンパイル最適化と選択的勾配チェックポイント最適化の両方が有効になっています。

クイックスタート
以下の例では、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 を呼び出してコンパイラと再計算による GPU メモリ最適化を有効化
コンパイル最適化の有効化
transformers の Trainer API を使用します:

再計算による GPU メモリ最適化の有効化
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 個の GPU のみをリクエストする場合、
NCCL_SOCKET_IFNAME=eth0を設定します。これは、このイメージのデフォルト設定です。単一の Pod がノード上の全 16 個の GPU をトレーニングまたは推論タスクのためにリクエストする場合、
NCCL_SOCKET_IFNAME=hpn0を設定する必要があります。この設定により、HPN パフォーマンス専有型ネットワークを使用できます。