Transformers documentation
DeepSpeed
DeepSpeed
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 e a maior parte da configuração é tratada automaticamente para você.
No entanto, se você quiser usar o DeepSpeed sem o Trainer, o Transformers fornece a classe HfDeepSpeedConfig.
Saiba mais sobre o uso do DeepSpeed com o Trainer no guia DeepSpeed.
HfDeepSpeedConfig
classe transformers.integrations.HfDeepSpeedConfig
< source >( config_file_or_dict )
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 em que coisas como o objeto Trainer não estão disponíveis (por exemplo, from_pretrained e _get_resized_embeddings). Portanto, é importante que este objeto permaneça vivo enquanto o programa ainda estiver em execução.
O Trainer usa a subclasse HfTrainerDeepSpeedConfig. Essa subclasse possui lógica para sincronizar a configuração com os valores de TrainingArguments, substituindo valores de placeholder especiais: "auto". Sem essa lógica especial, a configuração do DeepSpeed não é modificada de forma alguma.