La version 26.01 met à niveau les composants intégrés d'entraînement et d'inférence de l'image training-nv-pytorch. Consultez ces notes de version pour vérifier le tag de l'image, les versions des composants et la version minimale du pilote NVIDIA avant d'exécuter une tâche d'entraînement ou d'inférence dans ACS.
Nouveautés
Mises à niveau des composants
Le composant d'entraînement intégré
megatron-corepasse à la version 0.15.0.Le composant d'inférence intégré
vLLMpasse à la version 0.13.0.Le composant intégré
flashinfer-pythonpasse à la version 0.5.3.Le composant intégré
health_checkest mis à niveau pour être compatible avec shuttle 1.5.3.
Problèmes résolus
Cette version ne corrige aucun problème.
Contenu de l'image
Le tableau suivant répertorie les scénarios, le framework, les exigences de pilote et la prise en charge des architectures pour chaque tag training-nv-pytorch 26,01.
|
Élément |
26,01-cu130-serverless |
26,01-cu128-serverless |
|
Nom de l'image |
training-nv-pytorch |
training-nv-pytorch |
|
Scénarios courants |
Entraînement et inférence |
Entraînement/Inférence |
|
Framework |
pytorch |
pytorch |
|
Exigences |
Version du pilote NVIDIA >= 580 |
Version du pilote NVIDIA >= 575 |
|
Architectures prises en charge |
amd64 et aarch64 |
amd64 |
Composants principaux
26,01-cu130-serverless
Ubuntu : 24,04
Python : 3.12.7+gc
CUDA : 13,0
perf : 5.4.30
gdb : 15.0.50.20240403-git
torch : 2.9.0+ali.10.nv25.10
triton : 3.5.0
transformer_engine : 2.10.0+769ed778
deepspeed : 0.18.1+ali
flash_attn : 2.8.3
transformers : 4.57.1+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.24
vllm : 0.13.0+cu130
flashinfer-python : 0.5.3
pytorch-dynamic-profiler : 0.24.11
peft : 0.16.0
ray : 2.53.0
megatron-core : 0.15.0
26,01-cu128-serverless
Ubuntu : 24,04
Python : 3.12.7+gc
CUDA : 12,8
perf : 5.4.30
gdb : 15.0.50.20240403-git
torch : 2.9.0+ali.10.nv25.3
triton : 3.5.0
transformer_engine : 2.10.0+769ed778
deepspeed : 0.18.1+ali
flash_attn : 2.8.3
flash_attn_3 : 3.0.0b1
transformers : 4.57.1+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.24
vllm : 0.13.0+cu128
flashinfer-python : 0.5.3
pytorch-dynamic-profiler : 0.24.11
peft : 0.16.0
ray : 2.53.0
megatron-core : 0.15.0
Ressources
Tirez l'image training-nv-pytorch 26,01 depuis l'une des adresses suivantes. Pour connaître la version minimale du pilote NVIDIA requise par chaque version CUDA, consultez la section Exigences en matière de pilote.
Image publique
CUDA 13.0.2 (pilote >= 580, amd64 et aarch64)
egslingjun-registry.cn-wulanchabu.cr.aliyuncs.com/egslingjun/training-nv-pytorch:26.01-cu130-serverless
CUDA 12.8 (pilote >= 575, amd64)
egslingjun-registry.cn-wulanchabu.cr.aliyuncs.com/egslingjun/training-nv-pytorch:26.01-cu128-serverless
Image VPC
Pour tirer rapidement les images de conteneur ACS AI au sein d'un Virtual Private Cloud (VPC), remplacez l'URI de ressource egslingjun-registry.cn-wulanchabu.cr.aliyuncs.com/egslingjun/{image:tag} de l'image de conteneur AI spécifiée par acs-registry-vpc.{region-id}.cr.aliyuncs.com/egslingjun/{image:tag}.
{region-id}: ID d'une région ACS. Par exemple,cn-beijingoucn-wulanchabu. Pour plus d'informations, consultez la rubrique Régions.{image:tag}: nom et tag de l'image de conteneur AI. Par exemple,inference-nv-pytorch:25.10-vllm0.11.0-pytorch2.8-cu128-20251028-serverlessoutraining-nv-pytorch:25.10-serverless.
Cette image s'applique à ACS et à Lingjun multi-locataire. Elle ne s'applique pas à Lingjun mono-locataire. Ne l'utilisez pas dans des scénarios Lingjun mono-locataire.
Exigences en matière de pilote
La version training-nv-pytorch 26,01 prend en charge CUDA 12.8.0 et CUDA 13.0.2 avec différentes versions de pilote :
CUDA 13.0.2 nécessite le pilote NVIDIA version 580 ou ultérieure.
-
CUDA 12.8.0 nécessite le pilote NVIDIA version 575 ou ultérieure.
Pour obtenir la liste complète des pilotes pris en charge, consultez Compatibilité des applications CUDA. Pour plus d'informations, consultez Compatibilité et mises à niveau CUDA.
Capacités d'optimisation intégrées
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ôlez 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.
-
Utilisez une build PyTorch optimisée :
Le frontend du compilateur PyTorch est 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 sont 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 le recalcul
Un modèle prédictif de la consommation de mémoire GPU recommande le nombre optimal de couches de recalcul d'activation. Ce modèle s'appuie sur des données de performance à grande échelle, incluant différents modèles, clusters et paramètres d'entraînement, ainsi que sur des métriques système telles que l'utilisation de la mémoire GPU collectées lors des tests de référence. Cette approche est intégrée à PyTorch, ce qui vous permet d'obtenir les gains de performance liés à l'optimisation de la mémoire GPU avec un effort minimal. Cette fonctionnalité est prise en charge dans le framework DeepSpeed.
Évaluation des performances de bout en bout
L'évaluation utilise CNP, un outil d'analyse des performances d'IA cloud-native, pour effectuer une comparaison complète de l'image par rapport à une image de base standard sur des modèles open source mainstream et des configurations de framework. Une étude d'ablation évalue également la contribution de chaque composant d'optimisation aux performances globales de l'entraînement du modèle.
Comparaison de l'image par rapport à l'image de base et évaluation itérative

Analyse de la contribution des performances de bout en bout des composants GPU principaux
Ces tests sont exécutés sur la version 26.01 et comparent les performances d'entraînement de bout en bout sur un cluster GPU multi-nœuds. Les configurations suivantes sont comparées :
Base : l'image NGC PyTorch.
ACS AI Image: Base + ACCL : l'image ACS AI utilise Alibaba Cloud Communication Library (ACCL).
ACS AI Image: AC2 + ACCL : l'image gold ACS AI utilise AC2 BaseOS, sans aucune optimisation activée.
ACS AI Image: AC2 + ACCL + CompilerOpt : l'image ACS AI utilise AC2 BaseOS, avec uniquement l'optimisation torch compile activée.
-
ACS AI Image: AC2 + ACCL + CompilerOpt + CkptOpt : l'image ACS AI utilise AC2 BaseOS, avec les optimisations torch compile et selective gradient checkpoint activées.

Démarrage rapide
Tirez l'image training-nv-pytorch, activez les optimisations du compilateur et du point de contrôle des gradients, démarrez un conteneur pour exécuter une tâche d'entraînement, puis consultez les recommandations d'utilisation. L'exemple suivant utilise uniquement Docker.
Pour utiliser l'image training-nv-pytorch dans ACS, sélectionnez l'image sur la page Artifacts lors de la création d'une charge de travail dans la console, ou référencez l'image dans un fichier YAML.
1. Tirez l'image
Sélectionnez le tag dont les exigences de pilote NVIDIA et les architectures prises en charge correspondent à vos nœuds, puis remplacez [tag] dans la commande suivante par ce tag. Pour connaître les exigences de chaque tag, consultez la section Contenu de l'image.
docker pull egslingjun-registry.cn-wulanchabu.cr.aliyuncs.com/egslingjun/training-nv-pytorch:[tag]
2. Activez les optimisations du compilateur et du point de contrôle des gradients
Activer l'optimisation de la compilation
Utilisez l'API Trainer de transformers :
training_args = TrainingArguments(
bf16=True,
gradient_checkpointing=True,
torch_compile=True
)
Activer l'optimisation du point de contrôle des gradients
Définissez la variable d'environnement suivante :
export CHECKPOINT_OPTIMIZATION=true
3. Démarrez le conteneur
L'image inclut l'outil d'entraînement de modèle intégré ljperf, utilisé dans les étapes suivantes pour démarrer un conteneur et exécuter une tâche d'entraînement.
Pour les LLM
# Start the container and log on to it
docker run --rm -it --ipc=host --net=host --privileged egslingjun-registry.cn-wulanchabu.cr.aliyuncs.com/egslingjun/training-nv-pytorch:[tag]
# Run the training demo
ljperf benchmark --model deepspeed/llama3-8b
Recommandations d'utilisation
Ne réinstallez pas les bibliothèques modifiées par l'image, telles que PyTorch et DeepSpeed.
Laissez
zero_optimization.stage3_prefetch_bucket_sizevide ou définissez-le surautodans la configuration DeepSpeed.-
Ajustez la variable d'environnement intégrée
NCCL_SOCKET_IFNAMEde cette image en fonction de votre scénario :Lorsqu'un seul pod demande uniquement 1, 2, 4 ou 8 GPU pour une tâche d'entraînement ou d'inférence, définissez NCCL_SOCKET_IFNAME=eth0 (la configuration par défaut de cette image).
When a single pod requests only 1, 2, 4, or 8 GPUs for a training or inference job, set NCCL_SOCKET_IFNAME=eth0 (the default configuration in this image).(l'une des configurations par défaut de cette image).Lorsqu'un seul pod demande les 16 GPU d'une machine pour une tâche d'entraînement ou d'inférence, et que vous pouvez utiliser le réseau haute performance (HPN), définissez
NCCL_SOCKET_IFNAME=hpn0.
Problèmes connus
Cette version ne présente aucun problème connu.