# DeepSpeed

[DeepSpeed](https://github.com/deepspeedai/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](/docs/transformers/main/fr/main_classes/trainer#transformers.Trainer) et la plupart de la configuration est prise en charge automatiquement pour vous.

Cependant, si vous souhaitez utiliser DeepSpeed sans le [Trainer](/docs/transformers/main/fr/main_classes/trainer#transformers.Trainer), Transformers fournit une classe `HfDeepSpeedConfig`.

En savoir plus sur l'utilisation de DeepSpeed avec [Trainer](/docs/transformers/main/fr/main_classes/trainer#transformers.Trainer) dans le guide [DeepSpeed](../deepspeed).

## HfDeepSpeedConfig[[transformers.integrations.HfDeepSpeedConfig]]

#### transformers.integrations.HfDeepSpeedConfig[[transformers.integrations.HfDeepSpeedConfig]]

```python
transformers.integrations.HfDeepSpeedConfig(config_file_or_dict)
```

[Source](https://github.com/huggingface/transformers/blob/main/src/transformers/integrations/deepspeed.py#L60)

**Paramètres :**

config_file_or_dict (`Union[str, Dict]`) : chemin vers le fichier de configuration DeepSpeed ou dictionnaire.

Cet objet contient un dictionnaire de configuration DeepSpeed et permet de consulter rapidement des éléments tels que le niveau zero.

Une `weakref` de cet objet est stockée 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](/docs/transformers/main/fr/main_classes/trainer#transformers.Trainer) utilise à la place la sous-classe `HfTrainerDeepSpeedConfig`. Cette sous-classe contient une logique qui synchronise la configuration avec les valeurs de [TrainingArguments](/docs/transformers/main/fr/main_classes/trainer#transformers.TrainingArguments) en remplaçant les valeurs de substitution spéciales : `"auto"`. Sans cette logique spéciale, la configuration DeepSpeed n’est modifiée d’aucune manière.

