项目介绍:Online RLHF
Online RLHF 项目是一个用于对齐大型语言模型(LLMs)的在线迭代强化学习从人类反馈(RLHF)的开源库。这个项目的推出填补了现有开源项目大多局限于离线环境的空白,提供了一种详细的流程使得在线迭代 RLHF 可以更容易地再现,并且仅利用开源数据便能达到甚至超越 LLaMA3-8B-Instruct 的效果。
模型发布
项目中提供了多种模型,包括监督微调(SFT)模型、奖励模型和 RLHF 模型。
SFT 模型
- RLHFlow/LLaMA3-SFT v1.0:经过一个周期训练。
- RLHFlow/LLaMA3-SFT-v2 v2.0:经过两个周期训练。
- 更多的 SFT 模型检查点和数据集可在 此处 查看。
奖励模型
- Reward model:Bradley-Terry 模型。
- 更多奖励模型可在 此处 找到。
RLHF 模型
- RLHFlow/LLaMA3-iterative-DPO-final:在 RLHFlow/LLaMA3-SFT 基础上训练。
- 还有多个迭代版本的模型可供使用。
环境安装说明
推荐为推理和训练分别创建独立的环境。
SFT 环境
在进行 SFT 训练时,建议创建一个新的 Conda 环境,并安装必要的依赖库,如 Axolotl 和 FastChat。同时,还需要使用 huggingface 帐号登录和安装 wandb 记录训练过程。
conda create -n sft python=3.10.9
conda activate sft
推理环境
推理环境也需要创建新的 Conda 环境,安装相关依赖,如 VLLM 和 transformers 等。
conda create -n vllm python=3.10.9
conda activate vllm
训练环境
训练环境需要额外安装 torch、flash-attn 和其他必要库。同样需要进行 wandb 登录。
conda create -n rlhflow python=3.10.9
conda activate rlhflow
开始使用
在这部分中,我们提供了逐步指南,帮助用户进行模型的训练和应用。
第一步:监督微调
准备好 SFT 数据,并将其格式化为标准格式。可以参考 RLHFlow/RLHFlow-SFT-Dataset-ver2 作为例子。
第二步:奖励建模
在第二步中,使用奖励建模进行训练,项目已经在 Hugging Face 上提供了几个训练好的状态奖励模型(RMs)。
第三步:迭代数据生成与标注
数据生成完成后,使用训练好的奖励模型对生成的响应进行评分和排序,最后进行训练。
致谢
项目团队感谢 Huggingface TRL 团队、Allen Institute AI RewardBench 团队、Meta LLaMA 团队等多个开源社区的支持和贡献。
引用
如果您发现该项目内容有用,请考虑引用以下文献:
@misc{dong2024rlhf,
title={RLHF Workflow: From Reward Modeling to Online RLHF},
author={Hanze Dong and Wei Xiong and Bo Pang and others},
year={2024},
eprint={2405.07863},
archivePrefix={arXiv},
primaryClass={cs.LG}
}
通过这个项目,研究人员和开发者可以在开源数据和模型的支持下更高效地进行在线 RLHF 方面的研究和应用。