すべてのプロダクト
Search
ドキュメントセンター

Container Compute Service:training-nv-pytorch 25.02 リリースノート

最終更新日:Apr 29, 2025

このトピックでは、training-nv-pytorch 25.02 のリリースノートについて説明します。

主な機能とバグ修正リスト

主な機能

  • ベースイメージが NGC 25.01 をサポートするように更新され、CUDA が 12.8.0 に、cuDNN が 9.7.0.66 に更新されました。

  • ACCL-N が 2.23.4.11 に更新され、ACCL-Barex をサポートするようになりました。

  • Transformers が 4.48.3+ali に、vLLM が 0.7.2 に、Ray が 2.42.1 に更新され、新機能のサポートとバグの修正が行われました。

バグ修正

なし

内容

ユースケース

トレーニング/推論

フレームワーク

pytorch

要件

NVIDIA ドライバー リリース>= 570

主要コンポーネント

  • Ubuntu 24.04

  • Python 3.12.7+gc

  • Torch 2.5.1.6.post2

  • CUDA 12.8.0

  • ACCL-N 2.23.4.11

  • triton 3.1.0

  • TransformerEngine 1.13.0

  • deepspeed 0.15.4+ali

  • flash-attn 2.5.8

  • flashattn-hopper 3.0.0b1

  • transformers 4.48.3+ali

  • megatron-core 0.9.0

  • grouped_gemm 1.1.4

  • accelerate 1.1.0

  • diffusers 0.31.0

  • openmim 0.3.9

  • mmengine 0.10.3

  • mmcv 2.1.0

  • mmdet 3.3.0

  • opencv-python-headless 4.10.0.84

  • ultralytics 8.2.74

  • timm 1.0.13

  • mmdet 3.3.0

  • vllm 0.7.2

  • pytorch-dynamic-profiler 0.24.11

  • perf 5.4.30

  • gdb 15.0.50

  • peft 0.13.2

  • ray 2.42.1

アセット

パブリックイメージ

  • egslingjun-registry.cn-wulanchabu.cr.aliyuncs.com/egslingjun/training-nv-pytorch:25.02-serverless

VPC イメージ

  • acs-registry-vpc.{region-id}.cr.aliyuncs.com/egslingjun/{image:tag}

    {region-id} は、ACS がアクティブ化されているリージョン (cn-beijing など) を示します。
    {image:tag} は、イメージの名前とタグを示します。
重要

現在、VPC 経由でプルできるイメージは、中国 (北京) リージョンのイメージのみです。

説明
  • egslingjun-registry.cn-wulanchabu.cr.aliyuncs.com/egslingjun/training-nv-pytorch:25.02-serverless イメージは、ACS プロダクトと Lingjun マルチテナントプロダクトに適しています。Lingjun シングルテナントプロダクトには適していません。

  • egslingjun-registry.cn-wulanchabu.cr.aliyuncs.com/egslingjun/training-nv-pytorch:25.02 イメージは、Lingjun シングルテナントシナリオに適しています。

ドライバー要件

  • 25.02 リリースは、NGC Pytorch 25.01 イメージの更新に基づいています。そのため、Golden-gpu ドライバーは NGC イメージバージョンの要件を満たしています。このリリースは CUDA 12.8.0 に基づいており、NVIDIA ドライバー 570 以降が必要です。データセンターで使用されている GPU (T4 など) で実行する場合は、NVIDIA ドライバー 470.57 (または R470)、525.85 (または R525)、535.86 (または R535)、または 545.23 (または R545) を選択できます。

  • CUDA ドライバーは特定のドライバーとのみ互換性があります。そのため、R418、R440、R450、R460、R510、R520、R530、R545、および R555 バージョンを更新する必要があります。これらのドライバーは 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.02 に基づいています。マルチノード GPU アクセラレーションクラスターの E2E パフォーマンス評価と比較が行われます。

  1. ベース: NGC PyTorch イメージ。

  2. ACS AI イメージ: ベース+ACCL: イメージで使用される ACCL。

  3. ACS AI イメージ: AC2+ACCL: Golden イメージは AC2 BaseOS を使用し、最適化は行われません。

  4. ACS AI イメージ: AC2+ACCL+CompilerOpt: Golden イメージは AC2 BaseOS を使用し、PyTorch コンパイル最適化のみが有効になっています。

  5. ACS AI イメージ: AC2+ACCL+CompilerOpt+CkptOpt: Golden イメージは AC2 BaseOS を使用し、PyTorch コンパイル最適化と選択的勾配チェックポイント最適化が有効になっています。

image.png

クイックスタート

次の例では、Docker のみを使用して training-nv-pytorch イメージをプルします。

説明

ACS で training-nv-pytorch イメージを使用するには、ワークロードを作成するコンソールのアーティファクトセンターページからプルするか、YAML ファイルでイメージを指定する必要があります。

1. イメージを選択する

docker pull egslingjun-registry.cn-wulanchabu.cr.aliyuncs.com/egslingjun/training-nv-pytorch:[tag]

2. API を呼び出して、コンパイルの最適化と再計算のための GPU メモリの最適化を有効にする

  • コンパイルの最適化を有効にする

    transformers Trainer API を使用する:

    image.png

  • 再計算のための 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 に設定します。

既知の問題