DeepSpeed的使用

DeepSpeed 是一个由微软开发的开源深度学习优化库,旨在提高大规模模型训练的效率和可扩展性。它通过多种技术手段来加速训练,包括模型并行化、梯度累积、动态精度缩放、本地模式混合精度等。DeepSpeed还提供了一些辅助工具,如分布式训练管理、内存优化和模型压缩等,以帮助开发者更好地管理和优化大规模深度学习训练任务。此外,DeepSpeed 基于 pytorch 构建,只需要简单修改即可迁移。(也没那么简单修改即可迁移吧T_T)

DeepSpeed文档汇总

估算模型所需要的显存

在 GPU 受限的环境中,DeepSpeed ZeRO 可以将优化器内存和计算从 GPU 卸载到 CPU。

通过以下代码估算 huggingface 模型的占用显存

from transformers import AutoModel
from deepspeed.runtime.zero.stage3 import estimate_zero3_model_states_mem_needs_all_live

model = AutoModel.from_pretrained("bigscience/T0_3B") # your huggingface model name or path
estimate_zero3_model_states_mem_needs_all_live(model, num_gpus_per_node=1, num_nodes=1)

一些注意事项

  • DeepSpeed 集成进 HuggingFace transformers.Trainer 时,需要注意DeepSpeed config文件里的 auto 选项是根据 transformers.TrainingArguments 的参数来决定的,而不是选择最优的选项来运行。

  • TODO (我使用DeepSpeed熟练了再来写点)

Last updated