模型的「无效推理」终于有人治了:CaRL 教它该停就停

我最近有几次跟模型较劲的经历挺典型的。一个问题丢过去,模型没有直接说不会,而是开始哗哗输出推理过程——先分析、再拆解、最后给结论,每一步看起来都很专业。但细看下去,就发现它从一开始就走偏了,整个推理链是悬空的。说难听点,它在表演推理。

这种体验估计不少人都遇到过。大语言模型在处理超出自己能力范围的问题时,不会主动承认力有不逮,反而会生成一套看起来有模有样但实际内容空洞的推理。今天 arXiv 上这篇来自中科院信息工程研究所的新论文,正式把这个现象定义成了「无效推理」(futile reasoning),并提出了一套训练方法叫 CaRL。

论文先做了一个系统性的诊断分析。结论很直白:模型普遍存在「能力越界」,遇到搞不定的问题不会主动收手,而是选择硬推。而且任务越难,这个毛病越严重。更隐蔽的是,它给出的不是那种一眼能看穿的明显错误——论文管这叫「虚假推理」(specious reasoning),输出从表面上挑不出大毛病,但内里藏着隐蔽的错误。这种答案比直接答错更坑,因为它披着正确的外衣,要花好几倍的时间去拆穿它。

CaRL 的方法其实不复杂。两条线走:一条是通过奖励塑形(reward shaping),让模型知道「主动拒绝」比「硬编答案」更划算;另一条是事后拒绝增强(hindsight refusal augmentation),把模型已经失败的推理样本转成拒绝训练的监督信号。用大白话说就是:推了半天没推出来是吧?好,下次遇到这类问题直接说不会就行,不用死撑。

从实验数据看,CaRL 在减少无效推理上效果明显,而且在模型能力范围内的任务上没有掉精度。这点挺关键的——不能为了不让它胡说八道,就把它训成一个什么都不敢答的废物。关键是在「能答就答好、不能答就认」之间找到那条线。

作为一个经常跟各种模型打交道的人,这种「表演推理」几乎天天见。有时候写 prompt 做复杂任务拆解,模型给出一份推理 Plan,看着有板有眼,实际每一步都在胡扯。不花时间审一遍,根本不知道错在哪里。更头疼的是,推理算力花了,精力也赔进去了。所以看到这篇论文的时候,第一反应是:终于有人把这个事系统化地拎出来了。

不过也要泼点冷水。目前这还是论文阶段,具体的实验设置在什么基座模型上跑、消融实验怎么做、泛化到新任务上效果如何,都需要细看全文。而且「让模型主动拒绝」这件事,在产品层面就有两难——拒绝阈值调高了,该拒的不拒,无效推理照样漏网;调低了,模型什么都不肯答,体验直接崩。这个边界的调优,可能比训练本身还费劲。GitHub 仓库已经开了,代码和论文都可以翻。

相关链接:
- 论文地址:https://arxiv.org/abs/2607.29211
- GitHub 仓库:https://github.com/icip-cas/Knowing-When-to-Quit