本项目从零实现了RLHF三阶段训练,并在文档中详细写了实现细节,欢迎大家交流讨论WeChat
- 支持指令微调Alpaca模型
- 支持训练Reward模型
- 支持PPO算法训练RL模型
- 支持基于两个基模型,两个lora的适配器,同时加载RM、SFT、Actor、Critic四个模型,支持accelerate分布式训练 (PPO算法实现细节)
- 支持基于一个基模型,两个lora适配器,同时加载RM、SFT、Actor、Critic四个模型,支持accelerate、deepspeed训练
- 支持基于一个基模型,一个lora适配器,Actor、Critic共享base model,同时实现RM、SFT、Actor、Critic四个模型功能,支持accelerate、deepspeed训练
- 支持DPO算法训练模型
- [23/8/23] 支持LLaMA2模型训练;支持DPO训练;支持基于一个基模型、选择一个或两个lora适配器训练PPO、支持accelerate、deepspeed训练
- [23/8/13] 支持LLaMA模型训练;支持基于两个基模型、两个lora的适配器训练PPO;支持accelerate分布式训练
与开源的RLHF训练框架的功能进行对比
框架 | SFT Train | RM Train | PPO Train | DPO Train |
---|---|---|---|---|
Our | ✅ | ✅ | ✅ | ✅ |
Deepspeed-chat | ✅ | ✅ | ✅ | |
trl | ✅ | ✅ | ✅ | ✅ |
MOSS-RLHF | ✅ |
框架 | Accelerate | Deepspeed | Multi LORA | 最低模型参数量 (7B为例) |
---|---|---|---|---|
Our | ✅ | ✅ | ✅ | single model size ~ 7B |
Deepspeed-chat | ✅ | sft+rm+actor+critic ~ 28B | ||
trl | ✅ | single model size(not use ref model)~ 7B | ||
MOSS-RLHF | actor model、critic model | sft model、rm model | sft+rm+actor+critic ~ 28B |
accelerate==0.21.0
datasets==2.13.1
scikit-learn==1.3.0
sentencepiece==0.1.99
tqdm==4.65.0
transformers==4.31.0
wandb==0.15.8
peft==0.4.0
torch==2.0.1
trl==0.5.0
deepspeed==0.10.0
- LLaMA
- LLaMA2
- LoRA
- 支持LLaMA2模型
- 支持deepspeed训练
- 支持DPO训练
- PPO提升训练稳定性,实现ppo-max
- 支持DDPO训练
- 支持RRHF
- 支持RAFT
- 支持拒绝采样 RFT
- 支持BLOOM模型
- 支持Baichuan模型
- 支持QLoRA训练
欢迎加群讨论 WeChat