Transformers documentation
DeepSpeed
DeepSpeed
DeepSpeed, работающий на базе Zero Redundancy Optimizer (ZeRO), — это библиотека оптимизации для обучения и подгонки очень больших моделей на GPU. Она доступна в нескольких этапах ZeRO, на каждом из которых последовательно экономится больше памяти GPU за счёт разделения состояния оптимизатора, градиентов и параметров, а также за счёт выгрузки данных на CPU или NVMe. DeepSpeed интегрирован с классом Trainer, и большая часть настройки выполняется автоматически.
Однако, если вы хотите использовать DeepSpeed без Trainer, Transformers предоставляет класс HfDeepSpeedConfig.
Подробнее об использовании DeepSpeed с Trainer см. в руководстве DeepSpeed.
HfDeepSpeedConfig
класс transformers.integrations.HfDeepSpeedConfig
< source >( config_file_or_dict )
Этот объект содержит словарь конфигурации DeepSpeed и позволяет быстро получить такие сведения, как этап zero.
Слабое ссылающееся представление (weakref) этого объекта хранится в глобальных переменных модуля, чтобы обеспечить доступ к конфигурации из тех областей кода, где объекты вроде Trainer недоступны (например, в from_pretrained и _get_resized_embeddings). Поэтому важно, чтобы этот объект оставался живым, пока программа продолжает выполняться.
Trainer использует вместо этого подкласс HfTrainerDeepSpeedConfig. Этот подкласс содержит логику синхронизации конфигурации со значениями TrainingArguments путём замены специальных значений-заполнителей: "auto". Без этой специальной логики конфигурация DeepSpeed не изменяется никак.