Tous les produits
Search
Centre de documentation

Container Compute Service:training-nv-pytorch 25.07

Dernière mise à jour :Aug 12, 2026

Ce document présente les notes de version de training-nv-pytorch 25.07.

Fonctionnalités principales et corrections de bugs

Fonctionnalités principales

  • Mise à niveau de vllm vers la version v0.9.2.

  • Ajout de la prise en charge de TransformerEngine v2.3.0+5de3e14, peft v0.16.0 et diffusers v0.34.0.

Corrections de bugs

Aucune correction pour cette version.

Versions des composants

Cas d'utilisation

Entraînement/Inférence

Framework

pytorch

Prérequis

NVIDIA Driver release >= 575

Composants principaux

  • Ubuntu : 24.04

  • Python : 3.12.7+gc

  • CUDA : 12.8

  • perf : 5.4.30

  • gdb : 15.0.50

  • Torch : 2.7.1.8+nv25.3

  • ACCL-N : 2.27.5.14

  • triton : 3.3.0

  • transformer_engine : 2.3.0+5de3e14

  • deepspeed : 0.16.9+ali

  • flash-attn : 2.7.2

  • flashattn-hopper : 3.0.0b1

  • transformers : 4.51.2+ali

  • megatron-core : 0.12.1

  • grouped_gemm : 1.1.4

  • accelerate : 1.7.0+ali

  • diffusers : 0.34.0

  • mmengine : 0.10.3

  • mmcv : 2.1.0

  • mmdet : 3.3.0

  • opencv-python-headless : 4.11.0.86

  • ultralytics : 8.3.96

  • timm : 1.0.17

  • vllm : 0.9.2

  • flashinfer-python : 0.2.5

  • pytorch-dynamic-profiler : 0.24.11

  • peft : 0.16.0

  • ray : 2.47.1

Ressources

25.07

  • egslingjun-registry.cn-wulanchabu.cr.aliyuncs.com/egslingjun/training-nv-pytorch:25.07-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.07-serverless convient aux déploiements multi-locataires Alibaba Cloud Container Compute Service (ACS) et Lingjun. Elle n'est pas compatible avec les déploiements mono-locataire Lingjun.

Prérequis relatifs aux pilotes

  • La version 25.07 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 qu'un T4 ou tout autre GPU de ce type), vous pouvez également utiliser les versions de pilote NVIDIA 470.57 (ou R470 ultérieur), 525,85 (ou R525 ultérieur), 535,86 (ou R535 ultérieur) ou 545,23 (ou R545 ultérieur).

  • Le package de compatibilité CUDA ne prend en charge que certaines séries de pilotes. Vous devez donc mettre à niveau les séries R418, R440, R450, R460, R510, R520, R530, R545, R555 et R560, car elles ne sont pas compatibles ascendante 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 documentation 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 de performance 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é 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 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 lors du 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'activations. Ce modèle 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. 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. 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 les 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'aide de l'outil d'analyse des performances IA de la plateforme Cloud Native Platform (CNP), nous avons comparé les performances de bout en bout de cette image à celles d'une image de base standard, en utilisant des modèles open source courants et des configurations de framework standards. Des études par ablation ont également permis d'évaluer la contribution de chaque composant d'optimisation aux performances globales de l'entraînement du modèle.

Analyse de la contribution des composants principaux du GPU aux performances E2E

Nous avons effectué les tests suivants, basés sur la version 25.07, sur un cluster GPU multi-nœuds afin d'évaluer et de comparer les performances d'entraînement de bout en bout. Les configurations comparées incluent :

  1. Base : Image NGC PyTorch.

  2. Image IA ACS : Base+ACCL : Image de base intégrant la bibliothèque de communication ACCL.

  3. Image IA ACS : AC2+ACCL : Image de référence avec le système d'exploitation de base AC2, sans aucune optimisation activée.

  4. Image IA ACS : AC2+ACCL+CompilerOpt : Image de référence avec le système d'exploitation de base AC2 et uniquement l'optimisation de compilation torch activée.

  5. Image IA ACS : AC2+ACCL+CompilerOpt+CkptOpt : Image de référence avec le système d'exploitation de base AC2, combinant les optimisations de compilation torch et de checkpointing sélectif des gradients.

image.png

Prise en main

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

Remarque

Pour utiliser l'image training-nv-pytorch dans Alibaba Cloud Container Compute Service (ACS), sélectionnez-la depuis l'Artifact Center sur la page de création de 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 de compilation et de checkpointing des gradients (Facultatif)

  • Activer l'optimisation de compilation

    Utilisez l'API Transformers Trainer :

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

    export CHECKPOINT_OPTIMIZATION=true

3. Démarrer le conteneur

L'image inclut ljperf, un outil intégré d'entraînement de modèles. Cet exemple montre comment démarrer le conteneur et exécuter 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 a training demo
ljperf benchmark --model deepspeed/llama3-8b 

4. Remarques d'utilisation

  • L'image contient des modifications apportées à des bibliothèques telles que PyTorch et DeepSpeed. Ne les réinstallez pas.

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

  • Ajustez la variable d'environnement intégrée NCCL_SOCKET_IFNAME selon le cas d'utilisation :

    • Si un pod unique demande 1, 2, 4 ou 8 GPU pour une tâche d'entraînement ou d'inférence, définissez NCCL_SOCKET_IFNAME=eth0. Il s'agit du paramètre par défaut.

    • Si un pod unique sollicite les 16 GPU d'un hôte pour utiliser le réseau haute performance (HPN) lors d'une tâche d'entraînement ou d'inférence, définissez NCCL_SOCKET_IFNAME=hpn0.

Problèmes connus

Aucun problème connu pour cette version.