「不生成文本没幻觉」这个等式成立吗Laya 刷屏后的技术抬杠【免费下载链接】laya项目地址: https://ai.gitcode.com/hf_mirrors/convaiinnovations/layaLaya 最近在技术社区刷屏了10.6k Star 的开源System 1 决策引擎单次前向 33 毫秒出决策宣称不生成文本、不靠提示词用 RLCDReinforcement Learning for Calibrated Decisions强化学习训练置信度 ECE 降到 0.081多项指标吊打闭源竞品 TypeSafe Jev。社区文章的标题一个比一个响——不做生成只做决策让 AI 应用快稳省33 毫秒出决策用不生成文本的方式消灭 AI 幻觉把决策模型从 API 里抢回来。其中最抓眼球、也最值得抬杠的是那句被反复引用的等式「不生成文本 没幻觉」。本文不打算站队只做一件事把这条论证链拆开对照仓库源码与自评数据看看它在哪一步成立、在哪一步偷换了概念。结论先放这儿——等式不成立但这不妨碍 Laya 是一个值得认真对待的工程方案。一、先拆论证Laya 究竟消灭了哪种幻觉Laya 的核心卖点在 README.md 开头一句话里写得明明白白It never generates text, so there is nothing to parse and nothing to hallucinate.翻译过来就是不生成文本 → 没有文本可解析 → 没有幻觉。这条论证链要成立前提是幻觉只有一种形态。但现实里我们把至少三种完全不同的故障都叫幻觉内容编造confabulation模型一本正经地输出不存在的事实、代码或引用格式/解析失败模型输出 JSON 结构损坏、少个括号、多个逗号下游解析器炸掉过度自信的误判模型给出一个答案概率报得很高但答案是错的。Laya 的架构确实从根上切掉了前两类。打开 rl_agent_api.py 看system_one()的实现输入是state questions输出直接是结构化结果——choice返回{choice, probabilities, confidence}score返回期望分值noul返回P(true)整个返回体里usage字段写着output_tokens: 0。它的确一个 token 都不生成。关键在于它怎么决策的。rl_common.py 里的build_sequence()展示了推理契约每个候选选项前面挂一个[MASK]标记整段序列[CLS] type question: instructions [SEP] [MASK] opt0 [MASK] opt1 ... [SEP] state [SEP]过一次双向编码器根模型是 ModernBERT-large28 层、hidden 1024见 encoder/config.json然后对每个[MASK]位置的隐状态打分、softmax 得到该题的选项分布。这就是非自回归一次前向、并行打分、无 token 流式输出。所以严格来说Laya 消灭的只是生成型幻觉——它不会编故事不会吐出坏 JSON。但这恰恰引出了真正的问题当模型把说错话换成选错项、报错概率时幻觉并没有消失只是换了个形态。二、打分环节的幻觉误判与过度自信如何度量决策模型不吐文字它的幻觉就变成了两件事误判选了错的选项和过度自信概率报得高但经常错。这两者都是可度量的而且 Laya 仓库里就存着度量结果。置信度校准的行业标准是 ECEExpected Calibration Error把预测按置信度分桶计算模型自报的概率与桶内实际准确率的平均偏差。ECE 越低说明90% 置信度的判断里真的约有 90% 是对的——这正是诚实的概率的操作性定义。仓库的 eval/ 目录下就有一组可靠性曲线图比如任务内评估的校准曲线仓库自评结果eval/results.md、eval/results.json给出的数字很有说服力也很有反差评估集题数accuracyECENLL任务内13 个任务族共 23,024 题230240.7530.030—零样本4 个训练外任务族共 2,400 题24000.6510.204—任务内 ECE 只有 0.030校准堪称优秀但换到训练没见过的任务上ECE 立刻跳到 0.204其中情感与评级sentiment and rating零样本 ECE 高达0.438——接近置信度与准确率基本脱钩。同一个引擎诚实与不诚实的分界线不是生成与否而是任务是否在训练分布之内。更扎心的是 README 的 Honest Limits 章节作者自己把底裤掀了自信地错在 Khmer高棉语上英文 checkpoint 打出0.000 准确率 0.952 平均置信度——模型完全错误且完全自信置信度门控在这种情况下救不了你act_probability没有信号act/escalate 头输出的自动化概率几乎对任何输入都读作 1.0其原始 logits 与正确性的 AUROC 只有0.30而基于归一化熵的confidence在同一批数据上 AUROC 达0.77见 rl_common.py 的confidence_from_probs置信度 1 − 归一化熵出厂即过度自信基础 checkpoint 原始 ECE 高达0.466按题型, 选项数逐桶拟合温度后降到0.081英文模型——README 白纸黑字写着 Ships over-confident: do this on your own data before trusting the probabilities。这三点说明一个残酷的事实Laya 的校准不是不生成文本白送的而是 RLCD 训练 后验温度拟合这两道工序挣来的。你部署时不做温度拟合拿到的就是一个 ECE 0.466 的过度自信模型——和生成式 LLM 报假 confidence没有本质区别。三、支持派的底气严格适当评分规则把诚实变成了最优策略既然要抬杠就得先把对面最强的论据摆出来。支持派的核心武器是 RLCD 的数学设计这也是 Laya 与普通分类器最本质的区别。普通分类器用交叉熵训练损失只要求赢家 logit 趋向无穷大模型自然越训越自信朴素强化学习给答对 1、答错 0的奖励期望奖励最大化同样会把概率推向 one-hot毁掉校准。RLCD 换了个奖励函数严格适当评分规则strictly proper scoring rule。看 rl_common.py 里的proper_reward()奖励是三个评分的组合——对数评分log score 球面评分spherical score 序数题专用的排序概率评分RPSr log_score w_sph * sph # log spherical r r - w_rps * rps * is_score # - ranked probability score (ordinal only)严格适当评分规则的性质是只有当模型报告真实分布 q p 时期望奖励才取得唯一最大值。报高、报低、报歪期望收益都更差。所以诚实地报概率不是道德约束而是策略最优——这在数学上把置信度从营销话术变成了可训练、可验证的资产。配套的还有工程细节推理时按temperature_by_options对 logits 做逐桶温度缩放见 rl_agent_config.json例如choice:2用 1.906、choice:11用 0.101、noul:2用 1.983——不同选项数的题校准需求完全不同这正是打分环节需要精细管理的活证据。加上单次前向 38.4ms p50eval/results.json、T4 上批量 103–332 题/秒、Apache 2.0 开源可本地部署支持派说比调一个 8B LLM 做路由排序划算太多这个论点是站得住的。社区里不做生成只做决策把决策模型从 API 里抢回来这类声音本质上都是同一个诉求高频、低延迟、可自托管的判别式决策不该再绑架在生成式 API 上。四、抬杠派的三记回击三个但是但把幻觉这顶帽子从生成模型头上摘下来扣到自己头上之前还有三个但是必须摆上桌。但是一零样本能力没有宣传的那么强。README 的 Honest Limits 写得很诚实Base checkpoints are near chance on typed-decisions zero-shot——基础英文 checkpoint 在 typed-decisions 基准上零样本准确率只有0.362低于多数类基线 0.461微调后的laya-typed-decisions才冲到 0.766。社区文章标题里的 0.766、ECE 0.081 都属于微调 拟合温度之后的成绩而 Laya 的定位官方表述是a fast base to specialise——一个需要针对业务微调的底座而非开箱即用的零样本决策引擎。宣传话术与 Honest Limits 之间的落差正是抬杠的最佳靶子。但是二置信度门控会被自信的错误击穿。支持派会说我们输出校准概率可以设阈值门控低置信度转人工。但前面已经列过证据Khmer 上 0.000 准确率配 0.952 置信度act_probabilityAUROC 0.30——门控只对校准良好的分布内数据有效对分布外或语种错配的场景形同虚设。更隐蔽的是noul布尔判断的毛病README 记载它可能被自己的选项标签false:/true:主导而不是被输入内容主导对明显正向的输入自信地返回否——这是彻头彻尾的决策幻觉只是它以概率形式出现容易被 ECE 曲线掩盖。但是三选项一多照样崩。Banking77 基准上Laya 在 77 个选项上只拿 0.425TypeSafe Jev 在 72 个选项上是 0.870。原因在 README.md 里写得很清楚所有选项共享固定的head_max_lentoken 预算英文 192、多语 25677 个标签平均每个只分到 3–4 个 token选项文本之间失去区分度。换句话说幻觉在 Laya 这里从编故事转移成了标签预算管理——你得手动调head_max_len、做 coarse-to-fine 分层决策或者干脆承认 50 选项的场景不是它的主场。问题没有消失只是换了个地方要你操心。五、结论等式不成立但方向值得跟进把三章证据收拢可以给这场抬杠画个句号不生成文本 没幻觉在严格语义上不成立。Laya 根除的是 confabulation 和解析失败这两类生成型幻觉而误判、过度自信、语种错配下的自信地错、标签空间坍缩这些决策型故障一个都不少只是从文字变成了概率分布需要你用 ECE、Brier、reliability diagram 去度量用温度拟合、置信度门控、任务内微调去管理。但决策不该绑架在生成式模型上这个方向完全成立。RLCD 用严格适当评分规则把诚实变成策略最优421M 参数 单次前向 33–39ms 的性价比、Apache 2.0 的本地可部署性让它成为 Agent 路由、工单分诊、内容安全等高频判别场景里值得认真评估的组件。如果要用 Laya记住仓库自带的四条生产纪律全部出自 Honest Limits门控用confidence而不是act_probability部署前按题型, 选项数在自有数据上重拟合温度noul出问题就改用双选项choice并写清楚选项描述选项超过 50 个就提head_max_len或拆分层决策。刷屏归刷屏公式归公式。这场抬杠的真正价值是逼我们把幻觉这个词拆成可度量的具体故障——无论你站在哪一派能做到这一点就已经比大多数 AI 营销话术前进了一步。【免费下载链接】laya项目地址: https://ai.gitcode.com/hf_mirrors/convaiinnovations/laya创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考