Cette rubrique présente les notes de version de training-nv-pytorch 26.06, notamment les nouvelles fonctionnalités, les composants principaux et les recommandations d'utilisation.
Nouvelles fonctionnalités et corrections de bugs
Nouvelles fonctionnalités
Mise à niveau de vllm vers la version 0.22.0.
Mise à niveau de transformer_engine vers la version 2.15.
Corrections de bugs
Aucune.
Contenu
Nom de l'image | training-nv-pytorch | |
Tag | 26.06-cu130-serverless | |
Cas d'utilisation | Entraînement / Inférence | |
Framework | pytorch | |
Prérequis | NVIDIA Driver release >= 580 | NVIDIA Driver release >= 580 |
Architectures prises en charge | amd64 | aarch64 |
Composants principaux |
|
|
Ressources
Image accessible via Internet
CUDA 13.0.2 (Driver ≥ 580, amd64 et aarch64)
egslingjun-registry.cn-wulanchabu.cr.aliyuncs.com/egslingjun/training-nv-pytorch:26.06-cu130-serverless
Image VPC
Toutes les images de conteneur ACS AI, existantes ou nouvelles, du dépôt egslingjun-registry.cn-wulanchabu.cr.aliyuncs.com/egslingjun prennent en charge le téléchargement via VPC interne.
Remplacez l'hôte de registre public dans l'URI de votre image par l'endpoint VPC spécifique à la région.
|
Composant de l'URI |
Réseau public |
VPC interne |
|
Hôte du registre |
|
|
|
Dépôt |
|
|
|
Image et tag |
|
|
Remplacez {region-id} par l'ID de la région où s'exécute votre service ACS. Par exemple :
|
Région |
ID de région |
|
Chine (Pékin) |
|
|
Chine (Ulanqab) |
|
Pour consulter la liste complète des régions prises en charge, reportez-vous à Régions.
Exemples de valeurs pour {image:tag} :
inference-nv-pytorch:25.10-vllm0.11.0-pytorch2.8-cu128-20251028-serverlesstraining-nv-pytorch:25.10-serverless
Cette image est disponible pour les offres ACS et Lingjun multilocataire. Ne l'utilisez pas dans des scénarios Lingjun monolocataire.
Prérequis relatifs aux pilotes
La version 26.06 prend en charge CUDA 13.0.2, ce qui nécessite un pilote NVIDIA version 580 ou ultérieure. Pour obtenir la liste complète des pilotes compatibles, consultez CUDA Application Compatibility. Pour plus d'informations, reportez-vous à CUDA Compatibility and Upgrades.
Fonctionnalités clés et améliorations
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. Cependant, l'entraînement de LLM repose sur l'optimisation de la mémoire GPU et des frameworks distribués tels que FSDP ou DeepSpeed. Par conséquent, torch.compile() peut apporter des avantages limités, voire dégrader les performances.
Contrôlez la granularité des communications dans le framework DeepSpeed. Cela permet au compilateur de capturer un graphe de calcul plus complet et d'appliquer des optimisations de compilation plus étendues.
-
Utilisez une version optimisée de PyTorch :
Le frontend du compilateur PyTorch a été amélioré afin de 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 pour améliorer les performances post-compilation.
Grâce à ces optimisations, l'entraînement de LLM à 8 milliards de paramètres obtient 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 des benchmarks. Cette approche intégrée à PyTorch 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 version dédiée aux GPU. Personnalisée à partir 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 et intègre des améliorations de performance et de stabilité.
Évaluation des performances de bout en bout
L'outil de benchmarking des performances IA cloud-native CNP a permis d'effectuer des comparaisons complètes des performances de bout en bout par rapport à une image de base standard, en utilisant des modèles open source courants et des configurations de framework usuelles. Des études d'ablation ont également évalué la contribution de chaque composant d'optimisation aux performances globales d'entraînement du modèle.
Comparaison de l'image par rapport à l'image de base et évaluation des itérations

Analyse de la contribution des composants GPU principaux aux performances E2E
Les tests suivants reposent sur cette version de l'image. Des benchmarks et des comparaisons de performances d'entraînement E2E ont été exécutés sur un cluster GPU multinœud. Les configurations suivantes ont été comparées :
Base : Image NGC PyTorch
Image ACS AI : Base+ACCL : L'image utilise la bibliothèque de communication ACCL.
Image ACS AI : AC2+ACCL : L'image de référence utilise AC2 BaseOS sans aucune optimisation activée.
Image ACS AI : AC2+ACCL+CompilerOpt : L'image de référence utilise AC2 BaseOS avec uniquement l'optimisation de compilation torch activée.
Image ACS AI : AC2+ACCL+CompilerOpt+CkptOpt : L'image de référence utilise AC2 BaseOS avec les optimisations de compilation torch et de checkpoint de gradient sélectif activées.

Prise en main
Les exemples suivants montrent comment télécharger l'image training-nv-pytorch en utilisant uniquement Docker.
Pour utiliser l'image training-nv-pytorch dans ACS, sélectionnez-la depuis la page Artifact Center lors de la création d'une charge de travail dans la console, ou référencez l'image dans un fichier YAML.
1. Sélectionner l'image
docker pull egslingjun-registry.cn-wulanchabu.cr.aliyuncs.com/egslingjun/training-nv-pytorch:[tag]
2. Activer le compilateur et l'optimisation mémoire de recalcul via l'API
-
Activer l'optimisation de la compilation
Via l'API Trainer de transformers :
training_args = TrainingArguments( bf16=True, gradient_checkpointing=True, torch_compile=True ) -
Activer l'optimisation mémoire de recalcul
export CHECKPOINT_OPTIMIZATION=true
3. Démarrer le conteneur
L'image inclut l'outil d'entraînement de modèle intégré ljperf. L'exemple suivant illustre son utilisation pour démarrer le conteneur et exécuter une tâche d'entraînement.
LLM
# Start the container and enter 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
4. Recommandations d'utilisation
Les modifications apportées à l'image affectent des bibliothèques telles que PyTorch et DeepSpeed. Ne les réinstallez pas.
Dans la configuration DeepSpeed, laissez le paramètre
zero_optimization.stage3_prefetch_bucket_sizevide ou définissez-le surauto.-
Adaptez la variable d'environnement intégrée
NCCL_SOCKET_IFNAMEà votre scénario :Si un Pod unique demande seulement 1, 2, 4 ou 8 cartes pour une tâche d'entraînement ou d'inférence, conservez
NCCL_SOCKET_IFNAME=eth0(configuration par défaut de cette image).Si un Pod unique sollicite les 16 GPU de la machine (permettant ainsi l'utilisation du réseau haute performance HPN) pour une tâche d'entraînement ou d'inférence, définissez
NCCL_SOCKET_IFNAME=hpn0.
Problèmes connus
Aucun.