Sélectionner vos préférences de cookies

Nous utilisons des cookies essentiels et des outils similaires qui sont nécessaires au fonctionnement de notre site et à la fourniture de nos services. Nous utilisons des cookies de performance pour collecter des statistiques anonymes afin de comprendre comment les clients utilisent notre site et d’apporter des améliorations. Les cookies essentiels ne peuvent pas être désactivés, mais vous pouvez cliquer sur « Personnaliser » ou « Refuser » pour refuser les cookies de performance.

Si vous êtes d’accord, AWS et les tiers approuvés utiliseront également des cookies pour fournir des fonctionnalités utiles au site, mémoriser vos préférences et afficher du contenu pertinent, y compris des publicités pertinentes. Pour accepter ou refuser tous les cookies non essentiels, cliquez sur « Accepter » ou « Refuser ». Pour effectuer des choix plus détaillés, cliquez sur « Personnaliser ».

Parallélisme de tenseur

Mode de mise au point
Parallélisme de tenseur - Amazon SageMaker AI

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Le parallélisme de tenseur est un type de parallélisme de modèle dans lequel des poids, des gradients et des états d'optimiseur spécifiques sont répartis entre les appareils. Contrairement au parallélisme des pipelines, qui permet de conserver les poids individuels intacts tout en répartissant l'ensemble des poids, des dégradés ou de l'optimiseur entre les appareils, le parallélisme tensoriel divise les poids individuels. Cela implique généralement un calcul distribué d'opérations, de modules ou de couches spécifiques du modèle.

Le parallélisme de tenseur est nécessaire dans les cas où un seul paramètre consomme la plus grande partie de la mémoire GPU (par exemple, de grandes tables d'incorporation avec une grande taille de vocabulaire ou une couche softmax volumineuse avec un grand nombre de classes). Dans ce cas, le traitement de ce tenseur ou de cette opération de grande taille comme une unité atomique est inefficace et nuit à l'équilibre de la charge mémoire.

SMP v2 s'intègre à Transformer Engine pour la mise en œuvre du parallélisme des tenseurs et s'exécute au-dessus du FSDP. PyTorch APIs Vous pouvez activer simultanément le parallélisme des tenseurs PyTorch FSDP et SMP et déterminer le meilleur parallélisme du modèle pour de meilleures performances.

En pratique, le parallélisme tensoriel est particulièrement utile dans les scénarios suivants.

  • Lorsque vous vous entraînez avec de longues durées de contexte, cela entraîne une mémoire d'activation élevée avec le FSDP uniquement.

  • Lorsque vous vous entraînez avec de très grands clusters sur lesquels la taille globale du lot dépasse les limites souhaitées.

Modèles Hugging Face Transformer compatibles avec le parallélisme des tenseurs SMP

Le SMP v2 prend actuellement en charge le parallélisme des tenseurs pour les modèles de transformateurs Hugging Face suivants.

Pour la configuration de référence permettant d'appliquer le parallélisme des tenseurs à ces modèles, voir. Conseils de configuration

Configurer le parallélisme des tenseurs

Pourtensor_parallel_degree, vous sélectionnez une valeur pour le degré de parallélisme des tenseurs. La valeur doit diviser de manière égale le nombre de GPUs dans votre cluster. Par exemple, pour partager votre modèle lorsque vous utilisez une instance avec 8 GPUs, choisissez 2, 4 ou 8. Nous vous recommandons de commencer par un petit nombre, puis de l'augmenter progressivement jusqu'à ce que le modèle soit intégré à la mémoire du GPU.

Les extraits de code suivants montrent comment ajouter le module d'initialisation SMP torch.sagemaker.init() à votre script d'entraînement et configurer le dictionnaire de configuration SMP au format JSON pour le lanceur de tâches de formation tout en suivant le processus en deux étapes introduit dans. Utiliser la bibliothèque de parallélisme des SageMaker modèles v2 Il n'est pas nécessaire de modifier votre PyTorch modèle ou votre configuration PyTorch FSDP. Pour plus d'informations sur les paramètres tensor_parallel_degree et random_seed, consultez Paramètres de configuration des fonctionnalités principales du SMP v2.

Configuration du SMP

{ "tensor_parallel_degree": 8, "random_seed": 0 }

Dans votre script d'entraînement

Initialisez avec torch.sagemaker.init() pour activer SMP v2 et encapsulez votre modèle avec l'torch.sagemaker.transformAPI.

import torch.sagemaker as tsm tsm.init() from transformers import AutoModelForCausalLM model = AutoModelForCausalLM.from_config(..) model = tsm.transform(model)

Enregistrer et charger les points de contrôle du Hugging Face Transformer

Une fois que la bibliothèque SMP a transformé un modèle, elle modifie le dictionnaire d'état (state_dict) du modèle. Cela signifie que le modèle devient incompatible avec les fonctionnalités de point de contrôle d'origine du Hugging Face Transformer. Pour ce faire, la bibliothèque SMP permet d'enregistrer les points de contrôle APIs d'un modèle transformé dans la représentation de Hugging Face Transformer, et l'API permet de charger un point de contrôle torch.sagemaker.transform du modèle Hugging Face Transformer pour un réglage précis.

Pour plus d'informations sur la sauvegarde des points de contrôle lors de l'utilisation de la fonction de parallélisme des tenseurs de SMP v2, consultez. Point de contrôle à l'aide du SMP

Pour plus d'informations sur le réglage précis d'un modèle en appliquant la fonction de parallélisme des tenseurs de SMP v2, consultez. Affinement

Rubrique suivante :

Affinement

Rubrique précédente :

Déchargement de l'activation
ConfidentialitéConditions d'utilisation du sitePréférences de cookies
© 2025, Amazon Web Services, Inc. ou ses affiliés. Tous droits réservés.