Déchargement de l'activation - Amazon SageMaker

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.

Déchargement de l'activation

Lorsque les points de contrôle d'activation et le parallélisme de pipeline sont activés et que le nombre de microlots est supérieur à un, le déchargement de l'activation est une fonction supplémentaire qui peut réduire davantage l'utilisation de la mémoire. Le déchargement des activations déplace de manière asynchrone les activations ponctuelles correspondant à leurs microlots qui ne sont pas actuellement en cours d'exécution dans le. CPU Juste avant d'avoir GPU besoin des activations pour le passage en arrière du microbatch, cette fonctionnalité extrait les activations déchargées depuis le. CPU

Note

Cette fonctionnalité est disponible PyTorch dans la bibliothèque de parallélisme des SageMaker modèles v1.6.0 et versions ultérieures.

Utilisation du déchargement de l'activation

Utilisez le déchargement de l'activation pour réduire l'utilisation de la mémoire lorsque le nombre de microlots est supérieur à 1 et que les points de contrôle d'activation sont activés (consultez Points de contrôle d'activation). Si les points de contrôle d'activation ne sont pas utilisés, le déchargement de l'activation n'a aucun effet. Si cette fonctionnalité est utilisée avec un seul microlot, elle ne permet pas d'économiser de la mémoire.

Pour utiliser le déchargement de l'activation, définissez "offload_activations": True dans la configuration modelparallel.

Le déchargement des activations déplace les activations ponctuelles des nn.Sequential modules vers un mode asynchrone. CPU Le transfert de données via le PCIe lien chevauche le GPU calcul. Le déchargement se produit immédiatement, dès que la transmission vers l'avant d'une couche avec points de contrôle donnée est calculée. Les activations sont rechargées GPU peu de temps avant qu'elles ne soient nécessaires pour le retour en arrière d'un microlot particulier. Le GPU transfert CPU - chevauche également le calcul.

Pour régler l'heure à laquelle les activations sont rechargées dans leGPU, vous pouvez utiliser le paramètre de configuration "activation_loading_horizon" (la valeur par défaut est définie sur 4, doit être int supérieure à 0). Un horizon de chargement des activations plus large entraînerait le rechargement des activations au niveau GPU antérieur. Si l'horizon est trop grand, l'efficacité du déchargement de l'activation pour réduire la mémoire utilisée pourrait être réduite. Si l'horizon est trop petit, il se peut que les activations ne soient pas rechargées à temps, ce qui réduirait la quantité de chevauchement et nuirait aux performances.

Astuce

Le déchargement de l'activation peut être utile pour les grands modèles comportant plus de cent milliards de paramètres.

Configuration d'un SageMaker PyTorch estimateur

mpi_options = { "enabled" : True, "processes_per_host" : 8, # 8 processes "custom_mpi_options" : "--mca btl_vader_single_copy_mechanism none " } smp_options = { "enabled":True, "parameters": { "microbatches": 4, "pipeline_parallel_degree": 2, # alias for "partitions" "placement_strategy": "cluster", "tensor_parallel_degree": 2, # tp over 2 devices "ddp": True, "offload_activations": True, "activation_loading_horizon": 4 # optional. default is 4. } }