专栏名称: 深度学习与图网络
关注图网络、图表示学习,最近顶会顶刊动态以及机器学习基本方法,包括无监督学习、半监督学习、弱监督学习、元学习等
目录
相关文章推荐
白鲸出海  ·  多款AI产品投放超级碗广告,TikTok ... ·  昨天  
白鲸出海  ·  Le ... ·  昨天  
中油工程建设  ·  公司与大庆建设公司签署合作框架协议 ·  3 天前  
阿里开发者  ·  微调碾压RAG?大模型意图识别工程化实践 ·  3 天前  
51好读  ›  专栏  ›  深度学习与图网络

大模型边推理边纠错,有可能做到吗?这是ICML爆火的演讲

深度学习与图网络  · 公众号  ·  · 2024-09-10 11:02

正文

AIxiv专栏是机器之心发布学术、技术内容的栏目。过去数年,机器之心AIxiv专栏接收报道了2000多篇内容,覆盖全球各大高校与企业的顶级实验室,有效促进了学术交流与传播。如果您有优秀的工作想要分享,欢迎投稿或者联系报道。 投稿邮箱:[email protected][email protected]

即便是最强大的语言模型(LLM),仍会偶尔出现推理错误。除了通过提示词让模型进行不太可靠的多轮自我纠错外,有没有更系统的方法解决这一问题呢?


来自 Meta FAIR、CMU 和 MBZUAI 的叶添、徐子诚、李远志、朱泽园团队在最新的 arXiv 论文《语言模型物理学 Part 2.2:如何从错误中学习》中,通过可控实验,探索了让模型 「边推理边纠错」 的可能性。


他们在预训练中加入大量「错误的推理」和「错误的纠正」,展示了这类数据可以提高语言模型的推理准确性(无需提示词,无需多轮对话)。文章还深入探讨了许多细节,例如(1)这种方法与 beam search 的区别,(2)如何准备此类数据,(3)是否需要对错误进行掩码,(4)所需的错误数量,(5)此类数据是否可用于微调等。


图 1


作者首先展示了一个 GPT-4o 通过提示词和多轮对话进行纠错的示例(图 2),可以看到成功率不高,而且需要很长的对话才能完成纠错。那么,如果模型最终能纠错,为什么不在第一次犯错时「立即收回并改正」呢?


图 2:GPT-4o 通过提示词和多轮对话进行纠错的实例


为此,作者使用探针(probing)方法研究模型的内部工作机制。通过 Part 2.1 建立的 iGSM 数据集,作者发现当模型犯错后,内部参数常常表现出 很后悔 的状态,也就是说,模型可能已经知道自己犯了错,但「覆水难收」。


那么, 能否简单地让模型「后悔即重试(retry upon regret)」 ?即,通过额外训练(如微调)得到一个检测错误的模型,只要该模型判定当前步骤有错,就立即退格回到上一步骤的末尾,再重新生成呢?


如图 3 所示,作者进行了横向对比。即便错误识别率超过 99%,这种重试方法在 iGSM 数据集上也只能将推理正确率提高 2%(虽然比 beam search 好)。作者总结了此方法的三个不足。


首先,对正确率提高有限,毕竟退格后,模型依然是随机生成,并没有用高级的方法改错。其次,对错误识别率的要求很高(同等条件下,需要 100% 错误识别率才能将推理正确率提高 8%,但这太不现实)。最重要的是,这并不能降低模型生成文本的时间复杂度,因为依然需要一次次地重新生成。


图 3


接下来,作者更换方法,在预训练数据中 加入大量的错误和纠正,例如「A=>B,哦我说错了,应该是 A=>C」 。那么,这能否提升模型的推理正确率呢?乍一看,这似乎不合理,因为增加错误的同时,模型岂不是被迫学习说错误的话(即 A=>B)?是否需要将错误部分(譬如「A=>B,哦我说错了,应该是」这几个字)通过掩码(label masking)从训练标签中删除?


答案是不需要。依然通过 iGSM 数据集,作者用控制变量法,横向对比了诸多参数后得出若干结论(图 4)。


例如,即便预训练数据中的每道题目有 50% 的步骤包含错误,模型在测试阶段并不会刻意犯错(如使用 temp=0 生成时)。背后的原因与语言模型对语法的纠错能力有关,具体可参见作者的另一篇 Part 1 论文,因此不需要对错误进行掩码。更神奇的是,在合理范围内,训练集里的错误其实越多越好,例如包含 50% 错误的数据,比 10% 错误的数据在 iGSM 数据集上还能再提升推理正确率 4 个百分点。


图 4


接下来,作者研究了包含 「错误和纠正」的数据能否作为微调数据使用 。这是个重要问题,因为现有的开源大模型可能并不具备很好的纠错能力。如果我们制备了完美的错误纠正数据集,能否通过少量参数微调(如使用 LoRA 方法)让现有模型学会纠错?


答案是否定的。如图 5 所示,作者尝试了多种 LoRA 参数,发现最多只能将推理正确率从 78% 提高到 83%—— 甚至在大多数情况下,如 LoRA 的 rank 较小时,模型的正确率远低于 78%。这说明 「纠正错误」是一个高级能力 ,与模型的正常推理不同,需要大量参数变化才能实现。(这也合理,毕竟如果修改少量参数就能完成纠错,那么让模型「后悔即重试(图 3)」恐怕早就能提高推理正确率了。)


相对而言, 「错误识别」并不是高级能力 ,可以通过微量的 LoRA 微调学会。此外,通过 beam search 模型也能进行一定程度的重试,但对正确率的提升几乎为零。综合以上,作者认为,如果能制备优质的「错误和纠正」数据,应将此类数据放入预训练数据集中,而不是等到微调时再使用。

图 5


最后,作者研究了在实际生活中如何制备「错误和纠正」数据。目前为止,文章都在 iGSM 数据集上进行可控实验,由于此数据集中的数学题满足统一格式,可以随意删减拼接,制作无限量的错误和纠正数据。这太理想化了。现实生活中,有没有办法在 不要求理解题目的基础上生成一些「假错误」


作者对此做了一些初步尝试。例如,通过将解题步骤中靠后的第 Y 步骤挪到前面作为第 X 步的假错误,然后用原本的第 X 步作为纠正。这一方法在 iGSM 数据集上也能显著提升正确率(从 78% 到 91%),如图 6 所示。







请到「今天看啥」查看全文