CATCH:以連續對抗訓練讓大模型的誠實行為可遷移

Published · AI Daily — AI-assisted deep research, methodology & disclosure

大型語言模型越來越常用於對誠實性要求很高的場景,但即使經過對齊訓練,它們仍會輸出與既有知識相矛盾、或得不到上下文支持的說法。這篇論文提出 CATCH(Continuous Adversarial Training for Consistent Honesty),借鑑讓模型穩健拒絕有害請求的方法:訓練模型靠近誠實回答、遠離不誠實回答,同時保持原有能力。作者在 Llama-3.3-70B-Instruct 與 Qwen3-3.6-27B 上評估。僅用幾百條由自我報告場景建構的訓練目標,CATCH 學到的誠實行為就能穩健泛化到不同 benchmark:在 MASK 上持續降低壓力下的不誠實,在多智能體遊戲 Among Us 中增加坦白,在 AuditBench 上提高對模型隱藏行為的發現率。結果顯示,CATCH 在提升誠實性上優於提示詞與監督微調,與最先進的誠實性激活引導(activation steering)相當,並且憑藉新穎的效用資料選擇,在保持模型實用性方面超越了誠實性引導。

大语言模型正被放进越来越多对诚实性要求很高的场景里。可是,哪怕做过对齐训练,这些模型仍然会说出和自己已有知识相矛盾的话,或者给出上下文里根本找不到依据的断言。这类问题很难靠一条提示词压住,一旦遇到压力、诱导或者多轮博弈,模型就容易松口。这篇论文要解决的,就是如何让模型的诚实行为更稳固,并且能跨场景迁移,而不是只在训练见过的那一类题目上有效。作者提出了 CATCH,全称 Continuous Adversarial Training for Consistent Honesty,即面向一致诚实性的连续对抗训练。

它的灵感来自一种原本用于让模型稳健拒绝有害请求的方法。核心贡献有三点:第一,把原本用于安全拒答的对抗训练思路搬到诚实性这个新目标上;第二,证明只需几百个训练目标就能学到可迁移的诚实行为;第三,提出一种新的效用数据选择方式,让模型在变诚实的同时不丢能力。在方法上,CATCH 的训练目标有两个方向:把模型拉向诚实回答,同时把模型推离不诚实回答。这里的"连续"指对抗扰动作用在模型的连续表示空间上,而不是在离散的文字提示上去搜索攻击。这一点继承自拒绝有害查询的那类方法。

在这类训练里,攻击者先在表示空间中找到最能诱发不诚实输出的扰动,模型再学会在这种扰动下依然给出诚实答案,所以它对压力的抵抗力比普通微调更强。训练数据来自自我报告场景:模型被置于需要如实陈述自身行为、知识或所处情境的情形,每个场景都配有一个诚实目标和一个不诚实目标。整个训练只用了数百条这样的目标,规模很小。为了不损伤模型能力,作者还专门设计了一套效用数据,在训练中与诚实目标一起使用,用来约束模型不要偏离原有的通用能力。论文强调,正是这个新颖的效用数据选择,让 CATCH 在保持实用性上胜过诚实性激活引导。

实验在 Llama-3.3-70B-Instruct 和 Qwen3-3.6-27B 两种架构上进行,并且刻意选了三个性质不同的 benchmark 来检验迁移能力。第一个是 MASK,它测量模型在压力下是否会说出与自己所信相悖的话,CATCH 在其上持续降低了不诚实的比例。第二个是多智能体游戏 Among Us,这里的衡量指标是模型是否愿意坦白,CATCH 提高了坦白的次数。第三个是 AuditBench,它考察审计者能否发现模型的隐藏行为,CATCH 提高了这些隐藏行为的发现率。三个任务的形式与训练数据差别很大,却都得到了改善,这说明学到的不是某个题型的套路,而是更一般的诚实倾向。

在对比方面,CATCH 在提升诚实性上优于提示词方法和监督微调,与最先进的诚实性激活引导效果相当。差别出现在效用上:诚实性引导会对模型能力造成更多损失,而 CATCH 在这方面表现更好。摘要没有给出具体数值,这里不做推测。这项工作的意义首先在于数据效率。几百条目标就能换来跨基准的泛化,意味着开源社区和中小团队不需要昂贵的大规模标注,就有可能给自己的模型加上一层更可靠的诚实性保障。其次,它提供了一条与激活引导并行的路线:引导是在推理时干预,CATCH 是把行为训进权重里,两者效果相当,但后者在能力保持上更有优势,对想要部署稳定模型的工业场景更有吸引力。再者,Among Us 和 AuditBench 这类评测说明,诚实性不只是回答事实问题,还关系到多智能体协作中的坦白,以及外部审计能否发现模型隐藏的行为,这与 AI 安全监督直接相关。对后续研究来说,把安全拒答领域的对抗训练迁移到诚实性上,也提示了一个方向:其他对齐目标是否同样可以借助连续对抗训练获得稳健性,值得继续检验。当然,目前只在两种模型架构上验证,更多规模和模型家族上的表现仍需观察。

Sources

FAQ

CATCH 是什么?它想解决大模型的什么问题?

CATCH 是面向一致诚实性的连续对抗训练,借鉴让模型稳健拒绝有害请求的方法。它训练大语言模型靠近诚实回答、远离不诚实回答,同时保持原有能力,让诚实行为能够跨场景迁移,而不只在训练题型上有效。

为什么 CATCH 对大模型的诚实性很重要?

大模型即使经过对齐训练,仍会说出与自身知识矛盾或缺乏依据的话。CATCH 只用几百条训练目标,就在 MASK、Among Us 和 AuditBench 上取得改善,诚实性优于提示词与监督微调,与先进的激活引导相当,且更保住实用性。

使用 CATCH 之前还需要关注什么?

论文目前只在 Llama-3.3-70B-Instruct 和 Qwen3-3.6-27B 两种模型上验证,文章未给出具体数值。后续需关注更多规模和模型家族上的表现,以及连续对抗训练能否让其他对齐目标同样获得稳健性。