Transformers documentation
DeepSpeed
DeepSpeed
DeepSpeed, propulsé par le Zero Redundancy Optimizer (ZeRO), est une bibliothèque d’optimisation pour l’entraînement et l’ajustement de très grands modèles sur un GPU. Elle est disponible en plusieurs stades ZeRO, où chaque stade économise progressivement plus de mémoire GPU en partitionnant l’état de l’optimiseur, les gradients et les paramètres, et en permettant le déchargement vers un CPU ou un NVMe. DeepSpeed est intégré à la classe Trainer et la plupart de la configuration est prise en charge automatiquement pour vous.
Cependant, si vous souhaitez utiliser DeepSpeed sans le Trainer, Transformers fournit une classe HfDeepSpeedConfig.
En savoir plus sur l'utilisation de DeepSpeed avec Trainer dans le guide DeepSpeed.
HfDeepSpeedConfig
classe transformers.integrations.HfDeepSpeedConfig
< source >( config_file_or_dict )
Cet objet contient un dictionnaire de configuration DeepSpeed et permet de consulter rapidement des éléments tels que le niveau zero.
Un weakref de cet objet est stocké dans les variables globales du module afin de pouvoir accéder à la configuration depuis des zones où des éléments comme l’objet Trainer ne sont pas disponibles (par exemple from_pretrained et _get_resized_embeddings). Il est donc important que cet objet reste en vie tant que le programme est en cours d’exécution.
Trainer utilise à la place la sous-classe HfTrainerDeepSpeedConfig. Cette sous-classe contient une logique qui synchronise la configuration avec les valeurs de TrainingArguments en remplaçant les valeurs de remplacement spéciales : "auto". Sans cette logique spéciale, la configuration DeepSpeed n’est modifiée d’aucune manière.