# DeepSpeed

[DeepSpeed](https://github.com/deepspeedai/DeepSpeed), movido pelo Zero Redundancy Optimizer (ZeRO), é uma biblioteca de otimização para treinar e ajustar modelos muito grandes em uma GPU. Está disponível em vários estágios do ZeRO, em que cada estágio economiza progressivamente mais memória de GPU ao particionar o estado do otimizador, os gradientes e os parâmetros, e ao permitir o offloading para a CPU ou NVMe. O DeepSpeed é integrado à classe [Trainer](/docs/transformers/main/pt/main_classes/trainer#transformers.Trainer) e a maior parte da configuração é tratada automaticamente para você.

No entanto, se você quiser usar o DeepSpeed sem o [Trainer](/docs/transformers/main/pt/main_classes/trainer#transformers.Trainer), o Transformers fornece a classe `HfDeepSpeedConfig`.

Saiba mais sobre o uso do DeepSpeed com o [Trainer](/docs/transformers/main/pt/main_classes/trainer#transformers.Trainer) no guia [DeepSpeed](../deepspeed).

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

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

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

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

**Parâmetros:**

config_file_or_dict (`Union[str, Dict]`) : caminho para o arquivo de configuração do DeepSpeed ou um dicionário.

Este objeto contém um dicionário de configuração do DeepSpeed e pode ser consultado rapidamente para informações como o estágio zero.

Uma `weakref` deste objeto é armazenada nos globais do módulo para permitir o acesso à configuração em áreas onde objetos como o Trainer não estão disponíveis (por exemplo, `from_pretrained` e `_get_resized_embeddings`). Portanto, é importante que este objeto permaneça ativo enquanto o programa estiver em execução.

O [Trainer](/docs/transformers/main/pt/main_classes/trainer#transformers.Trainer) usa a subclasse `HfTrainerDeepSpeedConfig`. Essa subclasse possui lógica para sincronizar a configuração com os valores de [TrainingArguments](/docs/transformers/main/pt/main_classes/trainer#transformers.TrainingArguments), substituindo valores de placeholder especiais: `"auto"`. Sem essa lógica especial, a configuração do DeepSpeed não é modificada de forma alguma.

