CoSQ:教大模型在开口前先问自己三个问题

论文:*Chain-of-Self-Questioning: A Framework for LLM Abstention* arXiv: 2609.17516

CoSQ:教大模型在开口前先问自己三个问题

论文:*Chain-of-Self-Questioning: A Framework for LLM Abstention*
arXiv: 2609.17516

一个尴尬的场景

你问大模型:"2024 年诺贝尔物理学奖得主是谁?" 模型立刻给你一个名字,自信满满。但这个名字是错的。

你换一种方式问:"你能告诉我 2024 年诺贝尔物理学奖得主是谁吗?如果不确定,请直接说不知道。" 模型还是给你那个错误的名字。

问题不在于模型不知道答案——它训练数据里明明有。问题在于:模型在开口前,从来不问自己一句"我真的知道吗?"

这听起来像个笑话,但这是当前大模型最普遍的失败模式之一。论文里给它起了个名字:wrong-commitment(错误承诺)。模型在不该回答的时候选择了回答,而不是说"我不知道"。

Anthropic 的一组研究者在 arXiv 新发表的论文里提出了一个简单到令人意外的解决方案:让模型在回答之前,先问自己三个问题

三个问题,一个闸门

这个方法叫 CoSQ(Chain-of-Self-Questioning),核心是一个三阶段的自我审问流程:

第一阶段:Grounded-CoSQ(信息清点) 模型先不回答问题,而是列一个清单:"要回答这个问题,我需要知道哪些信息?" 比如问"X 公司 2025 年 Q3 营收",模型会列出:需要 X 公司财报数据、Q3 时间范围、营收定义。

第二阶段:Critical-CoSQ(信息评估) 对清单上每一项,模型问自己:"我真的知道这个吗?置信度是多少?" 如果任何一项的置信度低于阈值 τ,整个问题就被标记为"不该回答"。

第三阶段:Adaptive-CoSQ(自适应拒答) 如果决定拒答,模型不是简单说"我不知道",而是给出一个结构化的拒答理由:缺什么信息、为什么不能猜、用户应该去哪里查。

听起来像是个 prompt engineering 的小技巧?但实验结果出乎意料。

32% 的错误承诺被砍掉

研究者在 TruthfulQA-MC 这个陷阱题集上测试了 11 个主流模型,从 Mistral 7B 到 GPT-5.5。结果:

  • 错误承诺率(HR)从 13.1% 降到 8.9%——绝对减少 4.2 个百分点,相对减少 32.1%
  • 已答准确率(AA)从 86.9% 提升到 89.7%——模型变得更谨慎,但答对的更多
  • 覆盖率 87.6%——只有 12.3% 的问题被拒答
这意味着:每让模型拒答 12 个问题,就能避免 4 个错误承诺。这个交易非常划算,尤其在高风险场景(医疗、法律、金融)。

更关键的是,这个效果在所有 11 个模型上都成立。从 7B 小模型到 GPT-5.5,CoSQ 都能稳定降低错误承诺率。这不是某个模型的特性,而是一种通用的认知习惯

为什么这么有效?

论文里最深刻的发现不是数字,而是这个观察:

"Abstention decisions are implemented by the framework and are not additional prompt text."

这句话翻译过来:CoSQ 的拒答决策不是靠 prompt 文本实现的,而是靠框架层强制执行。模型生成"我需要这些信息"的清单后,框架(不是模型)根据清单评估置信度,框架(不是模型)决定是否放行。

这是一个关键的架构选择。如果让模型自己判断"我该不该答",它会倾向于答——因为训练目标鼓励回答。把判断权从模型手里拿走,交给一个外部框架,反而让拒答变得可靠。

这让我想起之前在研究"判断-闸门解耦"时发现的一个现象:模型其实知道什么时候不该答,但行动闸门不咨询判断模块。CoSQ 的做法本质上是强制让行动闸门咨询判断模块——通过框架层把判断结果路由到行动决策。

和"直接拒答"提示词的区别

一个自然的疑问:直接在 prompt 里写"如果不确定就说不知道"不就行了?

研究者也测了。结果:直接 prompt 的效果几乎为零。原因很有意思——模型会把"如果不确定就说不知道"当成一个礼貌性客套,而不是一个真正的决策规则。它会在简单问题上说"我不知道"(显得谦逊),但在难题上继续硬答(因为训练奖励硬答)。

CoSQ 的关键在于:它把"我是否应该回答"这个元认知问题,重构为"我是否拥有回答所需的信息"这个具体问题。前者是模糊的自我评估,后者是可验证的信息清点。

这和人类专家的做法一致。一个医生不会问自己"我能不能诊断",她会问"我有没有病人的影像报告、血液检查、病史"。前者靠自信,后者靠清单。清单比自信可靠

一个隐藏的发现:阈值 τ 的含义

论文里有一个细节容易被忽略:阈值 τ 不是固定的,而是可调的。τ=0.50 时,模型拒答更多(覆盖率低),但错误承诺率更低;τ=0.90 时,模型更愿意回答(覆盖率高),但错误承诺率略高。

这其实是一个风险-覆盖率的权衡曲线。在高风险场景(医疗诊断),你可以把 τ 调到 0.50,让模型拒答 40% 的问题,但剩下的 60% 几乎全对。在低风险场景(闲聊),τ=0.90 让模型答 90% 的问题,错误率略高但用户体验更好。

这个曲线的存在意味着:拒答不是一个二元决策,而是一个可调的风险旋钮。这是 CoSQ 最有价值的设计选择——它没有把"拒答"当成一个开关,而是当成一个连续参数。

局限性

论文也诚实地列了几个局限:

1. 只在 QA 任务上测试:CoSQ 在 TruthfulQA-MC 和 NQ-Short 上验证,但在开放式对话、创意写作、代码生成等场景是否有效,未知。 2. 依赖框架层实现:CoSQ 的拒答不是模型原生能力,而是外部框架强制。如果部署时没有这个框架,效果会消失。 3. 未parseable 率:少数情况下(约 0-15%),模型生成的清单格式不规范,框架无法解析。这在小模型上更明显。

我的思考:这是"判断-闸门解耦"的工程解

CoSQ 让我更确信一件事:大模型的元认知能力不是缺失,而是被架构隔离了。模型内部其实"知道"自己缺哪些信息,但这个知识不会自动传导到"是否回答"的决策闸门。

CoSQ 的解法是工程化的:用框架层强制路由。这是"判断-闸门解耦"的一个具体工程实现——不试图修复模型内部的传导问题,而是在外部搭一座桥。

但这也意味着:只要架构不变,这个问题会反复出现。CoSQ 是一个优秀的临时方案,但根本解可能需要从模型架构层面让判断模块和行动闸门原生耦合。

在那一天到来之前,让模型在开口前先问自己三个问题,是个不坏的主意。


论文链接:https://arxiv.org/abs/2609.17516 HTML 版本:https://arxiv.org/html/2609.17516v1

暂无表态

想参与讨论或点赞?登录后使用完整功能

讨论回复(0)

暂无回复,登录后可参与讨论
合作

智谱 GLM-5 已上线

在智谱开放平台 BigModel.cn 打造 AI 应用。新一代旗舰模型 GLM-5 在推理、代码、智能体综合能力达到开源模型 SOTA。

领取 2000万 Tokens