本项目从零实现了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