Laya训练原理揭秘:RLCD如何用严格评分规则逼出诚实概率?REINFORCE与 TD(λ) 更新完整详解
Laya训练原理揭秘RLCD如何用严格评分规则逼出诚实概率REINFORCE与 TD(λ) 更新完整详解【免费下载链接】laya项目地址: https://ai.gitcode.com/hf_mirrors/convaiinnovations/layaLaya 是一个多语言、非自回归的 System 1 决策模型给它一段文本邮件、工单、JSON和若干带类型的问题它在单次前向传播约 33ms内返回带数学上校准的概率的答案。它的训练方法叫RLCDReinforcement Learning for Calibrated Decisions面向校准决策的强化学习——奖励函数采用严格 proper 评分规则模型想多拿分唯一的办法就是报告自己真实的信念。本文详解 RLCD 的评分规则、REINFORCE 更新与 TD(λ) 更新是怎么工作的并附上 Laya 概率校准的实测证据。1. Laya 是什么只输出概率的决策模型传统 LLM 做分类要生成文字再解析Laya 完全不走这条路每个选项各占一个[MASK]标记模型在每个标记位置给该选项打分再对这道题的所有选项做 softmax直接得到一份概率分布答案空间在请求时定义——新增一套业务 schema 无需重训一次前向传播同时回答所有问题10 问批量只需 72.3 msT4 GPU。结构上它是预训练双向编码器ModernBERT-large395M 从零训练的 2 层决策头总共 421M 参数。这套架构定义在 rl_common.py 的DecisionModel中。关键点Laya 不说出答案而是报出概率。整个训练系统的设计目标就是让这份概率报告尽可能诚实。2. 为什么需要诚实概率校准问题模型报 80% 不代表它真的对了 8 成 10。一个常见故障是模型明明在乱猜却报出 95% 的置信度——README 里就记录了 Laya 的英文检查点在 Khmer 文字上0.000 准确率却配 0.952 置信度的现象此时靠置信度门控根本救不了你。Laya 训练完的实测结果见 eval/results.md14 个任务族整体 ECE期望校准误差越低越好仅0.030意图路由任务 ECE 低至 0.009。上图左半部分是可靠性曲线蓝点几乎贴着灰色完美校准对角线说明模型报 0.6就大约对 0.6右半部分是风险-覆盖曲线AURC 0.083按置信度从高到低取答案错误率上升非常缓慢——概率真的可以用在路由和分流上。那么问题来了怎么让模型学会不撒谎答案在奖励函数里。3. RLCD 核心一严格 proper 评分规则什么是严格 proper严格 proper 评分规则有一个数学保证给定你对世界的真实信念唯一能最大化期望得分的报法就是照实报告这份信念。报虚高、报保守、报安全的中庸值期望分数都会更低。评分规则一旦 strict proper诚实就从道德要求变成了最优策略。Laya 的奖励由三部分构成实现见 rl_common.py 的proper_reward函数评分规则适用问题类型作用直觉Log score对数得分全部choice / score / noul重罚把正确答案概率压到接近 0——log(0.01) ≈ -4.6一次严重误判痛不欲生Spherical score球面得分全部权重 0.5惩罚概率分布整体与真实分布方向偏离鼓励分布形状贴合RPS排名概率得分仅有序 score 题权重 1.0基于 CDF 比较专治等级题上概率错位比如把 3 分的题报成 1 分以 noul是非题为例若真的真实概率是 70%报 70% 期望得分最高报 90% 或 50% 都会掉分。模型没有任何演技空间训练出来的概率分布只能越来越贴近真实。探索给 logits 加噪声RL 训练需要探索。Laya 的做法很克制在 logits 上叠加零均值高斯噪声再采样概率让模型尝试不同的报告但平均意义上不偏不倚——探索不会污染诚实的方向。4. RLCD 核心二REINFORCE 组基线GRPO 风格更新拿到奖励后权重怎么更新Laya 用的是经典REINFORCE策略梯度并加了一个关键改进——组均值基线GRPO 风格一组采样同一条数据同一状态 同一组问题采样一组概率报告组内算奖励每条报告各自按上节的 proper 评分规则打分减组均值策略梯度方向 (该条奖励 − 这组奖励的均值) × log 概率梯度。减掉组均值这个基线作用是把这道题整体容易/难的公共部分从梯度中剔除只保留这条报告比同组别的报告更好/更差的相对信号。好处是梯度方差小、不需要额外训一个价值网络这也是 GRPO 系方法的核心思想。另外训练里还藏了两个实用细节选项随机洗牌choice 题训练时每步打乱选项顺序防止模型记住第 2 个选项这种位置偏见act/escalate 决策头模型还输出自己处理 / 升级人工的动作概率答错成本在 rl_agent_config.json 里设为 3.0升级成本 0.5——训练会学会没把握就升级这本身就是概率诚实的一种体现。5. RLCD 核心三TD(λ) 更新处理多轮对话单条记录是 REINFORCE 用最终奖励回传即可但多轮对话是个序列决策同一个问题在对话第 1 轮、第 3 轮、第 5 轮看到不同长度的前缀各自要报一份概率。奖励怎么分摊到每个前缀Laya 用TD(λ)λ1.0把一段对话切成多个前缀切片配置 rl_agent_config.json 中max_prefixes 6从最后一个前缀结果已知目标就是真实结局往前递推G_t (1−λ)·V_{t1} λ·G_{t1}其中V_{t1}是模型对下一前缀自己报的概率λ1.0 时退化为蒙特卡洛回传每个前缀的软目标都被最终结果拉齐但递推路径保证了信息从后向前平滑传播。完整实现只有十几行在 rl_common.py 的td_lambda_targets函数里。它输出的软目标而非 0/1 标签会直接作为 proper 评分规则里的真值分布——每个前缀学的是在该信息量下诚实的概率应该长什么样。6. 训练成果零样本泛化与温度标定训练完成后的检查点存于仓库根目录model.safetensorsrl_agent_config.json 记录训练了 7313 步、约 2 小时、单卡。两个值得新手知道的点零样本也基本诚实完全没训过的任务族上 ECE 0.204可靠性曲线整体仍贴近对角线见下图说明诚实是 RLCD 塑造出来的通用行为而非任务内过拟合出厂略偏自信温度标定一下就好配置里按(题型, 选项数)分桶拟合了温度参数如choice:2桶 1.906、noul:2桶 1.983见 rl_agent_config.json把 ECE 从 0.466 压到 0.081。在自己的数据上复做一次温度拟合再信任它的概率。7. 总结三条设计一个诚实的决策器组件技术解决什么奖励函数Log Spherical RPS 严格 proper 评分让报真成为唯一最优策略策略更新REINFORCE 组均值基线GRPO 风格低方差地学会把分布对准真值序列任务TD(λ1.0) 前缀切片回传多轮对话中每轮前缀各自学会诚实推理输出每选项[MASK]打分 分桶温度缩放毫秒级拿到可直接用于路由的概率对新手来说Laya 最值得借鉴的思路只有一句话如果你要模型输出概率就别指望它自觉把奖励函数设计成只奖励诚实剩下的交给 REINFORCE。想深入阅读实现建议按 rl_common.py奖励与 TD 目标→ rl_agent_api.py推理与温度标定→ eval/results.md评测明细的顺序走一遍。【免费下载链接】laya项目地址: https://ai.gitcode.com/hf_mirrors/convaiinnovations/laya创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考