Tous les produits
Search
Centre de documentation

Container Compute Service:training-nv-pytorch 26.03

Dernière mise à jour :Aug 28, 2026

La version 26.03 de l'image training-nv-pytorch met à jour torch vers la version 2.10, vllm vers la version 0.17.0, megatron-core vers la version 0.16.0, deepspeed vers la version 0.18.8 et transformer_engine vers la version 2.12. Utilisez cette image pour l'entraînement et l'inférence sur GPU dans ACS, en tirant parti des optimisations de mémoire par compilation et recomputation.

Nouveautés

Points forts

  • Mise à jour de torch vers la version 2.10.

  • Mise à jour de vllm vers la version 0.17.0.

  • Mise à jour de megatron-core vers la version 0.16.0.

  • Mise à jour de deepspeed vers la version 0.18.8.

  • Mise à jour de transformer_engine vers la version 2.12.

Corrections de bugs

Aucune.

Contenu de l'image

Le tableau suivant répertorie les attributs de chaque tag d'image.

Élément

26,03-cu130-serverless

26,03-cu128-serverless

Nom de l'image

training-nv-pytorch

training-nv-pytorch

Cas d'utilisation

Entraînement et inférence

Entraînement/Inférence

Framework

pytorch

pytorch

Prérequis

NVIDIA Driver 580 ou version ultérieure

NVIDIA Driver 575 ou version ultérieure

Architectures prises en charge

amd64 et aarch64

amd64

Composants principaux

26,03-cu130-serverless

  • Ubuntu : 24.04

  • Python : 3.12.7+gc

  • CUDA : 13,0

  • perf : 5.4.30

  • gdb : 15,1

  • torch : 2.10.0+ali.10.nv25.10

  • triton : 3.6.0

  • transformer_engine : 2.12.0+5671fd36

  • deepspeed : 0.18.8+ali

  • flash_attn : 2.8.3

  • transformers : 4.57.6+ali

  • grouped_gemm : 1.1.4

  • accelerate : 1.11.0+ali

  • diffusers : 0.34.0

  • mmengine : 0.10.3

  • mmcv : 2.1.0

  • mmdet : 3.3.0

  • opencv-python-headless : 4.11.0.86

  • ultralytics : 8.3.96

  • timm : 1.0.26

  • vllm : 0.17.0+cu130

  • flashinfer-python : 0.6.4

  • pytorch-dynamic-profiler : 0.24.11

  • peft : 0.16.0

  • ray : 2.54.1

  • megatron-core : 0.16.0

26,03-cu128-serverless

  • Ubuntu : 24,04

  • Python : 3.12.7+gc

  • CUDA : 12,8

  • perf : 5.4.30

  • gdb : 15,1

  • torch : 2.10.0+ali.10.nv25.3.pgo

  • triton : 3.6.0

  • transformer_engine : 2.12.0+5671fd36

  • deepspeed : 0.18.8+ali

  • flash_attn : 2.8.3

  • flash_attn_3 : 3.0.0b1

  • transformers : 4.57.6+ali

  • grouped_gemm : 1.1.4

  • accelerate : 1.11.0+ali

  • diffusers : 0.34.0

  • mmengine : 0.10.3

  • mmcv : 2.1.0

  • mmdet : 3.3.0

  • opencv-python-headless : 4.11.0.86

  • ultralytics : 8.3.96

  • timm : 1.0.26

  • vllm : 0.17.0+cu128

  • flashinfer-python : 0.6.4

  • pytorch-dynamic-profiler : 0.24.11

  • peft : 0.16.0

  • ray : 2.54.1

  • megatron-core : 0.16.0

Ressources

Important

Cette image est compatible avec ACS et les environnements Lingjun multi-locataires, mais pas avec les environnements Lingjun mono-locataires.

Images publiques

CUDA 13.0.2 (NVIDIA Driver 580 ou version ultérieure, amd64 et aarch64)

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

CUDA 12.8 (NVIDIA Driver 575 ou version ultérieure, amd64)

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

Images VPC

Remplacez l'URI de ressource d'image de conteneur IA egslingjun-registry.cn-wulanchabu.cr.aliyuncs.com/egslingjun/{image:tag} spécifié dans le fichier YAML de la console ACS par acs-registry-vpc.{region-id}.cr.aliyuncs.com/egslingjun/{image:tag} afin de télécharger rapidement les images de conteneur IA PG1 via le VPC.

  • {region-id} correspond à la région disponible dans laquelle votre service ACS est activé, par exemple cn-beijing et cn-wulanchabu.

  • {image:tag} représente le nom et le tag de l'image.

Prérequis relatifs au pilote

La version 26.03 prend en charge deux versions de CUDA, chacune ayant sa propre version minimale de pilote :

  • CUDA 13.0.2 nécessite NVIDIA Driver 580 ou une version ultérieure.

  • CUDA 12.8.0 nécessite NVIDIA Driver 575 ou une version ultérieure.

Consultez la page Compatibilité des applications CUDA pour obtenir la liste complète des pilotes pris en charge, ainsi que la page Compatibilité et mises à niveau CUDA pour des conseils sur la mise à niveau.

Démarrage rapide

Les étapes suivantes utilisent Docker pour télécharger l'image et exécuter une démonstration d'entraînement sur un hôte local. Exécutez les commandes docker dans le shell de l'hôte et les commandes d'entraînement dans le shell du conteneur.

Remarque

Pour utiliser cette image dans ACS, sélectionnez-la dans Artifact Center lors de la création d'une charge de travail dans la console, ou spécifiez la référence de l'image dans un fichier YAML.

Étape 1 : Télécharger l'image

Exécutez la commande suivante dans le shell de l'hôte :

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

Remplacez [tag] par le tag correspondant à votre version de NVIDIA Driver et à l'architecture de votre processeur, soit 26.03-cu130-serverless soit 26.03-cu128-serverless. Pour connaître la version du pilote et les architectures prises en charge par chaque tag, consultez la section Contenu de l'image.

Étape 2 : Démarrer le conteneur

Exécutez la commande suivante dans le shell de l'hôte. Cette commande démarre le conteneur et ouvre un shell de conteneur, dans lequel vous effectuerez les étapes restantes.

# Start the container and open a shell
docker run --rm -it --ipc=host --net=host  --privileged egslingjun-registry.cn-wulanchabu.cr.aliyuncs.com/egslingjun/training-nv-pytorch:[tag]

Étape 3 : Activer les optimisations

Activez les deux optimisations avant le début de l'entraînement. Définissez l'optimisation de compilation dans votre script d'entraînement et l'optimisation de mémoire par recomputation dans le shell du conteneur ouvert à l'étape 2.

Activer l'optimisation de compilation

Dans votre script d'entraînement, définissez les arguments suivants via l'API Trainer de transformers :

training_args = TrainingArguments(
    bf16=True,
    gradient_checkpointing=True,
    torch_compile=True
)

Activer l'optimisation de mémoire par recomputation

Dans le shell du conteneur, définissez la variable d'environnement suivante :

export CHECKPOINT_OPTIMIZATION=true

Étape 4 : Exécuter la démonstration d'entraînement

L'image inclut ljperf, un outil intégré d'entraînement de modèles. Exécutez la démonstration dans le shell du conteneur.

Pour les LLM

# Run the training demo
ljperf benchmark --model deepspeed/llama3-8b

Recommandations d'utilisation

  • Cette image contient des bibliothèques modifiées, telles que PyTorch et DeepSpeed. Ne les réinstallez pas.

  • Dans la configuration DeepSpeed, laissez zero_optimization.stage3_prefetch_bucket_size vide ou définissez-le sur auto.

Fonctionnalités clés et améliorations

Optimisation de la compilation PyTorch

torch.compile(), introduit dans PyTorch 2.0, offre souvent des gains significatifs pour les charges de travail à petite échelle sur un seul GPU. Toutefois, l'entraînement des LLM repose sur l'optimisation de la mémoire GPU et sur des frameworks distribués tels que FSDP ou DeepSpeed ; par conséquent, torch.compile() peut offrir des avantages limités, voire dégrader les performances.

  • Contrôle de la granularité de la communication dans le framework DeepSpeed. Cela aide le compilateur à capturer un graphe de calcul plus complet et à appliquer des optimisations de compilation plus larges.

  • Utilisation d'une build PyTorch optimisée :

    • Le frontend du compilateur PyTorch a été amélioré pour garantir que la compilation réussisse même si une rupture de graphe se produit dans le graphe de calcul.

    • La correspondance de motifs et la prise en charge des formes dynamiques ont été renforcées pour améliorer les performances après compilation.

Grâce à ces optimisations, l'entraînement des LLM de 8 milliards de paramètres atteint généralement un gain de débit de bout en bout d'environ 20 %.

Optimisation de la mémoire GPU pour la recomputation

Un modèle prédictif de la surcharge de mémoire GPU, construit à partir de données de performance à grande échelle (incluant différents modèles, clusters et paramètres d'entraînement, ainsi que des métriques système telles que l'utilisation de la mémoire GPU collectées lors des tests de référence), recommande le nombre optimal de couches de recomputation d'activations. Cette approche est intégrée à PyTorch, vous permettant d'obtenir les gains de performance liés à l'optimisation de la mémoire GPU avec un effort minimal. Cette fonctionnalité est désormais prise en charge dans le framework DeepSpeed.

Évaluation des performances de bout en bout

Cette image a été évaluée par rapport à l'image de base standard à l'aide de CNP, un outil d'évaluation et d'analyse des performances de l'IA cloud-native, en utilisant des modèles open source mainstream et des configurations de framework. Des expériences d'ablation montrent la contribution de chaque composant d'optimisation aux performances globales de l'entraînement du modèle.

Comparaison des images par rapport à l'image de base et évaluation itération par itération

Image comparison against the base image and iteration-over-iteration evaluation

Analyse de la contribution des performances de bout en bout des composants GPU principaux

Les configurations suivantes de cette version ont été comparées en termes de performances d'entraînement de bout en bout sur un cluster GPU multi-nœuds :

  1. Base : L'image officielle NGC PyTorch.

  2. ACS AI Image (Base + ACCL) : L'image de base avec la bibliothèque de communication ACCL.

  3. ACS AI Image (AC2 + ACCL) : L'image sur AC2 BaseOS avec ACCL, mais sans autres optimisations.

  4. ACS AI Image (AC2 + ACCL + CompilerOpt) : L'image sur AC2 BaseOS avec ACCL et seule l'optimisation torch.compile activée.torch.compile optimisation activée.

  5. ACS AI Image (AC2 + ACCL + CompilerOpt + CkptOpt) : L'image sur AC2 BaseOS avec ACCL, torch.compile et le checkpointing sélectif des gradients activé.

E2E performance contribution analysis of core GPU components

Problèmes connus

Aucun.