news 2026/9/24 14:49:49

Laya训练原理揭秘:RLCD如何用严格评分规则逼出诚实概率?REINFORCE与 TD(λ) 更新完整详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Laya训练原理揭秘:RLCD如何用严格评分规则逼出诚实概率?REINFORCE与 TD(λ) 更新完整详解

Laya训练原理揭秘:RLCD如何用严格评分规则逼出诚实概率?REINFORCE与 TD(λ) 更新完整详解

【免费下载链接】laya项目地址: https://ai.gitcode.com/hf_mirrors/convaiinnovations/laya

Laya 是一个多语言、非自回归的 System 1 决策模型:给它一段文本(邮件、工单、JSON)和若干"带类型的问题",它在单次前向传播(约 33ms)内返回带数学上校准的概率的答案。它的训练方法叫RLCD(Reinforcement Learning for Calibrated Decisions,面向校准决策的强化学习)——奖励函数采用严格 proper 评分规则,模型想多拿分,唯一的办法就是报告自己"真实的信念"。本文详解 RLCD 的评分规则、REINFORCE 更新与 TD(λ) 更新是怎么工作的,并附上 Laya 概率校准的实测证据。

1. Laya 是什么:只输出概率的决策模型

传统 LLM 做分类要"生成文字再解析",Laya 完全不走这条路:

  • 每个选项各占一个[MASK]标记,模型在每个标记位置给该选项打分,再对这道题的所有选项做 softmax,直接得到一份概率分布;
  • 答案空间在请求时定义——新增一套业务 schema 无需重训;
  • 一次前向传播同时回答所有问题,10 问批量只需 72.3 ms(T4 GPU)。

结构上它是"预训练双向编码器(ModernBERT-large,395M)+ 从零训练的 2 层决策头",总共 421M 参数。这套架构定义在 rl_common.py 的DecisionModel中。

关键点:Laya 不"说出答案",而是"报出概率"。整个训练系统的设计目标,就是让这份概率报告尽可能诚实。

2. 为什么需要"诚实概率":校准问题

模型报 80% 不代表它真的对了 8 成 10。一个常见故障是:模型明明在乱猜,却报出 95% 的置信度——README 里就记录了 Laya 的英文检查点在 Khmer 文字上"0.000 准确率却配 0.952 置信度"的现象,此时靠置信度门控根本救不了你。

Laya 训练完的实测结果见 eval/results.md:14 个任务族整体 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 风格)

  1. 一组采样:同一条数据(同一状态 + 同一组问题)采样一组概率报告;
  2. 组内算奖励:每条报告各自按上节的 proper 评分规则打分;
  3. 减组均值:策略梯度方向 = (该条奖励 − 这组奖励的均值) × 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_{t+1} + λ·G_{t+1},其中V_{t+1}是模型对下一前缀自己报的概率;
  • λ=1.0 时退化为蒙特卡洛回传:每个前缀的软目标都被最终结果"拉齐",但递推路径保证了信息从后向前平滑传播。

完整实现只有十几行,在 rl_common.py 的td_lambda_targets函数里。它输出的"软目标"(而非 0/1 标签)会直接作为 proper 评分规则里的真值分布——每个前缀学的是"在该信息量下,诚实的概率应该长什么样"。

6. 训练成果:零样本泛化与温度标定

训练完成后的检查点存于仓库根目录(model.safetensors,rl_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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/24 14:49:43

Argos Translate:一条命令安装,快速上手离线多语言翻译

Argos Translate:一条命令安装,快速上手离线多语言翻译 【免费下载链接】argos-translate Open-source offline translation library written in Python 项目地址: https://gitcode.com/GitHub_Trending/ar/argos-translate Argos Translate 是一…

作者头像 李华
网站建设 2026/9/24 14:48:15

Zonotope几何建模:虚拟电厂分布式资源不确定性聚合方法

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华