Notes de version de l'image training-nv-pytorch 25.05 : nouveautés, versions des composants, tags d'image, prérequis en matière de pilotes, fonctionnalités clés et instructions de démarrage rapide.
Nouveautés
Fonctionnalités
L'image de base CUDA passe à la version 12.9.0.
Corrections de bugs
PyTorch passe à la version 2.6.0.7.post1, corrigeant ainsi le problème de plantage du profileur signalé par la communauté open source.
Contenu de l'image
|
Scénario |
Entraînement/Inférence |
|
Framework |
PyTorch |
|
Prérequis |
Pilote NVIDIA version >= 575 |
Composants principaux :
|
Composant |
Version |
|
Ubuntu |
24.04 |
|
Python |
3.12.7+gc |
|
2.6.0.7.post1 |
|
|
12.9.0 |
|
|
2.26.5.12 |
|
|
3.2.0 |
|
|
2,1 |
|
|
0.15.4+ali |
|
|
2.7.2 |
|
|
3.0.0b1 |
|
|
4.51.2+ali |
|
|
0.9.0 |
|
|
1.1.4 |
|
|
1.6.0+ali |
|
|
0.31.0 |
|
|
0.3.9 |
|
|
0.10.3 |
|
|
2.1.0 |
|
|
3.3.0 |
|
|
4.10.0.84 |
|
|
8.2.74 |
|
|
1.0.13 |
|
|
0.8.5+cu128 |
|
|
0.2.5 |
|
|
0.24.11 |
|
|
perf |
5.4.30 |
|
gdb |
15.0.50 |
|
0.13.2 |
|
|
2.46.0 |
Tags d'image
25.05
egslingjun-registry.cn-wulanchabu.cr.aliyuncs.com/egslingjun/training-nv-pytorch:25.05-serverless
Image VPC
acs-registry-vpc.{region-id}.cr.aliyuncs.com/egslingjun/{image:tag}
Remplacez les espaces réservés par les valeurs réelles :
|
Espace réservé |
Description |
Exemple |
|
|
Région où Alibaba Cloud Container Compute Service (ACS) est activé |
|
|
|
Nom et tag de l'image |
|
L'image
training-nv-pytorch:25.05-serverlessest destinée aux services ACS et aux services multi-locataires Lingjun. Ne l'utilisez pas dans des scénarios Lingjun mono-locataire.L'image
training-nv-pytorch:25.05(sans le suffixe-serverless) convient aux scénarios Lingjun mono-locataire.
Prérequis relatifs aux pilotes
La version 25.05 repose sur CUDA 12.9.0 et nécessite un pilote NVIDIA version 575 ou supérieure.
Exception pour les GPU de centre de données : Pour les GPU tels que le T4, vous pouvez utiliser les versions de pilote 470.57 (R470+), 525,85 (R525+), 535,86 (R535+) ou 545,23 (R545+).
Pilotes nécessitant une mise à niveau : Les versions R418, R440, R450, R460, R510, R520, R530, R545, R555 et R560 ne sont pas compatibles avec CUDA 12.8 et doivent être mises à jour.
Pour consulter les informations complètes sur la compatibilité des pilotes, reportez-vous aux ressources suivantes :
La version 25.05 correspond à l'image NGC PyTorch 25.04. NGC publiant ses images en fin de mois, le développement de l'image Golden se base sur la version NGC du mois précédent.
Fonctionnalités clés
Optimisation de la compilation PyTorch
Introduite dans PyTorch 2.0, la fonction torch.compile() offre souvent des gains significatifs pour les charges de travail mono-GPU à petite échelle. Toutefois, comme l'entraînement de LLM repose sur l'optimisation de la mémoire GPU et des frameworks distribués tels que FSDP ou DeepSpeed, torch.compile() peut apporter des avantages limités, voire dégrader les performances.
Contrôlez la granularité des communications dans le framework DeepSpeed. Le compilateur capture ainsi un graphe de calcul plus complet et applique des optimisations plus étendues.
-
Utilisez une version optimisée de PyTorch :
Le frontend du compilateur PyTorch a été amélioré pour garantir la réussite de la compilation même en cas de rupture de graphe lors du calcul.
La reconnaissance de motifs et la prise en charge des formes dynamiques ont été renforcées afin d'améliorer les performances post-compilation.
Grâce à ces optimisations, l'entraînement de LLM à 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 surcharge mémoire GPU recommande le nombre optimal de couches de recalcul d'activations. Il s'appuie sur des données de performances à grande échelle, incluant divers 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 de benchmarks. Intégrée directement dans PyTorch, cette approche vous permet de bénéficier des gains de performance liés à l'optimisation de la mémoire GPU avec un effort minimal. Le framework DeepSpeed prend désormais en charge cette fonctionnalité.
ACCL
ACCL est la bibliothèque de communication haute performance d'Alibaba Cloud conçue pour Lingjun. ACCL-N en est la variante dédiée aux GPU. Dérivée de NVIDIA NCCL, cette bibliothèque de communication haute performance est entièrement compatible avec NCCL. Elle corrige certains problèmes présents dans la version upstream de NCCL tout en apportant des améliorations de performance et de stabilité.
Évaluation des performances de bout en bout
Les tests suivants utilisent l'outil d'évaluation et d'analyse des performances IA cloud-native CNP, associé à des modèles et frameworks open source courants ainsi qu'à des images de base standard, afin d'analyser les performances de bout en bout. Une étude par ablation évalue la contribution de chaque composant d'optimisation aux performances globales d'entraînement du modèle. Ces tests s'exécutent sur l'image Golden-25.05 au sein de clusters GPU multi-nœuds :
|
Configuration |
Description |
|
Base |
Image NGC PyTorch |
|
Image IA ACS : Base + ACCL |
Image IA ACS intégrant la bibliothèque de communication ACCL |
|
Image IA ACS : AC2 + ACCL |
Image Golden sur OS de base AC2, sans aucune optimisation activée |
|
Image IA ACS : AC2 + ACCL + CompilerOpt |
Image Golden sur OS de base AC2 avec optimisation |
|
Image IA ACS : AC2 + ACCL + CompilerOpt + CkptOpt |
Image Golden sur OS de base AC2 avec optimisation |

Démarrage rapide
L'exemple suivant montre comment utiliser Docker pour récupérer et exécuter l'image training-nv-pytorch.
Pour utiliser l'image training-nv-pytorch dans ACS, récupérez-la depuis la page du centre d'artefacts dans la console lors de la création de charges de travail, ou spécifiez l'image dans un fichier YAML.
1. Récupérer l'image
docker pull egslingjun-registry.cn-wulanchabu.cr.aliyuncs.com/egslingjun/training-nv-pytorch:[tag]
2. Activer les optimisations
Activer l'optimisation de compilation
Utilisez l'API Trainer de transformers :

Activer l'optimisation de la mémoire GPU pour le recalcul d'activations
export CHECKPOINT_OPTIMIZATION=true
3. Lancer un conteneur
L'image inclut ljperf, un outil intégré d'entraînement de modèles permettant de lancer des conteneurs et d'exécuter des tâches d'entraînement.
Exemple LLM :
# Launch a container and log on to the container.
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
Remarques d'utilisation
Cette version modifie les bibliothèques PyTorch et DeepSpeed. Ne les réinstallez pas.
Laissez le paramètre
zero_optimization.stage3_prefetch_bucket_sizevide ou définissez-le surautodans votre configuration DeepSpeed.
Problèmes connus
PyTorch étant passé à la version 2.6 dans cette version, le gain de performance apporté par l'optimisation mémoire de recalcul d'activations pour les modèles LLM est inférieur à celui des images précédentes. Des travaux d'optimisation sont en cours.