Tous les produits
Search
Centre de documentation

Container Compute Service:training-nv-pytorch 25.02

Dernière mise à jour :Aug 12, 2026

Ces notes de version décrivent la version training-nv-pytorch 25.02.

Fonctionnalités principales et corrections de bugs

Fonctionnalités principales

  • L'image de base est désormais alignée sur NGC 25.01. CUDA passe à la version 12.8.0 et cuDNN à la version 9.7.0.66.

  • ACCL-N passe à la version 2.23.4.11 et prend désormais en charge ACCL-Barex.

  • Transformers passe à la version 4.48.3+ali, vLLM à la version 0.7.2 et Ray à la version 2.42.1. Cette version intègre les fonctionnalités et les corrections de bugs de ces versions sources.

Corrections de bugs

Aucune correction pour cette version.

Contenu de l'image

Cas d'utilisation

entraînement / inférence

Framework

PyTorch

Prérequis

NVIDIA Driver release >= 570

Composants clés

  • Ubuntu 24.04

  • Python 3.12.7+gc

  • Torch 2.5.1.6.post2

  • CUDA 12.8.0

  • ACCL-N 2.23.4.11

  • triton 3.1.0

  • TransformerEngine 1.13.0

  • deepspeed 0.15.4+ali

  • flash-attn 2.5.8

  • flashattn-hopper 3.0.0b1

  • transformers 4.48.3+ali

  • megatron-core 0.9.0

  • grouped_gemm 1.1.4

  • accelerate 1.1.0

  • diffusers 0.31.0

  • openmim 0.3.9

  • mmengine 0.10.3

  • mmcv 2.1.0

  • mmdet 3.3.0

  • opencv-python-headless 4.10.0.84

  • ultralytics 8.2.74

  • timm 1.0.13

  • mmdet 3.3.0

  • vllm 0.7.2

  • pytorch-dynamic-profiler 0.24.11

  • perf 5.4.30

  • gdb 15.0.50

  • peft 0.13.2

  • ray 2.42.1

Ressources d'image

Image publique

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

Image VPC

acs-registry-vpc.{region-id}.cr.aliyuncs.com/egslingjun/{image:tag}
Remplacez {region-id} par l'ID de la région où votre service Alibaba Cloud Container Compute Service (ACS) est activé (par exemple, cn-beijing ou cn-wulanchabu ).
Remplacez {image:tag} par le nom et le tag de l'image.
Remarque

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.

Remarque
  • L'image egslingjun-registry.cn-wulanchabu.cr.aliyuncs.com/egslingjun/training-nv-pytorch:25.02-serverless convient aux produits multi-locataires ACS et Lingjun. Elle n'est pas compatible avec les produits mono-locataire Lingjun.

  • L'image egslingjun-registry.cn-wulanchabu.cr.aliyuncs.com/egslingjun/training-nv-pytorch:25.02 est destinée aux scénarios mono-locataire Lingjun.

Prérequis relatifs aux pilotes

  • La version 25.02 étant alignée sur l'image NGC PyTorch 25.01, le pilote pour Golden-gpu suit les prérequis de l'image NGC correspondante. Cette version repose sur CUDA 12.8.0 et nécessite un pilote NVIDIA version 570 ou ultérieure. Toutefois, si vous utilisez un GPU de centre de données (tel qu'un T4 ou tout autre GPU de ce type), vous pouvez utiliser 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é du pilote CUDA ne prend en charge que des pilotes spécifiques. Vous devez donc mettre à niveau tout pilote R418, R440, R450, R460, R510, R520, R530, R545 ou R555, car ils ne sont pas rétrocompatibles 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 la section Compatibilité et mises à niveau CUDA.

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, 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é de la communication dans le framework DeepSpeed. Cela permet au compilateur de capturer un graphe de calcul plus complet et d'appliquer des optimisations de compilation plus larges.

  • 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 dans le graphe de calcul.

    • La correspondance 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'activation. Ce modèle s'appuie sur des données de performances à 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 benchmarks. Intégrée à 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. Cette fonctionnalité est désormais prise en charge dans le framework DeepSpeed.

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 des problèmes présents dans la version source de NCCL et inclut des améliorations de performance et de stabilité.

Évaluation des performances de bout en bout

À l'aide de CNP, outil cloud-native d'analyse et de benchmarking des performances de l'IA, nous avons réalisé une comparaison complète 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 frameworks standards. Nous avons également mené des études d'ablation afin de mesurer la contribution de chaque composant d'optimisation aux performances globales d'entraînement du modèle.

Analyse de la contribution des composants clés du GPU aux performances de bout en bout

Les tests suivants reposent sur la version 25.02 et exécutent des benchmarks et des comparaisons de performances de bout en bout sur un cluster GPU multi-nœuds. Les éléments comparés incluent :

  1. Base : image NGC PyTorch.

  2. Image IA ACS : Base+ACCL : image de base avec la bibliothèque de communication ACCL.

  3. Image IA ACS : AC2+ACCL : image de base sur AC2 BaseOS avec ACCL.

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

  5. Image IA ACS : AC2+ACCL+CompilerOpt+CkptOpt : image de base sur AC2 BaseOS avec ACCL, torch.compile() et les optimisations de checkpointing sélectif du gradient activées.

image.png

Prise en main

Les exemples suivants montrent comment récupérer l'image training-nv-pytorch à l'aide de Docker.

Remarque

Pour utiliser l'image training-nv-pytorch dans ACS, sélectionnez-la depuis la page du centre d'artefacts dans 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.

1. Récupérer l'image

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

2. Activer le compilateur et l'optimisation de la mémoire

  • Activer l'optimisation de la compilation

    Utilisez l'API Transformers Trainer :

    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

3. Lancer le conteneur

L'image inclut l'outil d'entraînement de modèles ljperf. Les étapes suivantes montrent comment démarrer un conteneur et exécuter une tâche d'entraînement.

LLM

# Launch and enter 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 

4. Remarques d'utilisation

  • Ne réinstallez pas PyTorch ou DeepSpeed. L'image contient des modifications apportées à ces bibliothèques (qui seront contribuées en amont ultérieurement).

  • Dans votre configuration DeepSpeed, laissez le paramètre zero_optimization.stage3_prefetch_bucket_size vide ou définissez-le sur auto.

Problèmes connus