RLHF Book 指南如何从零训出第一个 RLHF 对齐模型【免费下载链接】rlhf-bookTextbook on reinforcement learning from human feedback项目地址: https://gitcode.com/gh_mirrors/rl/rlhf-bookRLHF Book 是一本开源的大语言模型 RLHF用人类偏好来训练模型教材17 个章节讲清 SFT、奖励模型到 PPO/DPO 的完整链路仓库自带可直接运行的参考代码。读完你能在自己的 GPU 上训出一个偏好奖励模型再跑通一次策略梯度训练。摸清痛点RLHF 为什么难自学你可能遇到过这种情况搜 RLHF 教程搜出来的是 InstructGPT 论文、DPO 论文、几篇博客和一堆跑不起来的示例代码。麻烦在于 RLHF 不是一个算法而是三级流水线先用人工指令微调SFT用问答对把基座模型调成会对话的助手基座模型再训一个给输出打分的奖励模型最后拿奖励信号做强化学习。三级各有各的损失函数和坑零散资料很少串成完整链路。RLHF Book 的处理方式是把章节和代码一一对应第 4 到 12 章各自映射到 code/ 下的一个子目录命令、配置和预期曲线都准备好了目录结构见仓库根目录的 README.md。速览项目结构一本书加六个可运行代码库它是一套「教材加参考代码」的组合book/chapters/ 里是 17 章正文code/ 下有 6 个可训练的代码库——instruction_tuning、reward_models、policy_gradients、direct_alignment、rejection_sampling、distillation。下图是 RLHF 的核心闭环策略模型生成回答奖励模型打分PPO 负责更新参数。图RLHF 训练闭环——调优后的策略模型生成回答奖励模型输出分数 rPPO 更新把奖励和 KL 惩罚项合并后回传参数。书籍源码可以在本地构建出 HTML/PDF构建步骤见 book/README.md。快速上手4 条命令跑通第一次对齐训练环境要 Python 3.12 和 uv。克隆仓库后在 code/ 目录装依赖然后跑 1000 条样本的 DPODirect Preference Optimization不做单独奖励模型、直接在偏好对上对齐最小测试几分钟内就能看到 loss 和 accuracy 开始变化git clone https://gitcode.com/gh_mirrors/rl/rlhf-book cd rlhf-book/code uv sync uv run python -m direct_alignment.train --loss dpo --max_samples 1000没有 WB 账号就先执行export WANDB_MODEdisabled。跑完再按 code/README.md 里的逐章实验表推进每章都写明了该盯哪个指标。拆解三大核心训练能力训练你的第一个偏好奖励模型原理很简单奖励模型同时看到一个更好和一个更差的回答只要求更好的那个得分更高损失是 Bradley-Terry 成对比较只看分差。这是 InstructGPT 和 Llama 2 都在用的方案。下图里两条回答只有结尾的 |eos| token 参与打分。图偏好奖励模型训练——在两条回答的结尾分别打分loss 只用分差计算。在 code/ 目录执行uv run python -m reward_models.train_preference_rm --config reward_models/configs/preference_rm.yaml盯 chosen 与 rejected 的奖励分差分差稳定拉开说明模型学会了区分。章节正文book/chapters/05-reward-models.md三种奖励模型偏好 RM、ORM、PRM的训练入口与配置code/reward_models/。跑通 PPO 与 GRPO 策略梯度训练这一步最像传统强化学习模型先在任务上仓库默认是字符串反转批量生成候选回答奖励给每条打分损失把高分回答的概率推上去、低分的拉下来。GRPO组相对策略优化在同提示的一组回答里做相对比较不需要额外价值网络省显存。PPO、REINFORCE、RLOO 等其余算法共用同一入口换 configs/ 里的 YAML 即可切换。图策略梯度训练记录——7 种算法在 1500 步内的平均奖励曲线直接看出谁收敛更快。章节正文book/chapters/06-policy-gradients.md损失实现与全部算法配置code/policy_gradients/。用 DPO 跳过奖励模型直接做偏好对齐DPO 把「奖励模型加 RL」两步改写成一个分类损失不用单独训奖励模型不用在线采样训练方式接近监督学习。这也是快速上手那节先拿它出结果的原因。code/direct_alignment/ 里 8 个变体共用同一个 loss.py换配置就能在同一数据集上对比不同损失。章节正文book/chapters/08-direct-alignment.mdDPO 损失实现code/direct_alignment/loss.py。规划进阶方向三个阶段都能跑通之后难点才刚开始奖励模型只是人类偏好的代理把奖励推得太高模型会「刷分」而不是变好。第 14 章讲过优化与惩罚项设计第 9 章给出一条省算力的替代路线第 12 章讲用模型自己造训练数据。过优化与奖励作弊book/chapters/14-over-optimization.md拒绝采样Best-of-Nbook/chapters/09-rejection-sampling.md合成数据与蒸馏book/chapters/12-synthetic-data.md排查新手卡点显存不够奖励模型用 Qwen3-0.6B 约需 8~16GB策略梯度用 Qwen3-1.7B 约需 16GB先降 max_samples再考虑换小模型。没有 WB 账号export WANDB_MODEdisabled本地指标输出不受影响。flash-attention 装不上不加 --extra 跑uv sync即可代码自动回退到 SDPA所有示例照常工作。【免费下载链接】rlhf-bookTextbook on reinforcement learning from human feedback项目地址: https://gitcode.com/gh_mirrors/rl/rlhf-book创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考