DeepSpeed的使用
DeepSpeed 是一个由微软开发的开源深度学习优化库,旨在提高大规模模型训练的效率和可扩展性。它通过多种技术手段来加速训练,包括模型并行化、梯度累积、动态精度缩放、本地模式混合精度等。DeepSpeed还提供了一些辅助工具,如分布式训练管理、内存优化和模型压缩等,以帮助开发者更好地管理和优化大规模深度学习训练任务。此外,DeepSpeed 基于 pytorch 构建,只需要简单修改即可迁移。(也没那么简单修改即可迁移吧T_T)
DeepSpeed文档汇总
Installing is as simple as
pip install deepspeed, see more details.DeepSpeed has direct integrations with HuggingFace Transformers and PyTorch Lightning. HuggingFace Transformers users can now easily accelerate their models with DeepSpeed through a simple
--deepspeedflag + config file See more details. PyTorch Lightning provides easy access to DeepSpeed through the Lightning Trainer See more details.
估算模型所需要的显存
在 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集成进 HuggingFacetransformers.Trainer时,需要注意DeepSpeed config文件里的auto选项是根据transformers.TrainingArguments的参数来决定的,而不是选择最优的选项来运行。TODO (我使用DeepSpeed熟练了再来写点)
Last updated