Ce document détaille les principales fonctionnalités, les corrections de bogues et les mises à jour des composants de l'image training-nv-pytorch 25.03.
Fonctionnalités principales et corrections de bogues
Fonctionnalités principales
L'image de base est mise à jour pour s'aligner sur NGC 25.02.
PyTorch et ses composants associés passent en version 2.6.0.7, TransformerEngine (TE) en 2,1 et accelerate en 1.5.2.
ACCL-N passe en version 2.23.4.12.
vLLM passe en version 0.8.2.dev0 et Ray en 2.44, avec la prise en charge de flash-infer 0.2.3. Transformers passe en version 4.49.0+ali et flash_attn en 2.7.2.
Corrections de bogues
La mise à niveau vers vLLM 0.8.2.dev0 corrige le problème d'accès mémoire illégal pour Mixture of Experts (MoE) sur H20 (#13693).
Contenu
|
Cas d'utilisation |
Entraînement/inférence |
|
Framework |
pytorch |
|
Prérequis |
Pilote NVIDIA version >= 570 |
|
Composants principaux |
|
Ressources
Image publique
egslingjun-registry.cn-wulanchabu.cr.aliyuncs.com/egslingjun/training-nv-pytorch:25.03-serverless
Image VPC
acs-registry-vpc.{region-id}.cr.aliyuncs.com/egslingjun/{image:tag}
Remplacez{region-id}par la région où votre service Alibaba Cloud Container Compute Service (ACS) est activé (par exemple,cn-beijingoucn-wulanchabu).
Remplacez {image:tag} par le nom et le tag de l'image.
Les images inference-nv-pytorch:25.03-vllm0.8.2-pytorch2.6-cu124-20250328-serverless et inference-nv-pytorch:25.03-sglang0.4.4.post1-pytorch2.5-cu124-20250327-serverless sont compatibles uniquement avec les déploiements multi-locataires ACS et Lingjun. Elles ne sont pas compatibles avec les déploiements mono-locataire Lingjun.
Utilisez l'image
egslingjun-registry.cn-wulanchabu.cr.aliyuncs.com/egslingjun/training-nv-pytorch:25.03-serverlesspour les environnements multi-locataires Alibaba Cloud Container Compute Service (ACS) et Lingjun. Cette image n'est pas compatible avec les formats de produit mono-locataire Lingjun.Pour les scénarios mono-locataire Lingjun, utilisez l'image
egslingjun-registry.cn-wulanchabu.cr.aliyuncs.com/egslingjun/training-nv-pytorch:25.03.
Prérequis relatifs aux pilotes
Cette version s'aligne sur l'image NGC PyTorch 25.02 et partage donc les mêmes prérequis en matière de pilote GPU. Elle repose sur CUDA 12.8.0.38 et nécessite un pilote NVIDIA version 570 ou ultérieure. Toutefois, si vous utilisez un GPU de centre de données (tel que T4), vous pouvez employer le pilote NVIDIA version 470.57 (ou une version R470 ultérieure), 525.85 (ou une version R525 ultérieure), 535.86 (ou une version R535 ultérieure), ou 545.23 (ou une version R545 ultérieure).
Le package de compatibilité ascendante du pilote CUDA ne prend en charge que certains pilotes spécifiques. Vous devez impérativement mettre à niveau tout pilote R418, R440, R450, R460, R510, R520, R530, R545 ou R555, car ils ne sont pas compatibles avec CUDA 12.8. Pour consulter la liste complète des pilotes pris en charge, reportez-vous à la section Compatibilité des applications CUDA. Pour plus d'informations, consultez également Compatibilité et mises à niveau CUDA.
Fonctionnalités clés et améliorations
Optimisation du compilateur PyTorch
Bien que la fonctionnalité torch.compile() introduite dans PyTorch 2.0 offre des gains significatifs pour les charges de travail sur GPU unique, ces avantages diminuent lors de l'entraînement de grands modèles de langage (LLM) en raison des exigences d'optimisation de la mémoire GPU et des frameworks d'entraînement distribué tels que FSDP et DeepSpeed. Cette version relève ces défis en :
Contrôlant la granularité des communications au sein du framework DeepSpeed, ce qui permet au compilateur d'obtenir un graphe de calcul plus complet et d'appliquer des optimisations plus larges.
-
Intégrant une version optimisée de PyTorch qui :
Améliore le frontend du compilateur PyTorch afin de garantir une compilation réussie même en présence de ruptures de graphe.
Renforce les capacités de correspondance de motifs et de gestion des formes dynamiques pour accroître les performances du code compilé.
Conjointement, ces optimisations augmentent le débit E2E d'environ 20 % pour l'entraînement de LLM de 8B.
Optimisation de la mémoire GPU pour le recalcul
Nous avons développé un modèle prédictif de consommation de mémoire GPU fondé sur de vastes données de performance issues de divers modèles, clusters et configurations d'entraînement. Ce modèle recommande le nombre optimal de couches de recalcul d'activation. Intégrée directement à PyTorch, cette fonctionnalité vous permet de tirer facilement parti des avantages de performance liés à l'optimisation de la mémoire GPU. Elle est actuellement adaptée au framework DeepSpeed.
Bibliothèque de communication ACCL
ACCL est une bibliothèque de communication réseau haute performance développée par Alibaba Cloud pour les produits Lingjun. La variante ACCL-N est conçue spécifiquement pour les charges de travail GPU. Personnalisée à partir de NVIDIA NCCL, ACCL-N est entièrement compatible avec la bibliothèque d'origine tout en intégrant des corrections de bogues, des optimisations de performance et des améliorations de stabilité.
Évaluation des gains de performance E2E
À l'aide de l'outil d'évaluation des performances IA cloud-native CNP, nous avons mené une comparaison complète des performances E2E entre cette image et une image de base standard, en utilisant des modèles open source courants et des configurations de framework standards. Nous avons également réalisé une étude d'ablation afin d'évaluer la contribution spécifique de chaque composant optimisé aux performances globales.
Contribution des composants principaux GPU à la performance E2E
Les tests suivants, basés sur la version 25.03, ont été effectués sur un cluster GPU multi-nœuds afin d'évaluer et de comparer les performances E2E. Les éléments comparés incluent :
Base : Image NGC PyTorch
Image IA ACS : Base+ACCL : L'image de base utilisant la bibliothèque de communication ACCL.
Image IA ACS : AC2+ACCL : Cette image utilisant AC2 BaseOS sans aucune optimisation activée.
Image IA ACS : AC2+ACCL+CompilerOpt : Cette image utilisant AC2 BaseOS avec uniquement l'optimisation
torch.compileactivée.Image IA ACS : AC2+ACCL+CompilerOpt+CkptOpt : Cette image utilisant AC2 BaseOS avec les optimisations
torch.compileet checkpointing sélectif du gradient activées.

Prise en main
Cet exemple illustre comment récupérer l'image à l'aide de Docker.
Pour utiliser cette image dans Alibaba Cloud Container Compute Service (ACS), sélectionnez-la depuis le centre d'artefacts de la console lors de la création d'une charge de travail, ou spécifiez la référence de l'image dans un fichier YAML.
Étape 1 : Récupérer l'image
docker pull egslingjun-registry.cn-wulanchabu.cr.aliyuncs.com/egslingjun/training-nv-pytorch:[tag]
Étape 2 : Activer le compilateur et les optimisations de mémoire pour le recalcul
-
Activer l'optimisation du compilateur
Lorsque vous utilisez l'API Transformers Trainer, définissez
torch_compile=True:training_args = TrainingArguments( bf16=True, gradient_checkpointing=True, torch_compile=True ) -
Activer l'optimisation de la mémoire GPU pour le recalcul
export CHECKPOINT_OPTIMIZATION=true
Étape 3 : Lancer le conteneur
L'image inclut l'outil d'entraînement de modèles ljperf. Suivez les étapes ci-dessous pour lancer le conteneur et exécuter une tâche d'entraînement.
Exemple LLM
# Launch the container and enter the shell
docker run --rm -it --ipc=host --net=host --privileged egslingjun-registry.cn-wulanchabu.cr.aliyuncs.com/egslingjun/training-nv-pytorch:[tag]
# Run a training demo
ljperf --action train --model_name deepspeed/llama3-8b
Étape 4 : Remarques d'utilisation
L'image contient des versions modifiées de bibliothèques telles que PyTorch et DeepSpeed. Ne les réinstallez pas, car cela écraserait les optimisations incluses. Ces modifications seront intégrées en amont ultérieurement.
Dans la configuration DeepSpeed, laissez le paramètre zero_optimization.stage3_prefetch_bucket_size vide ou définissez-le sur auto.
Problèmes connus
Aucun pour le moment.