# Utilitaires DeepSpeed

## DeepSpeedPlugin

## get_active_deepspeed_plugin[[accelerate.utils.get_active_deepspeed_plugin]]

#### accelerate.utils.get_active_deepspeed_plugin[[accelerate.utils.get_active_deepspeed_plugin]]

```python
accelerate.utils.get_active_deepspeed_plugin(state)
```

[Source](https://github.com/huggingface/accelerate/blob/main/src/accelerate/utils/deepspeed.py#L100)

**Levée :** ``ValueError``

- ``ValueError`` -- Si DeepSpeed n'a pas été activé et que cette fonction est appelée.

Retourne le DeepSpeedPlugin actuellement actif.

#### accelerate.DeepSpeedPlugin[[accelerate.DeepSpeedPlugin]]

```python
accelerate.DeepSpeedPlugin(hf_ds_config: Any = None, gradient_accumulation_steps: int = None, gradient_clipping: float = None, zero_stage: int = None, is_train_batch_min: bool = True, offload_optimizer_device: str = None, offload_param_device: str = None, offload_optimizer_nvme_path: str = None, offload_param_nvme_path: str = None, zero3_init_flag: bool = None, zero3_save_16bit_model: bool = None, transformer_moe_cls_names: str = None)
```

[Source](https://github.com/huggingface/accelerate/blob/main/src/accelerate/utils/dataclasses.py#L1047)

**Paramètres :**

hf_ds_config (`Any`, par défaut `None`) : Chemin vers le fichier de configuration DeepSpeed, un dictionnaire ou un objet de la classe `accelerate.utils.deepspeed.HfDeepSpeedConfig`.

gradient_accumulation_steps (`int`, par défaut `None`) : Nombre d'étapes pour accumuler les gradients avant de mettre à jour les états de l'optimiseur. Si non défini, utilisera directement la valeur de l'`Accelerator`.

gradient_clipping (`float`, par défaut `None`) : Active le clipping des gradients avec la valeur indiquée.

zero_stage (`int`, par défaut `None`) : Les options possibles sont 0, 1, 2, 3. La valeur par défaut est prise de la variable d'environnement.

is_train_batch_min (`bool`, par défaut `True`) : Si les deux chargeurs de données d'entraînement et d'évaluation sont spécifiés, cela déterminera la `train_batch_size`.

offload_optimizer_device (`str`, par défaut `None`) : Les options possibles sont none|cpu|nvme. Applicable uniquement avec les étapes ZeRO 2 et 3.

offload_param_device (`str`, par défaut `None`) : Les options possibles sont none|cpu|nvme. Applicable uniquement avec ZeRO Stage 3.

offload_optimizer_nvme_path (`str`, par défaut `None`) : Les options possibles sont /nvme|/local_nvme. Applicable uniquement avec ZeRO Stage 3.

offload_param_nvme_path (`str`, par défaut `None`) : Les options possibles sont /nvme|/local_nvme. Applicable uniquement avec ZeRO Stage 3.

zero3_init_flag (`bool`, par défaut `None`) : Indique s'il faut enregistrer le modèle en 16 bits. Applicable uniquement avec ZeRO Stage-3.

zero3_save_16bit_model (`bool`, par défaut `None`) : Indique s'il faut enregistrer le modèle en 16 bits. Applicable uniquement avec ZeRO Stage-3.

transformer_moe_cls_names (`str`, par défaut `None`) : Liste séparée par des virgules des noms de classes de couches MoE de Transformers (sensible à la casse). Par exemple, `MixtralSparseMoeBlock`, `Qwen2MoeSparseMoeBlock`, `JetMoEAttention`, `JetMoEBlock`, etc.

Ce plugin est utilisé pour intégrer DeepSpeed.

#### deepspeed_config_process[[accelerate.DeepSpeedPlugin.deepspeed_config_process]]

```python
deepspeed_config_process(prefix = '', mismatches = None, config = None, must_match = True, **kwargs)
```

[Source](https://github.com/huggingface/accelerate/blob/main/src/accelerate/utils/dataclasses.py#L1283)

Traitez la configuration DeepSpeed avec les valeurs issues des kwargs.

#### sélectionner[[accelerate.DeepSpeedPlugin.select]]

```python
select(_from_accelerator_state: bool = False)
```

[Source](https://github.com/huggingface/accelerate/blob/main/src/accelerate/utils/dataclasses.py#L1438)

Définit le HfDeepSpeedWeakref pour utiliser la configuration actuelle du plugin deepspeed

#### accelerate.utils.DummyScheduler[[accelerate.utils.DummyScheduler]]

```python
accelerate.utils.DummyScheduler(optimizer, total_num_steps = None, warmup_num_steps = 0, lr_scheduler_callable = None, **kwargs)
```

[Source](https://github.com/huggingface/accelerate/blob/main/src/accelerate/utils/deepspeed.py#L362)

**Paramètres :**

optimizer (`torch.optim.optimizer.Optimizer`) : l'optimiseur à encapsuler.

total_num_steps (int, *facultatif*) : Nombre total d'étapes.

warmup_num_steps (int, *facultatif*) : Nombre d'étapes pour la montée en température.

lr_scheduler_callable (callable, *facultatif*) : une fonction callable qui crée un planificateur de taux d'apprentissage. Elle n'accepte qu'un seul argument, `optimizer`.

- ****kwargs** (arguments supplémentaires par mot-clé, *facultatif*) : Autres arguments.

Le planificateur factice présente les paramètres du modèle ou les groupes de paramètres. Il est principalement utilisé pour suivre la boucle d'entraînement conventionnelle lorsque la configuration du planificateur est spécifiée dans le fichier de configuration de DeepSpeed.

## DeepSpeedEnginerWrapper[[accelerate.utils.DeepSpeedEngineWrapper]]

#### accelerate.utils.DeepSpeedEngineWrapper[[accelerate.utils.DeepSpeedEngineWrapper]]

```python
accelerate.utils.DeepSpeedEngineWrapper(engine)
```

[Source](https://github.com/huggingface/accelerate/blob/main/src/accelerate/utils/deepspeed.py#L253)

**Paramètres :**

engine (deepspeed.runtime.engine.DeepSpeedEngine) : moteur deepspeed à encapsuler

Enveloppe interne pour deepspeed.runtime.engine.DeepSpeedEngine. Elle est utilisée pour suivre la boucle d'entraînement conventionnelle.

#### get_global_grad_norm[[accelerate.utils.DeepSpeedEngineWrapper.get_global_grad_norm]]

```python
get_global_grad_norm()
```

[Source](https://github.com/huggingface/accelerate/blob/main/src/accelerate/utils/deepspeed.py#L286)

Obtenir la norme globale du gradient depuis le moteur DeepSpeed.

## DeepSpeedOptimizerWrapper[[accelerate.utils.DeepSpeedOptimizerWrapper]]

#### accelerate.utils.DeepSpeedOptimizerWrapper[[accelerate.utils.DeepSpeedOptimizerWrapper]]

```python
accelerate.utils.DeepSpeedOptimizerWrapper(optimizer)
```

[Source](https://github.com/huggingface/accelerate/blob/main/src/accelerate/utils/deepspeed.py#L295)

**Paramètres :**

optimizer (`torch.optim.optimizer.Optimizer`) : l'optimiseur à encapsuler.

Enveloppe interne autour d'un optimiseur deepspeed.

## DeepSpeedSchedulerWrapper[[accelerate.utils.DeepSpeedSchedulerWrapper]]

#### accelerate.utils.DeepSpeedSchedulerWrapper[[accelerate.utils.DeepSpeedSchedulerWrapper]]

```python
accelerate.utils.DeepSpeedSchedulerWrapper(scheduler, optimizers)
```

[Source](https://github.com/huggingface/accelerate/blob/main/src/accelerate/utils/deepspeed.py#L322)

**Paramètres :**

scheduler (`torch.optim.lr_scheduler.LambdaLR`) : Le planificateur à encapsuler.

optimizers (un ou une liste de `torch.optim.Optimizer`) --

Enveloppe interne autour d'un planificateur deepspeed.

## DummyOptim[[accelerate.utils.DummyOptim]]

#### accelerate.utils.DummyOptim[[accelerate.utils.DummyOptim]]

```python
accelerate.utils.DummyOptim(params, lr = 0.001, weight_decay = 0, **kwargs)
```

[Source](https://github.com/huggingface/accelerate/blob/main/src/accelerate/utils/deepspeed.py#L339)

**Paramètres :**

lr (float) : Taux d'apprentissage.

params (iterable) : itérable de paramètres à optimiser ou de dictionnaires définissant des groupes de paramètres

weight_decay (float) : Décroissance du poids.

- ****kwargs** (arguments supplémentaires par mot-clé, *facultatif*) : Autres arguments.

L'optimiseur factice présente les paramètres du modèle ou les groupes de paramètres. Il est principalement utilisé pour suivre la boucle d'entraînement conventionnelle lorsque la configuration de l'optimiseur est spécifiée dans le fichier de configuration deepspeed.

## DummyScheduler

