科学家提出大模型自我纠错链机制,有望提高对数学推理问题的精度
科学家提出大模型自我纠错链机制,有望提高对数学推理问题的精度
大模型(诸如 ChatGPT、GPT-4 等)被视为通往通用人工智能征途上的关键前沿突破之一。然而,目前的大模型在逻辑推理方面的能力存在明显不足。
目前,这些大模型的底层机制是 Next Token Prediction,即在回答问题时,大模型基于数据关联性来预测并输出下一个 token 直到结束。
但这种模式类似于人类的快思考,完全没有反思和自我纠错的能力。因此智能化程度偏低,难以处理需要深入推理的问题,比如复杂的数学问题。
让大模型拥有自我纠错的能力
为了克服上述局限性并提高大模型的逻辑推理能力,李志锋博士团队与合作者提出了一种自我纠错链机制(Chain of Self-Correction)。
让大模型在回答问题时,能建立一个内部的自我纠错链路,来验证和纠错拟输出的回答。
图 | 李志锋(来源:李志锋)
将这种机制将反思和自我纠错能力嵌入到大模型中,使其能显著提高对于复杂数学推理问题的回答精度。
这个新算法在国际上最大最有挑战性的数学问题评测集 Math 上取得了 53.5% 的回答正确率(基于开源的 34B 的 Codellama 底座来实现的),超过了 OpenAI 的 ChatGPT(35.5%)、GPT-4(42.5%)、GPT-4(PAL)(51.8%)、GPT-4V(52.9%)和谷歌的 Gemini-1.0 Pro(32.6%)、Gemini-1.0 Ultra(53.2%)等知名的闭源大模型。
值得一提的是,这个新算法的推理是基于零样本的方式进行的,无需示例演示。
这种自我纠错的机制代表了一种更高级的人类智能,它不仅对大模型的智能提升有很大帮助,而且对于其他生成式 AI(比如文生图、文生视频、从文本到语音等)也是有启示意义的。
众所周知,除非用更强的大模型来构建训练数据,否则用大模型本身所构建的训练数据来训练自己难以显著提升性能。
但是在该研究中发现,这种自我纠错链机制能衍生出一种有趣的“数据飞轮机制”。
让大模型用自我纠错链机制构建这种带自我纠错链的训练数据,并加入训练集来训练自己,能有效并更加快捷地提升性能。
日前,相关论文以《将自我纠错作为固有能力嵌入大模型以增强数学推理能力》(Embedding Self-Correction as an InherentAbilityin Large Language Models for Enhanced Mathematical Reasoning)为题发表在预印本网站arXiv上 [1]。
图 | 自我纠错链的工作流程(来源:arXiv)
自我纠错链机制的工作原理
自我纠错链机制类似于人类的慢思考过程,它能够在模型回答问题之前促使其进行深思熟虑,并创建一个内部自我纠正链,逐步验证和纠正原始答案,从而有助于解决复杂的数学推理问题。
众所周知,数学是人工智能的试金石之一。为了从根本上提升大模型的推理能力,他们首先着眼于大模型推理中数学推理这一基石任务。
自我纠错链机制由一系列自我纠错阶段构成,主要是分成两个步骤——验证和修正。
具体流程如下:
给定问题 q 时,大模型首先生成代码程序 p,然后通过 Python 解释器执行程序 p 以产生输出 o。
接着,大模型分析输出并生成包含改进建议的验证内容 v,确保程序 p 及其输出 o 与问题 q 保持一致。
基于这些验证内容,自我纠错链机制得出结论 c,以改进程序 p 或生成最终答案。
这一过程不断重复,形成答案序列 povcpovc……povc。他们利用 GPT-4 生成基于自我纠错链的训练数据,并通过有监督的微调方法,将这一能力内化为大模型的内在机制。
但是,在验证的过程 v 中,研究人员以简单的验证机制来进行自我验证,比如,“请验证生成的答案是否有误?”
但这种方法对提高大模型的推理能力帮助有限,可能是因为简单的验证指令难以引导大模型进行有效的自我验证。
大模型本身不具备反思和自我纠错的能力,因此应该想办法教会大模型如何自我纠错。
最终,该课题组提出了一种改进的自我纠错链机制。在构造训练数据时,采用了 povcpovc……povc 的模式,并设计了一种包含详细指令的验证过程 v。
这一过程包括两个步骤:
首先,让大模型判断生成的程序代码 p 是否与问题 q 一致,例如检查变量及其关系。
其次,让大模型判断代码运行结果 o 是否满足问题 q 的要求,例如检查数值的合理性。
换句话说,他们把一个很抽象的检查过程转换成一个具象的、大模型容易理解并执行的过程。
通过这种详细指令的验证过程,研究人员成功地“教会”了大模型进行自我验证。
在开源的 34B 参数规模的 Code Llama 模型的实验表明,通过监督式微调训练,该模型在数学评测集上的表现甚至超过了 GPT-4 等知名的闭源模型,且不依赖于任何指令提示。
举例来说,题目要计算某个圆的周长或者半径,但是大模型计算的初步结果却是负的,这种情况属于计算结果与题意不符合。经过优化后,显著提升了效果。
这一成果不仅展示了自我纠错链机制的潜力,也为大模型的未来发展开辟了新的可能性。
然而他们并未止步于此,而是进一步思考改进空间。
鉴于该课题组此前用 GPT-4 构建自我纠错链的训练数据,该课题组开始考虑是否可以用他们自己训练的模型生成自我纠错链数据,来实现自我提升。
基于这一思路,研究人员利用 GPT-4 生成的少量训练数据,在 34B 规模的开源 CodeLlama 底座模型上训练了一个种子模型,再用该种子模型生成大量训练数据进行自我提升。
在多个 CodeLlama 底座模型的对比实验显示,实验效果均有显著提升,充分证明了该思路的可行性。
综合上述策略,他们最终提出了两阶段的新模型,如下图所示,这个两阶段的新模型在 Math 评测集上取得了非常优异的效果,超过了 GPT-4 等知名的闭源模型。
图丨两阶段训练:第一阶段(a)用 GPT-4 构建的种子数据来训练种子模型,第二阶段(b)就进入数据飞轮,自己生成数据来训练自己(来源:arXiv)
尽管此前已有一些关于大模型自我纠错的相关研究,但在开源文献中,还没有看到任何工作能够成功将自我纠错能力内化为大模型的一种固有能力,并且取得显著效果。
自我纠错机制的应用空间广阔
反思和自我纠错能力意味着,AI 可以在生成内容的过程中识别自身的不足、发现错误并进行调整,从而提升其生成内容的质量、可靠性和创造性,这种能力有望带来潜在的应用价值。
比如,自我纠错链机制能够帮助大模型在解决数学问题,帮助生成更准确、更可靠的代码,确保文档解读的准确性。
未来,具有反思和自我纠错能力的大模型有更广阔的应用前景。
反思与自我纠错能力是一种更高级的人类智能,不仅对大模型至关重要,对其他生成式 AI(如文本生成图像 、文本生成视频、文本生成语音等)也具有重要意义。
这一能力能显著提升生成式 AI 的内容质量、准确性和创造力。在不久的将来,有可能研发出具有反思和自我纠错能力的多模态生成式大模型。
该课题组对自我纠错链机制在大模型中的未来应用充满期待,已有一些初步的想法,主要涵盖以下几个方向:
第一,扩展研究领域:该团队近期正在积极探索如何将反思和自我纠错能力嵌入到更多生成式 AI 模型中,比如文本生成图像、文本生成语音等,这些研究正在推进中,已取得初步进展。
研究人员期待在不久的将来,能研发出一个具有初步反思和自我纠错能力的多模态生成式大模型。
第二,扩展应用领域:该课题组研发这种机制的目的绝对不仅仅是为了单纯提高大语言模型在数学问题上的回答精度,他们只是想通过数学问题(公认的人工智能的试金石之一)来初步验证这种机制的有效性,这只是小试牛刀。
在未来,研究人员计划将自我纠错链机制推广应用到数学以外的更多应用领域,比如金融分析、法律、医疗、科学研究,以及任何需要复杂推理和纠错能力的应用场景中。这些领域中,准确性和逻辑一致性尤为重要,自我纠错链的引入有望显著提高任务执行的可靠性和效率。
该团队期待与更广泛的研究社区合作,共同推动自我纠错链机制的发展,并探索其在 AI 领域的多方面应用。