在LLM的研究中,改进LLMs的推理能力和减少幻觉内容一直是诸多研究者为之献祭GPU和头发的重大问题。近日,中国的一群青年才俊提出了内部一致性和自我反馈的理论框架,为大模型的推理问题研究作出了贡献。话不多说,就让我们一起来赏鉴这篇大作吧。
论文标题:
Internal Consistency and Self-Feedback in Large Language Models: A Survey
论文链接:
https://arxiv.org/pdf/2407.14507
为什么要做这项研究?
大型语言模型(LLMs)在自然语言处理(NLP)领域取得了显著进展,展示了接近人类基础智能的能力。然而,这些模型仍然面临许多挑战,其中最主要的是幻觉问题、缺乏推理和过度自信。
▲AI现存的问题和例子
研究团队将“内部一致性”(Internal Consistency)作为核心挑战之一。具体而言,即使是像GPT-4这样牛叉的语言模型,对于相同的查询也可能生成不一致的响应。内部不一致性的根源在于解码过程中采用的简单随机采样方法(如Top-k、Top-p、beam search等),以及在潜在层中特定注意力头与响应忠实性之间的关联。
▲都是GPT4,答案咋就不一样呢
模型内部的不一致性问题与模型缺乏推理能力和产生幻觉内容密切相关。为了解决这些问题,研究者们提出了一堆前缀为“Self-”的方法,如Self-Consistency、Self-Improve和Self-Refine,这些方法共同点是让LLMs自我评估和更新,以缓解存在的问题。然而,现有研究缺乏一个统一的视角来总结这些工作,尤其是它们背后的动机。因此,本研究旨在通过提出内部一致性的理论框架,为这些现象提供统一的解释,并介绍一种有效的自我反馈框架,以挖掘和提升LLMs的内部一致性,从而提升其推理能力和减少幻觉内容。
这项研究是如何展开的?
正片开始!
先给大家来个省流版,这项研究的研究步骤可以简要介绍如下:
-
内部一致性(Internal Consistency)框架:提出了一个理论框架,用于解释大型语言模型(LLMs)在生成文本时出现的推理不足和幻觉内容等问题。评估LLMs的潜在层、解码层和响应层之间的一致性,通过采样方法进行分析。
-
自我反馈(Self-Feedback)框架:自我反馈框架包括自我评估和自我更新两个模块。自我评估模块用于捕捉内部一致性信号,检查模型的响应和内部状态。自我更新模块利用自我评估捕获的信号来增强模型的响应或模型本身,以提升推理能力和减少幻觉。
-
现有研究分类与评估:系统地根据任务和研究方向对现有研究进行分类。总结了相关的评估方法。
-
更进一步的观点与假设:提出了几个核心观点和假设,如“内部一致性的沙漏式演化”、“一致性几乎等同于正确性”的假设,以及“潜在与显式推理的矛盾”。深入探讨了这些观点在LLMs内部一致性和自我反馈机制中的作用。
-
未来研究方向:展望了未来可能的研究方向。
▲团队的研究过程
第一道硬菜:内部一致性
内部一致性是评估LLMs在理解、推理和生成文本时能否保持其内部各层(如隐层、解码层和响应层)之间的一致性,就是响应一致性、解码一致性和延迟一致性。
▲三种一致性示意图
▲沙漏结构的内部一致性的演变
-
具体而言,研究团队在内部一致性上关注以下几个方面:
-
连贯性评估:内部一致性评估LLMs在生成和理解文本时,其内部各层之间的连贯性和一致性。这包括模型在隐层表示、解码过程中的中间步骤以及最终生成的响应之间是否保持一致。
-
采样方法学:内部一致性的评估基于采样方法学,即通过分析LLMs在解码过程中使用的不同采样策略(如Top-k、Top-p、beam search等)对最终响应一致性的影响。
-
跨层次的一致性:内部一致性不仅关注模型最终生成的响应是否一致,还深入到模型内部,检查隐层表示和解码过程中是否也保持了连贯性。隐层中的特定注意力头与响应的忠实度紧密相关,因此,隐层的一致性也是内部一致性评估的重要组成部分。
-
与缺乏推理和幻觉的关系:内部一致性的缺失与模型缺乏推理能力和产生幻觉文本(即不符合事实、自相矛盾或不符合用户要求的文本)密切相关。只有当模型表现出内部不一致时,才能通过诸如自我一致性(Self-Consistency)等策略来提升其推理能力和减少幻觉。
-
内部一致性挖掘:内部一致性挖掘是指开发一系列方法来确保LLMs能够一致地表达从语料库中学习到的理解。这些方法包括响应策略(如链式思考Chain-of-Thought, CoT)、解码策略(如自我评估解码Self-Evaluation Decoding)和隐态策略(如推理时间干预Inference-Time Intervention),旨在提升LLMs的内部一致性。
除此之外,内部一致性还影响人工智能系统的鲁棒性和可靠性。
内部一致性是LLMs面临的核心挑战之一,它直接关系到模型的推理能力和生成文本的质量。通 过内部一致性挖掘,研究者们可以开发出各种策略来提升LLMs在这些方面的表现。
第二道硬菜:自我反馈
大模型的“自我反馈”(Self-Feedback)是一个理论框架,旨在通过模型的自我评估(Self-Evaluation)和自我更新(Self-Update)来提升其内部一致性,进而改善其推理能力和减少幻觉文本的生成。具体来说,自我反馈框架包含以下两个核心模块:
-
自我评估(Self-Evaluation):自我评估模块负责捕获内部一致性信号。这包括但不限于分析模型生成的多个响应之间的一致性、检查解码过程中的中间步骤是否连贯、以及评估隐层表示的忠实度等。通过自我评估,模型能够识别出其内部的不一致性和潜在的错误,为后续的自我更新提供指导。
-
自我更新(Self-Update):自我更新模块利用自我评估阶段捕获的内部一致性信号来增强模型的响应或优化模型本身。自我更新的方式多种多样,包括但不限于使用多数投票策略选择最终答案(如自我一致性Self-Consistency方法)、调整解码策略以减少不一致性、以及修改模型参数或结构以提高响应的忠实度和连贯性。
自我反馈框架的核心思想是让LLMs在生成响应的过程中不仅能够依赖其预训练的知识和推理能力,还能够通过自我评估和自我更新的方式不断优化自身的输出。说白了,就是AI不但能从别的地方学习,还能建立自己的“错题本”,自己找问题、改方法、提成绩。
任务一:一致性信号采集
“一致性信号采集”(CONSISTENCY SIGNAL ACQUISITION)是自我反馈框架中的一个关键组成部分,旨在从大型语言模型(LLMs)的输出、隐状态、解码过程等各个方面捕获与内部一致性相关的信息。这些信号可以是标量(如概率、置信度)、文本(如模型生成的批评、修正)、外部反馈(如编译器执行结果、其他模型的反馈)或对比性信号(如不同解码策略下的响应对比)。
捕获的一致性信号用于评估LLMs的内部一致性水平,并为后续的自更新(Self-Update)过程提供基础。通过分析这些信号,可以发现模型在生成响应或执行推理过程中的不一致之处,从而指导模型的改进。
采集方法:
-
不确定性估计:不确定性估计主要通过三种方法进行:校准置信度、抽样和分布方法。校准置信度方法旨在校正模型的可靠性,比较预测概率与实际概率的准确性。抽样方法通过在测试时使用不同的模型参数获取多个输出结果,然后计算方差来估计不确定性。分布方法则从数据集的分布特征出发,直接计算模型的内在不确定性。
-
置信度估计:这项研究中,置信度估计是通过让大型语言模型(LLM)自我评估其答案的正确性来实现的。例如,对于问题“谁是美国的第一任总统?”,模型会给出答案“乔治华盛顿”,然后被问及这个答案是真是假。模型的对数概率P(True)被用来作为置信度得分。
-
幻觉检测:一种方法是SelfCheckGPT,它首先采样多个不同的响应,然后计算这些响应是否支持原始生成的答案,还有方法利用中间层向量的协方差矩阵的特征值来衡量幻觉的可能性。此外,交叉询问方法使用两个LLM,一个生成答案,另一个进行迭代的质疑,以确定是否存在事实错误。
-
口头批评:口头批评的自我批评模型来生成对内容的见解。让LLMs进行自我批评或总结其他代理的结果,有助于提升输出的质量和一致性。
-
外部反馈:利用外部资源(如编译器、其他模型或人类用户)对模型输出的评估结果作为一致性信号。通过对比不同条件(如不同解码策略、不同模型参数)下模型生成的响应,发现潜在的不一致之处。
一致性信号采集可能面临噪声大、标注成本高、信号解释复杂等挑战。随着技术的进步和算法的优化,一致性信号采集的精度和效率有望得到提高,从而为LLMs的内部一致性提升提供更有效的支持。
未来的研究将关注更有效的一致性信号采集方法,如结合多模态信息、引入领域知识等;探索一致性信号与模型性能之间的内在联系,为模型的优化和改进提供理论支持。
任务二:推理提升
推理提升通常针对问答(QA)任务,方法主要关注中间推理步骤和最终答案的正确性。例如,通过对多个响应进行采样、综合或选择更好的响应来实现。在某些情况下,如RATT方法,虽然被设计来提升推理能力,但在实验中却使用了评估幻觉的基准,如真实QA。另一类方法,如自我改进,利用模型自身生成的数据进行微调,通过多数投票策略或蒙特卡罗树搜索来选择和收集更好的输出,进而增强模型的推理能力。这些技术不仅应用于推理任务,也扩展到了其他领域,如web代理和偏好优化。
- 拓扑推理:拓扑推理是关于优化语言模型在解答问题时的推理路径,确保其与已学习的知识一致。例如,思想链(CoT)方法要求模型提供中间推理步骤,以避免解决复杂问题时的失败。自一致性(SC)通过多数投票策略从多个样本中选择最一致的答案,提高准确性。然而,这种方法在探索能力上有限,适用于有固定答案集的问题。为了解决这个问题,自我改进(Self-Improvement)使用多数投票找到更好的响应,然后微调模型以提高参数层面的一致性。
▲拓扑推理
-
使用响应进行细化:大型语言模型(MLM)首先生成多个可能的响应,然后通过自我评估或识别出更优的响应来纠正错误,以此来细化其输出或对模型本身进行微调,以提高响应的一致性和准确性。这一过程通常包括生成响应、聚合或选择最佳响应,以及可能的迭代改进。例如,自我改进方法使用多数投票策略选择更好的输出,并用这些输出来微调模型,增强其推理能力。
-
多代理协作:利用多个大型语言模型(LLM)协同工作来解决问题,提高预测的一致性和准确性。这种协作涉及模型之间的互动,它们共同分析问题,解决潜在的矛盾,从而实现自我反馈和一致性增强。例如,Consensus Game(共识博弈)中,不同的LLM分别扮演生成器和鉴别器的角色,生成器产生答案,而鉴别器评估其合理性,两者通过达成共识来选择最佳响应。
任务三:减少幻觉
推理提升通常以QA任务为目标,而减轻幻觉提升通常针对开放式的生成任务,如故事编写和代码生成,强调事实增强、减少错误。
- 迭代细化响应:用于提高大语言模型(LLM)生成的响应的一致性和准确性。该方法涉及模型生成初始响应后,通过自我评估或比较多个可能的响应来识别并纠正错误,进而迭代地改进输出。下图所示的算法描述了一个典型的迭代细化过程。这种方法在问答(QA)任务和开放式的生成任务(如故事编写和代码生成)中都有应用,旨在减少错误,增强事实的准确性和忠实度。
▲迭代细化响应的算法
-
在生成时减轻幻觉:大型语言模型(LLM)生成文本时,通过识别和修正诸如时间不准确、日期错误或人物属性错误等细节上的错误,以提高生成内容的准确性和一致性。
-
真实地解码:一种关注解码一致性的方法,旨在提高大型语言模型(LLM)生成响应的可靠性和准确性。与迭代细化响应和幻觉检测不同,真实地解码主要关注如何在潜在层中准确地表达关键信息。
-
激活真实性:通过在潜在层中增强表示“真实”的注意力头和状态,或者通过微调潜在层来实现这一目标。
任务四:其他任务
-
偏好学习:一种训练大语言模型(LLM)的方法,目的是让模型更好地遵循人类的指令和满足人类期望的输出响应。在这一框架下,模型首先生成初始响应,然后基于反馈信号进行自我更新。反馈信号通常来自奖励模型R提供的奖励信息,这些信息反映了帮助性、无害性和诚实性等偏好。
-
基于LLM的知识蒸馏:一种将大型语言模型的高级能力转移到小型模型中的教学方法。同一个LLM既作为教师也作为学生,利用其在训练过程中积累的知识来迭代地提升自身的性能。这个过程关注于保留模型的语义、格式和多样性的知识,并通过不断调整和细化高质量的数据来改进模型。
-
数据增强:利用大语言模型(LLM)来构建和过滤高质量的数据集。不同于传统的数据集创建方法,数据增强专注于数据集本身,在自我更新阶段更新模型的响应,以进一步改进数据集。
模型的评估
评估有助于识别不同的模型和方法的优点和缺点。下面将阐释内部一致性和自我反馈的评估方法。
- 元评估:关注模型的元能力,比如模型的不确定性、一致性和反馈能力。元评估旨在确定哪些LLM更适合解决复杂问题。它通常包括基于度量的范式和基于基准的范式。基于度量的范式直接计算特定性能方面,而基于基准的范式则使用问答数据集来经验性地衡量性能。
▲元评估的标准
- 共同评价:评估模型解决现实世界问题的能力,如解决数学问题、代码生成和总结文章,下表所示不同的共同评价标准。这些基准评估格式主要包括多项选择题和文本生成。但是,目前的共同评估基准还远未达到准确地测量LLM的真实能力,并有许多领域需要改进。
▲共同评价的标准
为什么内部一致性(几乎)意味着正确性?
在大语言模型(LLM)中,提高内部一致性通常会增强模型对正确知识的拟合,因为训练数据主要包含正确的世界知识。这意味着模型在表达和推理时的一致性增强,往往会导致正确内容的放大。自反馈框架可以通过加强模型对语料库先验的拟合来增强模型的一致性,从而消除不确定性,提高一致性,整体改善了模型性能。(然而,这并不保证模型的完全正确性,因为它可能仍然包含错误信息或无法处理未见过的、需要外部知识的任务。)
▲“世界知识”
未来还能整些啥活?
-
文本自我意识:人类在交流时会使用诸如“我不确定,但我认为”或“我相信有80%的可能性”这样的表达来展示自我意识,即对自身知识和不确定性的理解。当前的模型在未经过微调的情况下往往无法准确地表达这种不确定性,需要通过改进模型使其能利用内部一致性来帮助文本更好地表达自我意识。
-
推理悖论:大语言模型(LLM)在处理推理任务时面临的困境。如何在潜在推理和显式推理之间找到平衡,以更有效地利用推理资源并提高模型的推理效率,是一个亟待解决的问题。
-
深入挖掘:不仅局限于响应层的优化,探究解码层和潜在层,以寻求更普遍的发现和可解释性。通过深入研究模型的不同层次,可以更好地理解和提升模型的内部一致性。
-
统一的视角:采取一种全面且综合的方法来分析内部一致性问题,包括推理提升和幻觉缓解。通过统一的视角,研究者可以考虑响应、解码和潜在层中的问题,促进内部一致性挖掘。
-
综合评价:采用一种全面的方法来评估和改善模型的内部一致性。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。