开源项目 fms-fsdp 使用教程
1. 项目介绍
fms-fsdp
是一个用于高效预训练基础模型的开源项目,特别针对 Llama2 模型进行了优化。该项目利用 PyTorch 的原生特性,包括 FSDP(Fully Sharded Data Parallel)和 SDPA(Scaled Dot Product Attention)实现 Flash Attention v2,以提高训练效率。
该项目的主要目标是提供一个高效的预训练示例,帮助用户在 PyTorch 环境中快速上手并优化基础模型的训练过程。
2. 项目快速启动
2.1 环境准备
首先,确保你已经安装了 Python 和 PyTorch。建议使用最新的 PyTorch 版本。
pip install torch
2.2 克隆项目
克隆 fms-fsdp
项目到本地:
git clone https://github.com/foundation-model-stack/fms-fsdp.git
cd fms-fsdp
2.3 安装依赖
安装项目所需的依赖包:
pip install -r requirements.txt
2.4 运行示例训练
项目提供了一个示例训练脚本,你可以通过以下命令快速启动训练:
python main_training.py
3. 应用案例和最佳实践
3.1 应用案例
fms-fsdp
项目的一个典型应用案例是训练 Llama2 7B 模型。该项目提供了一个示例脚本,展示了如何在 IBM 自定义数据集上训练 Llama2 7B 模型。
3.2 最佳实践
- 使用 FSDP 进行训练:FSDP 是 PyTorch 提供的一种数据并行技术,可以显著提高训练效率。
- 启用 Flash Attention v2:通过 SDPA 实现 Flash Attention v2,可以进一步优化模型的训练速度。
- 选择性激活检查点:在训练大型模型时,选择性激活检查点可以减少内存占用,提高训练稳定性。
4. 典型生态项目
fms-fsdp
项目是 Foundation Model Stack 的一部分,Foundation Model Stack 是一个包含多个组件的开源项目集合,旨在支持基础模型的开发、训练、调优和推理。
- fms-hf-tuning:提供了一系列调优配方,使用 HuggingFace SFTTrainer 和 PyTorch FSDP 进行模型调优。
- fms-acceleration:包含了一系列用于加速大型模型微调和训练的库。
- fms-guardrails-orchestrator:一个用于文本生成输入和输出检测的 Guardrails 编排服务器。
通过这些生态项目,用户可以构建一个完整的基础模型训练和调优流程。