Tous les produits
Search
Centre de documentation

Container Compute Service:training-nv-pytorch 25.10

Dernière mise à jour :Aug 12, 2026

Cette rubrique présente les notes de version de l'image de conteneur training-nv-pytorch 25.10.

Nouveautés

Fonctionnalités clés

  • Prise en charge multi-architecture pour amd64 et aarch64 .

  • Mise à niveau de megatron-core vers la version 0.14.0 et de transformer_engine vers la version 2.4, intégrant les dernières fonctionnalités communautaires.

  • Mise à niveau de vLLM vers la version 0.11.0, intégrant les dernières fonctionnalités communautaires.

Corrections de bugs

Aucune correction de bug dans cette version.

Contenu

Architecture Aarch64

Architecture Amd64

Cas d'utilisation

Entraînement / Inférence

Entraînement / Inférence

Framework

PyTorch

PyTorch

Prérequis

Pilote NVIDIA >= 575

Pilote NVIDIA >= 575

Composants principaux

Ubuntu : 24.04

CUDA : 12.8

Python : 3.12.7+gc

torch : 2.8.0.9+nv25.3

accelerate : 1.7.0+ali

deepspeed : 0.16.9+ali

diffusers : 0.34.0

flash_attn : 2.8.3

flash_attn_3 : 3.0.0b1

flashinfer-python : 0.2.5

gdb : 15.0.50.20240403-git

grouped_gemm : 1.1.4

megatron-core : 0.14.0

mmcv : 2.1.0

mmdet : 3.3.0

mmengine : 0.10.3

opencv-python-headless : 4.11.0.86

peft : 0.16.0

pytorch-dynamic-profiler : 0.24.11

pytorch-triton : 3.4.0

ray : 2.50.1

timm : 1.0.20

transformer_engine : 2.4.0+3cd6870c

transformers : 4.56.1+ali

ultralytics : 8.3.96

vllm : 0.11.0

Ubuntu : 24.04

CUDA : 12.8

Python : 3.12.7+gc

torch : 2.8.0.9+nv25.3

accelerate : 1.7.0+ali

deepspeed : 0.16.9+ali

diffusers : 0.34.0

flash_attn : 2.8.3

flash_attn_3 : 3.0.0b1

flashinfer-python : 0.2.5

gdb : 15.0.50.20240403-git

grouped_gemm : 1.1.4

megatron-core : 0.14.0

mmcv : 2.1.0

mmdet : 3.3.0

mmengine : 0.10.3

opencv-python-headless : 4.11.0.86

peft : 0.16.0

perf : 5.4.30

pytorch-dynamic-profiler : 0.24.11

ray : 2.50.1

timm : 1.0.20

transformer_engine : 2.4.0+3cd6870c

transformers : 4.56.1+ali

triton : 3.4.0

ultralytics : 8.3.96

vllm : 0.11.0

Ressources

25.10

  • egslingjun-registry.cn-wulanchabu.cr.aliyuncs.com/egslingjun/training-nv-pytorch:25.10-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-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.10-serverless est destinée aux produits Alibaba Cloud Container Compute Service (ACS) et Lingjun multi-locataire. Cette image n'est pas adaptée au produit Lingjun mono-locataire. Ne l'utilisez pas dans des scénarios Lingjun mono-locataire.

Prérequis relatifs aux pilotes

  • La version 25.10 repose sur CUDA 12.8.0 et nécessite un pilote NVIDIA version 575 ou ultérieure. Toutefois, si vous utilisez un GPU de centre de données (tel que T4 ou tout autre GPU de ce type), vous pouvez également employer des pilotes des séries R470 (470,57+), R525 (525,85+), R535 (535,86+) ou R545 (545,23+).

  • Les séries de pilotes R418, R440, R450, R460, R510, R520, R530, R545, R555 et R560 ne sont pas rétrocompatibles avec CUDA 12.8 et doivent être mises à niveau. Pour consulter la liste complète des pilotes pris en charge, reportez-vous à la rubrique Compatibilité des applications CUDA. Pour plus d'informations, reportez-vous à 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, l'entraînement de LLM reposant 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 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, basé 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 de benchmarks), recommande le nombre optimal de couches de recalcul d'activation. Cette approche est intégrée à PyTorch, ce qui 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.

Évaluation des performances E2E

À l'aide de l'outil de benchmarking des performances IA cloud-native CNP, nous avons réalisé une comparaison complète des performances de bout en bout entre cette image et une image de base standard, en utilisant des modèles open source et des configurations de framework courants. Nous avons également mené une étude d'ablation afin d'évaluer la contribution de chaque composant d'optimisation aux performances globales.

Comparaison d'images : image de base et évaluation itérative

image.png

Contribution des composants GPU principaux aux performances E2E

Les tests suivants, basés sur la version 25.10, ont été exécutés sur un cluster GPU multi-nœuds pour évaluer et comparer les performances d'entraînement de bout en bout. Les configurations comparées sont les suivantes :

  1. Base : une image NGC PyTorch standard.

  2. Image IA ACS : AC2 : cette image avec le BaseOS AC2, sans aucune optimisation activée.

  3. Image IA ACS : AC2+CompilerOpt : cette image avec le BaseOS AC2 et uniquement l'optimisation de compilation torch activée.

  4. Image IA ACS : AC2+CompilerOpt+CkptOpt : cette image avec le BaseOS AC2, avec les optimisations de compilation torch et de checkpointing sélectif du gradient activées.

image.png

Prise en main

L'exemple suivant illustre comment récupérer l'image training-nv-pytorch avec Docker.

Remarque

Pour utiliser l'image training-nv-pytorch dans Alibaba Cloud Container Compute Service (ACS), sélectionnez-la depuis la page Artifact Center lors de la création d'une charge de travail dans la console, 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 les optimisations

  • Activer l'optimisation du compilateur

    Utilisez l'API Trainer de transformers :

    training_args = TrainingArguments(
        bf16=True,
        gradient_checkpointing=True,
        torch_compile=True
    )
  • Activer l'optimisation du checkpointing du gradient

    export CHECKPOINT_OPTIMIZATION=true

3. Démarrer le conteneur

L'outil d'entraînement de modèles ljperf est intégré à l'image. Cette rubrique l'utilise pour décrire les étapes de démarrage d'un conteneur et d'exécution d'une tâche d'entraînement.

Exemple LLM

# Start 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. Recommandations d'utilisation

  • L'image contient des modifications personnalisées de bibliothèques telles que PyTorch et DeepSpeed. Ne réinstallez pas ces packages, car cela écraserait les optimisations.

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

  • La variable d'environnement intégrée NCCL_SOCKET_IFNAME doit être ajustée dynamiquement selon le scénario d'utilisation :

    • Lorsqu'un Pod unique demande 1, 2, 4 ou 8 GPU pour des tâches d'entraînement ou d'inférence, définissez NCCL_SOCKET_IFNAME=eth0. Il s'agit de la configuration par défaut dans cette image.

    • Lorsqu'un Pod unique demande l'ensemble des 16 GPU d'une machine pour des tâches d'entraînement ou d'inférence, définissez NCCL_SOCKET_IFNAME=hpn0 pour utiliser le réseau haute performance (HPN).