LLM-RLHF-Tuning 项目介绍
LLM-RLHF-Tuning 是一个从零实现的 RLHF(强化学习人类反馈)三阶段训练项目,旨在为对AI和机器学习感兴趣的研究人员和开发人员提供完整的实施工具和详细的文档说明。通过研究和实践掌握这一技术的奥秘,项目欢迎大家加入交流讨论的微信群。
项目主要内容
微调和模型训练支持
- 指令微调Alpaca模型:该项目允许对 Alpaca 模型进行指令微调,以提高其在特定任务或领域上的表现。
- 奖励模型训练:项目中支持奖励模型(Reward Model)的训练,用于在强化学习中提供奖励信号。
- PPO算法训练:使用PPO(Proximal Policy Optimization)算法训练RL(强化学习)模型。针对模型的可拓展性和高效训练,支持不同策略:
- 使用两个基模型和两个LoRA(低秩适配器)同时装载RM(奖励模型)、SFT(监督微调模型)、Actor(演员模型)、Critic(评论家模型)。这种策略下,支持Accelerate在分布式架构下的训练。
- 基于一个基模型和两个LoRA适配器,也能加载同样的四个模型,支持Accelerate和Deepspeed的训练。
- 一个基模型,一个LoRA适配器的时候,实现与Actor、Critic共享基本模型,同时支持RM和SFT模型训练,适合加速和深度超速训练。
DPO算法训练支持
- 支持的DPO(动态规划优化)训练,让用户可以选择适合的优化平台进行模型训练。
更新记录
- 2023年8月23日:新增对LLaMA2模型及DPO训练的支持,并在一个基模型下选择一个或两个LoRA适配器进行PPO训练。
- 2023年8月13日:支持LLaMA模型训练,并在两个基模型、两个LoRA适配器下进行PPO训练,支持加速分布式训练。
功能比较
LLM-RLHF-Tuning项目在与其他开源RLHF训练框架的功能对比中,支持SFT训练、RM训练、PPO训练以及DPO训练。主要竞争框架包括Deepspeed-chat、trl和MOSS-RLHF。
PPO训练比较
项目在PPO训练上的灵活性和模块化支持突出,值得注意的是:
- 配合Accelerate和Deepspeed进行模型训练,较为完整地体现多种训练支持,并保证最低的参数量(例如7B单模型大小)。
使用指引
环境搭建
需要安装相应的系统包和依赖,包括:accelerate、datasets、scikit-learn、transformers等具体版本号可在原文中获取。
支持的模型和训练方式
- 支持LLaMA和LLaMA2模型。
- 支持使用LoRA(低秩适配器)进行训练。
训练细节
指令微调模型
项目为指令微调模型的训练提供详细的指导,可参考项目文档获得更多信息。
奖励模型训练
指导用户如何正确训练奖励模型,以便在强化学习中提供更高效的反馈机制。
PPO训练
提供基于多个基模型方案和训练重要细节的详尽指导,使研究人员能根据自身需求选择最合适的策略和框架进行覆盖PPO训练。
DPO训练
项目提供了对DPO算法的支持指导,以满足不同需求的优化训练。
未来计划
项目规划了多项未来功能,包括PPO训练提升、支持更多模型(如BLOOM、Baichuan)和待研发的训练模式(如DDPO、QLoRA)。项目致力于提高训练稳定性和性能,欢迎新想法和讨论。
加入我们的微信群,一起探索和交流,在 RLHF 的研究和应用中实现突破。