通过代码实现深入理解RLHF(Reinforcement Learning from Human Feedback)
这个仓库提供了RLHF三种主流算法的清晰实现,帮助你透过复杂的概念,直观理解RLHF的核心原理。
- 📝 清晰的代码实现 - 每个算法都有详细的注释和解释
- 🔍 最小化依赖 - 专注于算法本身,而不是框架细节
- 🎯 循序渐进 - 从基础PPO到高级RLHF,逐步深入
- 💡 实用示例 - 包含实际应用场景的演示
RLHF-No-Magic-Just-Code/
├── dpo/ # DPO (Direct Preference Optimization)
│ ├── actor.ipynb # Actor模型实现
│ └── dpo.ipynb # DPO模型训练
│ └── test.ipynb # 测试模型效果实现
│ └── trl.ipynb # 通过trl库实现
├── ppo/ # PPO (Proximal Policy Optimization)
│ ├── actor.ipynb # Actor模型实现
│ └── critic.ipynb # Critic模型训练
│ └── ppo.ipynb # PPO模型训练
│ └── test.ipynb # 测试模型效果实现
│ └── trl.ipynb # 通过trl库实现
└── grpo/ # GRPO (Generalized Reward Policy Optimization)
- 克隆仓库
git clone https://github.com/your-username/rlhf-no-magic.git
cd rlhf-no-magic- 安装依赖
pip install -r requirements.txt- 运行示例
# 选择一个算法开始
jupyter notebook ppo/actor.ipynb- 基础的策略优化算法
- 实现了Actor-Critic架构
- 包含完整的训练循环
- 直接从人类偏好学习
- 简化的奖励建模
- 高效的训练方法
- 通用化的奖励学习
- 改进的策略优化
- 更稳定的训练过程
- Python 3.8+
- PyTorch 1.8+
- Transformers 4.21+
- Datasets
- Jupyter
| 算法 | 训练速度 | 内存占用 | 性能表现 |
|---|---|---|---|
| PPO | 快 | 低 | 基准线 |
| DPO | 中等 | 中等 | 优秀 |
| GRPO | 较慢 | 较高 | 最佳 |
欢迎提交Issue和Pull Request!
- Fork本仓库
- 创建特性分支
- 提交更改
- 发起Pull Request
如果您在研究中使用了本项目,请引用:
@misc{rlhf-no-magic-just-code,
author = {2001wjh},
title = {RLHF: No Magic, Just Code},
year = {2024},
publisher = {GitHub},
url = {https://github.com/2001wjh/RLHF-No-Magic-Just-Code}
}本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情