0.6 训练方法——从 RLHF 到 RLCD
文章目录写在前面一、五分钟速成RLHF 是怎么工作的二、RLCD 考据一个缩写两种全称三年撞名三、罚分的手感亲手算一遍四、真跑 LAYA 的奖励函数三合一账单五、奖励怎么变成梯度GRPO 式策略一句话版六、RLHF vs RLCD 总对照表自测十题本文总结写在最后附术语速查表第 6 版累加 9 条下篇预告写在前面第 5 篇结尾留了两个失望noul 换两个标签词概率从 0.935 崩到 0.00077 个选项挤爆预算模型不知所措。当时说这两个失望都不是模型的错——是我们没看清它是怎么被训练成现在这个样子的。这一篇补上这块拼图。家当零新增——还是pip install laya那套第 5 篇装过的直接用今天的实验只需要它自带的源码和一个能跑 numpy 的 Python。先立军规。这一条是被一个四个字母的缩写逼出来的军规六缩写和术语引官方原文不引转述。转述会变形——差一个介词意思就漂了。今天第二节就是一个现成案例一个缩写、两种全称、三年撞名网上 90% 的文章都在以讹传讹。一、五分钟速成RLHF 是怎么工作的要看清 RLCD 换掉了什么得先知道 RLHF 原来是什么。五步流水线每步一句话收集示范雇人写出高质量问答给模型当范文监督微调SFT拿范文训练——模型学会话怎么说得像人训练奖励模型RM给同一个问题的两个回答让人标注哪个更好——学出一个替人类打分的模型强化学习PPO让生成模型冲着 RM 的高分去优化——打分器当裁判策略当球员循环往复模型越答越像人类喜欢的样子。注意第 3 步埋下的种子裁判学的是人类更喜欢哪个不是哪个更对。Jev 的创始人 Diogo Almeida 在 OpenAI 干了约四年做的就是 RLHF / InstructGPT / ChatGPT / GPT-4。他离职后说过一句话被各家报道反复引用“We’ve been optimizing for humans, and we’re super human at pleasing humans.”我们一直在为人类优化而我们已经超级擅长取悦人类。这就是讨好的病根——不是模型学坏了是目标函数就写在那。讨好的具体症状你可能也见过满口绝对正确其实心里没底。翻译成概率语言报 0.99 的置信度真实正确率只有 0.7。RLHF 的裁判根本不管这个——它只管这句话人类听着爽不爽。决策模型不能这么练。它的产品就是概率本身概率就是它的成品、它的口碑、它的一切。二、RLCD 考据一个缩写两种全称三年撞名现在主角登场。第 1 篇我们记过Jev 的训练方法官方叫RLCD。当时立了 flag说全称的考据容易搞混——现在兑现。第一层官方原文是哪个我把 TypeSafe 官网首页拉下来查了原文两处都写着Reinforcement Learning for Calibrated Decisions注意是for不是 from。但你去搜会看到大量文章——包括一些写得相当认真的技术博客——写成 “Reinforcement LearningfromCalibrated Decisions”。为什么讹变得这么普遍因为 RLHF 全家的命名习惯是 fromRLHFReinforcement LearningfromHuman Feedback、RLAIFfromAI Feedback、RLVFfromVerifiable Feedback。顺口就像念惯了星期一的人容易把星期日也念快了。军规六就是从这来的引官方原文别引转述——转述连介词都保不住何况数字。第二层这个缩写不是新的。2023 年就有一篇 arXiv 论文编号 arXiv:2307.12950Yang 等用了同一个缩写全称是 “Reinforcement Learning from Contrast Distillation”——干的是大模型对齐和 TypeSafe 半点关系没有。所以你拿 “RLCD” 去搜文献会撞出一篇对齐论文别认错亲戚。这也解释了为什么官方页面要用全称括号缩写的谨慎写法。第三层它到底换了什么名字拆开就是答案Reinforcement Learning训练范式还是强化学习的壳——有策略、有奖励、有更新Calibrated优化目标换了——不再对人类喜欢优化对校准优化你说 87%就得有 87% 的频率真的是Decisions作用对象换了——不是生成文本是出决策的概率分布。一句话RLHF 练的是把话说得让人爱听RLCD 练的是把概率说得跟真的一样。三、罚分的手感亲手算一遍概率跟真的一样怎么度量靠评分规则scoring rule——一个专门给报概率打分的函数。它判卷的对象不是答案对错是你嘴里的把握跟事实差多远。最直观的两个拿垃圾邮件判断算一遍真值这封是垃圾邮件Brier 罚分 log 罚分 嘴硬模型 报0.99 0.0001 0.0101 诚实模型 报0.60 0.1600 0.5108 怂模型 报0.50 0.2500 0.6931Brier (q−真值)²log 罚分 −ln(q)。两句代码就能复现(0.99-1)**2和-np.log(0.99)。单看这张表嘴硬模型明明是冠军——报 0.99 罚分最轻。但把真值换一下同样的 0.99这封不是垃圾邮件Brier (0.99−0)² 0.9801 log −ln(0.01) 4.6052罚到肉痛。log 罚分尤其狠赌对赏 0.01赌错罚 4.6——460 倍的落差。这就是罚不敢说真话的模型的确切含义不是罚保守是罚嘴硬——敢报 0.99就得接受一旦错了往死里罚。那说真话到底是不是最优策略数值验证真实频率 p0.6 的事件扫一遍报什么 q 期望罚分最低期望Brier最低点: q0.6 ← 恰好等于真实频率 期望log最高点: q0.6 ← 两个规则结论一致 诚实报0.6的期望Brier: 0.2400 嘴硬报0.99的期望Brier: 0.3921 ← 期望上就先输一截两条曲线的最优点都精确钉在 0.6——你的真实把握。这不是巧合是一族叫**严格正则评分规则strictly proper scoring rules**的数学性质在它的赌局里唯一的最优策略就是如实报出你的真实概率。想多赚分没有邪门歪道只能把概率弄准。RLCD 的CDCalibrated Decisions就是拿这族规则当裁判。四、真跑 LAYA 的奖励函数三合一账单评分规则是理论LAYA 落地用的是什么答案就在它开源的laya/common.py里函数名proper_reward——RLCD 的C的那半段就是这一百行代码。核心结构源码原样注释是我加的defproper_reward(q,target,qtype,mask,w_sph0.5,w_rps1.0):Strictly proper scoring rule reward: log score spherical score ranked probability score.log_score(target*logq).sum(-1)# ① 对数分第三节那个 log 罚分sph(target*q).sum(-1)/q.norm(-1)# ② 球形分另一个正则规则rlog_scorew_sph*sphifqtypescore:# ③ RPS只对有序题生效rps((cdf_q-cdf_t)**2).sum(-1)/(k-1)rr-w_rps*rpsreturnr三合一账单log 分主力 0.5×球形分保险 只在 score 题上扣的 RPS。前两个你已经在第三节手算过了RPSRanked Probability Score有序概率分是新面孔它管一件很细的事等级错得近罚得轻错得远罚得重。直接调真函数验证from laya.common import proper_reward四组对照score题·预测偏邻等级 q[0.2, 0.6, 0.2]真值:等级2 log-1.6094 0.5*sph0.1508 RPS0.3400 → reward -1.7987 score题·预测偏远等级 q[0.6, 0.2, 0.2]真值:等级2 log-1.6094 0.5*sph0.1508 RPS0.5000 → reward -1.9587 choice题·预测偏邻位 q[0.2, 0.6, 0.2]真值:选项2 log-1.6094 0.5*sph0.1508 → reward -1.4587 choice题·预测偏远位 q[0.6, 0.2, 0.2]真值:选项2 log-1.6094 0.5*sph0.1508 → reward -1.4587三处读数一处比一处有意思上两组score 题log 分完全相同-1.6094因为错的地方给的概率一样RPS 却分了远近——邻 0.34、远 0.50远的额外多扣 0.16下两组choice 题同样是偏邻位和偏远位奖励一模一样——choice 的选项没有顺序偏到哪都一样错不分远近对照组预测正确 q[0.1, 0.1, 0.8]reward 0.2442正的——对就有赏。表里的数字都是程序打印原值。你拿计算器逐项相加发现差 0.0001——不是账错了是每个分项打印时各自舍入了 4 位真值相加的打印结果就是表里的 reward。实测才作数连舍入都要说清。现在回头看第 5 篇那个 score 返回 1.7722 的期望值机制拼图的另一半合上了训练的时候RPS 就在教它等级错得近比错得远好——推断的时候它把概率质量摊在相邻等级上期望值自然落在 1.77 而不是硬跳到 2。训练目标和输出格式是同一枚硬币的两面。五、奖励怎么变成梯度GRPO 式策略一句话版公式不推军规概念即可。整个 RL 部分干的事模型对一道题报出概率分布前向proper_reward对着答案算罚分/赏分对账策略梯度把多报真话能多拿分推回模型参数更新。GRPO 式的说法来自这里不像 PPO 专门训一个独立的裁判网络而是同一批问题的组内相对表现互为基准——省掉一个裁判账单减半。LAYA 的训练 notebook 里还有个td_lambda_targets函数处理多轮对话轨迹的信用分配那是另一个层面的工程细节第 9 篇微调实战时再细看。训练成本也顺便对个账官方口径Kaggle 免费双 T4、4 个 epoch、约 3 万道问题、4~5 小时跑完整个 RLCD 流程。对比大模型 RLHF 动辄几百张卡的阵仗这就是只判断不生成在训练侧的红利——第 9 篇带你真跑一遍。六、RLHF vs RLCD 总对照表维度RLHFRLCD优化目标人类评分员喜欢概率对真实结果负责裁判奖励模型学人类偏好严格正则评分规则数学性质裁判会不会错会——偏好本身有偏不会——说真话是唯一最优解练出什么流畅、讨喜、可能过度自信校准——报 87% 就 87% 是作用对象生成的文本决策的概率分布病根/药方“Pleasing humans”Almeida 语罚嘴硬赌对薄赏赌错重罚一个诚实的提醒收尾RLCD 不是万灵药。它校准的是概率的诚实度不是判断力本身——模型看不懂的问题它照样诚实地报一个 0.5第 5 篇的 77 选项翻车里你已经见过这种诚实的茫然。药只治嘴硬不治眼瞎。眼瞎怎么治选项设计第 5 篇 微调第 9 篇没有捷径。自测十题先别翻答案。这一篇手算过的数字都是你自己的了。点开对答案RLHF 五步流水线是哪五步—— 收集示范 → SFT 监督微调 → 训练奖励模型RM→ PPO 强化学习 → 循环往复。本篇一Almeida 说 RLHF 的病根是哪句话—— “We’ve been optimizing for humans, and we’re super human at pleasing humans”为人类优化超级擅长取悦人类。本篇一RLCD 官方全称是哪个介词——forReinforcement Learning for Calibrated DecisionsTypeSafe 官网原文两处——不是 from虽然网上大量文章写 from。本篇二为什么 from 的讹变这么普遍—— RLHF 全家命名都是 fromRLHF/RLAIF/RLVF顺口。本篇二拿 RLCD 去搜文献会撞到什么—— 2023 年 arXiv:2307.12950Reinforcement Learning from Contrast Distillation大模型对齐方向的论文与 TypeSafe 无关。本篇二嘴硬模型报 0.99赌对和赌错的 log 罚分各是多少—— 对0.0101错4.6052−ln 0.01——460 倍落差。本篇三严格正则评分规则的数学性质是哪句—— 唯一的最优策略就是如实报出真实概率诚实最优无邪道。本篇三proper_reward 三合一账单是哪三项—— log score 0.5×spherical score 仅 score 题扣RPS。本篇四RPS 为什么只在 score 题上生效—— 等级有顺序错得近罚得轻、错得远罚得重choice 选项无序偏哪都一样。本篇四RLCD 校准的是什么、不校准什么—— 校准概率的诚实度报 87% 就 87% 是不校准判断力本身——看不懂的问题照样诚实地报 0.5。本篇六本文总结RLHF 五步示范→SFT→奖励模型→PPO→循环裁判学的是人类喜欢病根是讨好Almeida 亲口RLCD 考据官方 for官网原文两处、from 是讹变RLHF 全家命名惯性、2023 年已有同名缩写论文arXiv:2307.12950——军规六缩写引官方原文不引转述罚分手感报 0.99 赌对赏 0.0001、赌错罚 0.9801Brier/4.6052log——罚的不是保守是嘴硬期望罚分最低点精确钉在真实频率 0.6——严格正则规则下诚实是唯一最优策略proper_reward 三合一log主力 0.5×spherical保险 RPS仅 score 题按远近罚——全部真跑验算通过RPS 与 D5 合龙训练时教等级错得近比错得远好推断时 score 返回期望值 1.7722 而非硬跳——同一枚硬币的两面训练账单Kaggle 双 T4、4 epoch、3 万问题、4~5 小时官方口径第 9 篇实证。写在最后到这一篇33 毫秒的三个秘密全部拆完架构上为什么快D3/D4、接口上怎么问D5、训练上凭什么信D6。下一站是全系列的技术制高点概率校准。你的模型已经会诚实报概率了——但出厂的它还差最后一道工序温度缩放。为什么第 5 篇那次运行会弹出温度钳制的警告confidence 和 answer_confidence 两套置信度该信哪个说 87% 就 87% 是——怎么度量、怎么修下一篇全部回答还带你自己动手把一个歪掉的分布掰直。附术语速查表第 6 版累加 9 条术语一句话解释详解在哪篇RLHF从人类反馈强化学习裁判学人类喜欢练出讨好本篇SFT监督微调拿人写的范文教模型话怎么说本篇奖励模型RM替人类给回答排座次的打分器本篇RLCDReinforcement LearningforCalibrated Decisions官方拼写 for 非 from本篇proper scoring rule严格正则评分规则说真话是唯一最优策略本篇Brier score(q−真值)²罚分平方级嘴硬错一次罚 0.98本篇log score−ln(q)赌对薄赏赌错重罚460 倍落差本篇RPS有序概率分只在 score 题生效错得远罚得重本篇GRPO 式策略组内相对表现互为基准省掉独立裁判本篇9第 1~5 版共 51 条见前五篇此处不重复。下篇预告概率校准——ECE 与温度缩放第 5 篇那次运行弹出的温度钳制警告、两套置信度 confidence 和 answer_confidence 的差别、LAYA 出厂 ECE 从 0.466 到 0.081 的来龙去脉——全系列技术制高点自己动手把歪掉的分布掰直。模型嘴里的 87%怎么变成真的 87%。下一篇见。读完有收获的话点赞、收藏、关注三连走起——十篇连载跟得住学得完。