PyTorch
torch.utils.checkpoint
官方文档- PyTorch Training Performance Guide 中关于 Gradient Checkpoints 的介绍
- 例子1:Pytorch高效降低内存 torch.utils.checkpoint()的使用
- 例子2:使用 checkpoint 优化前和使用 checkpoint 优化后
- 例子3:PyTorch Memory optimizations via gradient checkpointing
- 例子4:pytorch显存管理、前向传播中间激活存储(intermediate activation)和torch.utils.checkpoint
Hugging Face
gradient_checkpointing_enable
官方文档及用法- Methods and tools for efficient training on a single GPU 中关于 Gradient Checkpointing 的内容
- Performance and Scalability: How To Fit a Bigger Model and Train It Faster中关于Gradient Checkpointing的内容
- Gradient Checkpointing(梯度检查点)
- Hugging Face高效训练技术一:单 GPU 高效训练(Gradient Accumulation、Gradient Checkpointing、混合精度训练、优化其选择)
- Hugging Face高效训练技术二:大模型分布式训练策略——ZeRO、FSDP
- Hugging Face高效训练技术三:huggingface DeepSpeed文档
- 例子:tweet-sentiment-extraction
DeepSpeed
- 项目地址
- 官方文档:
- Hugging Face与DeepSpeed的集成
- 官方文档
- DeepSpeed集成
- DeepSpeed 与 Trainer 集成的文档
- DeepSpeed 与 Accelerate 集成的文档
- 博客:
- 大模型微调实践必看——一文看懂Deepspeed:用ZeRO训练大模型原理解析及参数含义解释
- deepspeed入门教程
- DeepSpeed使用指南(简略版)
- 关于Deepspeed的一些总结与心得
- PyTorch Distributed Training with DeepSpeed
- zero_stage核心目的:优化训练方式和硬件(GPU/TPU/CPU)使用效率,让用户训练transformers类的大模型更加高效。[引用]
- 例子:[ deepSpeed ] 单机单卡本地运行 & Docker运行,改编于官方示例
- 解决报错
FileNotFoundError: [Errno 2] No such file or directory: 'numactl'
,安装numactl:sudo apt-get install numactl
- 解决报错
ModuleNotFoundError: No module named 'ninja'
,安装ninja:pip install ninja
,注意这里如果用conda安装还是会报错,原因不明。
- 解决报错