大模型从入门到精通(二)大模型机制:Explainability、 ICL原理、知识定位/修改、CoT
随着模型和语料的扩大,大型语言模型展示了从少量上下文示例中学习的能力,这被称为上下文增强学习(ICL)。利用ICL,大型语言模型可以执行各种复杂任务,例如解决数学推理问题。ICL的基本理念是从类比中汲取经验。ICL与监督学习有一个显著的区别,就是它不需要进行参数更新,而是直接在预训练的语言模型上进行预测。ICL作为一种新的范式,具有很多天然的优势:由于演示是用自然语言编写的,因此提供了一个可解释的
四、大模型机制
4.1 Explainability
大型语言模型(LLMs)在自然语言处理方面展现了强大能力,但缺乏透明度给应用带来风险。理解和解释这些模型对于阐明其行为、局限性和社会影响至关重要。
提高LLMs的可解释性至关重要,这有助于一般用户理解模型预测背后的推理机制,建立信任,并为开发人员提供洞察力来识别偏差、风险和性能改进领域。可解释性还可作为调试工具,提高模型性能,并有助于跟踪模型功能变化、比较不同模型,并开发可靠、道德和安全的模型。

LLMs的训练分为传统的微调和提示两种范式,它们用于适应下游任务的方式有本质区别。因此,针对这两种范式,提出了各种类型的解释。
解释大型模型的挑战:
1.复杂性高: 大型模型包含数十亿参数,推理过程复杂,难以解释具体输出。
2.数据依赖性强: 模型依赖大规模文本语料,其中的偏见和错误难以准确评估对模型的影响。
3.黑箱性质: 即使是开源模型,也难以判断其内部推理链和决策过程,只能通过输入输出进行分析。
4.输出不确定性: 同一输入可能产生不同输出,增加了解释难度。
5.评估指标不足: 目前的评估指标难以完整反映模型的可解释性,需要更多考虑人类理解的指标。
大模型的训练范式:
1.传统fine-tuning: 预训练基础语言模型,再通过特定领域的标记数据集进行fine-tuning。
2.基于prompting: 通过prompts实现zero-shot或few-shot learning,使用instruction tuning和RLHF进行微调。
基于传统fine-tuning范式的模型解释:
① 局部解释
局部解释是对单个样本的预测进行解释,采用的方法包括特征归因、基于注意力的解释、基于样本的解释以及自然语言解释。

特征归因旨在衡量每个输入特征(如单词、短语、文本范围)与模型预测的相关性。这种解释方法可以分为四类:
- 基于扰动的解释,通过修改特定输入特征来观察对输出结果的影响;
- 基于梯度的解释,将输出对输入的偏微分作为输入重要性的指标;
- 替代模型,使用易理解的简单模型来拟合复杂模型的输出,获取各输入的重要性;
- 基于分解的技术,将特征相关性得分进行线性分解。
基于注意力的解释关注输入中最相关的部分,通常通过注意力可视化技术或基于函数的方法来解释注意力的相关性信息。然而,将注意力作为研究角度仍然存在争议。
基于样本的解释从个例的角度对模型进行探测和解释,包括对抗样本和反事实样本。对抗样本是为了检测模型对微小变动的敏感性而生成的数据,而反事实样本则是对模型因果推断能力的测试。
自然语言解释使用原始文本和人工标记的方式进行模型训练,使得模型可以生成自然语言解释模型的决策过程。
② 全局解释
全局解释的目的是提供对大型模型运作方式的深入理解,通过考虑模型的结构元素,如神经元、隐藏层及更大的模块,着重于研究各个网络组件所获得的语义信息。着重于从模型构成的层面探究,如基于探针、神经元激活、基于概念等方法,旨在提供更高阶的解释,了解模型学习的语义知识。
探针解释法依赖于在已经预训练或微调的模型上培训一个浅层的分类器,并对其在保留的数据集上进行测试,以赋予该分类器辨识语言特性或推理能力的能力。
在神经元激活分析领域,传统方法仅关注少数关键神经元及其与语义属性的联系。然而,使用GPT-4的最新技术能够评估模型中所有神经元的功能,这是一种与仅分析选定神经元不同的方法。
与此同时,基于概念的解释方法先将输入对应到一系列概念上,然后通过计算这些概念对模型预测结果重要性的方法来进行模型解释。
基于prompting范式的模型解释:
在基于提示的模型解释框架中,对基本模型和辅助模型进行独立解释至关重要,以识别两类模型的不同能力,并研究它们的学习过程。此方法主要探讨的问题包括:为模型提供解释如何有利于小样本学习(few-shot learning);以及理解小样本学习和推理链条能力的根源。
- 基础模型解释: 主要探究解释对模型学习的好处,包括在few-shot learning情况下的影响、情境学习的作用机制以及思维链prompting提高模型表现的原因。
- 助手模型解释: 关注助手模型的角色,通常通过预训练获取通用语义知识,然后通过监督学习和强化学习获取领域内知识,需要探究其知识来源和不确定性。
未来研究挑战:
1.缺乏有效解释:缺乏设计有效解释的标准,也缺乏有效解释本身。
2.涌现现象的根源未知:对涌现能力的探究,包括模型结构和数据影响。
3.Fine-tuning与prompting的区别:在数据同分布和不同分布情况下的推理差异。
4.模型的捷径学习问题:两种范式下模型的捷径学习问题存在,并需要解决。
5.注意力冗余:注意力模块的冗余问题广泛存在,需要研究以提供压缩技术。
6.安全性和道德性:建立可解释的AI模型可以有效地避免偏差、不公平等问题。
4.2 ICL(In-context Learning)原理
概述
随着模型和语料的扩大,大型语言模型展示了从少量上下文示例中学习的能力,这被称为上下文增强学习(ICL)。利用ICL,大型语言模型可以执行各种复杂任务,例如解决数学推理问题。ICL的基本理念是从类比中汲取经验。ICL与监督学习有一个显著的区别,就是它不需要进行参数更新,而是直接在预训练的语言模型上进行预测。

ICL作为一种新的范式,具有很多天然的优势:
由于演示是用自然语言编写的,因此提供了一个可解释的接口来与LLM通信。这种方法通过改变演示和模板,使得人类知识更容易融入LLM的上下文学习中。
这种范式类似于人类通过类比学习的决策过程。
与监督训练相比,ICL是一个无需进行训练的学习框架。这不仅可以大幅降低模型适应新任务的计算成本,还能将语言模型作为服务提供,并且可以轻松应用于大规模的真实世界任务。
ICL的卓越性能依赖于两个关键阶段:培训LLM的ICL能力阶段,及LLM根据特定任务演示进行推理预测的阶段。

定义
上下文学习是一种新的范式,允许语言模型以演示的形式学习仅给出几个示例的任务。本质上,它通过使用训练有素的语言模型来估计以演示为条件的潜在答案的可能性。


根据定义,我们可以看到ICL与其他相关概念的不同之处:
1.提示学习(prompt learning):提示可以是鼓励模型预测所需输出的离散模板或软参数。ICL可以被视为提示调优的一种子类,其中演示是提示的一部分;
2.少样本学习(Few-shot learning):这是一种通用的机器学习方法,利用参数适应来学习具有有限数量监督示例的任务的最佳模型参数。相反,ICL不需要参数更新,而是直接在预训练的LLM上执行。
预热
在预训练和ICL推理之间有一个连续训练的阶段,被称为Warmup阶段,可以增强ICL推理的能力。
这个过程是可选的,包括调整模型参数或增加参数,与传统的finetune过程不同,fine-tune旨在提升LLM在特定任务上的性能,而Warmup则旨在使模型具备更好的通用ICL能力。
Supervised In-context Training
尽管预训练后的语言模型已经初步具备ICL能力,但其预训练目标并非为了ICL而优化,因此与下游ICL目标之间仍然存在差距。最直接的解决方法是在有监督的ICL数据上进行训练,以消除这种差距。
Supervised In-context Training
有人在预热阶段使用了原始语料库,并在下游任务中构建与ICL格式一致的自监督训练数据,将原始文本转换为输入输出对,并尝试了四个自我监督目标,包括屏蔽标记预测和分类任务。
也有人利用原始语料库,但采用了更简单的语言建模目标,旨在促进基于上下文的任务推理和执行,并且同时保留了预训练模型的任务泛化能力。PICL相较于前一方法展示出了更有效和任务泛化性更好的方法。
建议在进行ICL推理之前,对LLMs进行监督训练和自监督训练。关键思想是通过引入接近情境学习的目标来弥合预训练和下游ICL格式之间的差距。相比于涉及上下文微调的演示微调,指令微调更简单且更受欢迎,因为它无需几个示例即可完成。这些方法通过更新模型参数在一定程度上提高了ICL能力,显示了原始LLMs在ICL方面还有很大的潜力。因此,虽然ICL并不强制要求模型预热,但建议在ICL推理之前进行预热阶段。随着训练数据规模的不断扩大,预热带来的性能提升会遇到平台期。这一现象在有监督的上下文训练和自监督的上下文训练中都有体现,表明LLMs只需要少量的数据就能在预热期间适应上下文学习。
影响ICL的因素
预训练阶段
学界有几种不同意见
- 预训练语料库的来源比大小更为重要,多个语料库的整合可能带来新的ICL能力,但与下游任务相关的语料库并不总能提高ICL性能。
- ICL能力受到预训练模型参数量和训练步数的影响。
推理阶段
-
一些研究指出,在推理阶段,示例的属性也会影响ICL的性能。
-
有研究认为正确的标签对ICL性能有影响,这却决于具体实现配置。
-
ICL工作机制
-
Training Data Distribution:与训练数据的分布有关。有研究表明,当训练数据呈现特定的分布属性时,上下文学习会发生。此外,也有研究认为ICL可能是隐式的Bayesian inference。
-
Learning Mechanism:与学习机制有关。例如,有研究表明Transformer可以通过隐式经验风险最小化来实现合适的函数类。有人将大型模型解释为元优化器,然后将ICL立即解释为隐式微调,实验显示,上下文学习的行为类似于从多个角度进行的显式微调。
-
Functional Components:与特定功能组件有关。在Transformer中,一些注意力头会复制先前的模式以预测下一个token,他们认为这些感应头可能是大型模型中ICL机制的来源。
4.3 知识定位/修改
LLMs如何存储知识
首先要确定大模型的知识存储在哪里,大模型的知识主要存储在模型参数中。尝试定位模型中与相关知识有关的参数区域,并直接修改这些参数的权重。理论上可行,但目前相关研究较少,实际操作上存在较大困难。将大型模型比作人类大脑,这种方法类似于在大脑中找到特定事件的记忆区域和神经元,然后通过对神经元进行无创伤外科手术来插入或更新新的记忆。
大型语言模型之所以具有强大的能力,是因为它具有对知识的记忆能力,Transformer模型并没有外部显式的数据库,因此它的记忆必须隐式地嵌入在其参数中。从Transformer的结构来看,模型参数分为两部分:多头注意力(MHA)部分大约占据总参数的三分之一,而剩下的三分之二的参数则集中在FFN(Feed-Forward Network)结构中。MHA主要负责计算单词或知识之间的相关强度,并将全局信息进行整合,更可能用于建立知识之间的联系,而不是存储具体的知识点。因此,可以推断LLM模型的知识主体存储在Transformer的FFN结构中。

比如,对于“爱丁堡的最高的山是亚瑟王座”这条知识,以三元组形式表达为<亚瑟王座,是爱丁堡的最高山,爱丁堡>,那么这种知识存储在LLM的哪个部分呢?
“Transformer Feed-Forward Layers Are Key-Value Memories”提供了一个相当新颖的观点,将Transformer的FFN视为存储大量具体知识的键-值存储器。FFN的第一层是一个MLP宽隐层,作为键层;第二层是一个MLP窄隐层,作为值层。FFN的输入层实际上是某个单词对应的MHA输出的嵌入结果,即通过自注意力机制将整个句子的相关输入上下文整合到一起的嵌入表示,代表了整个输入句子的整体信息。
每个Key层神经元节点记录了一对<Key, Value>信息。例如,对于图中FFN的第一个隐层的第i个节点,也许它记录了<亚瑟王座,是爱丁堡的最高峰,爱丁堡>这条知识。节点的Key向量实际上是指节点i与输入层的每个节点的权重向量的乘积,而对应的Value向量则是节点i与FFN第二层的Value层每个节点形成连接的权重向量。每个神经元的Key向量用于识别输入中的某种语言或知识模式,可看作是一种模式探测器。如果输入中包含它要检测的某种模式,那么输入向量与节点i的Key权重进行向量内积计算,再加上ReLU激活函数,形成大数值的响应,意味着已经检测到了这个模式。然后将这个响应值通过节点i的Value权重向量传播到FFN的第二层。这相当于用响应值加权Value向量的值,并将其传递到第二层的Value层每个节点的输出上。这样一来,FFN的正向传播过程看起来就像是通过Key检测到某种知识模式,然后将相应的Value提取出来,并在FFN的第二层输出中体现出来。当然,FFN的第二层每个节点会收集来自所有Key层节点的信息,因此形成一种混合响应,而Value层所有节点的混合响应可解读为输出单词的概率分布信息。
这篇文章还强调了一个观点,即Transformer的低层对句子的表层模式做出反应,而高层则对语义模式做出反应。换句话说,低层的FFN存储着词法、句法等表层知识,而中层和高层则存储着语义和事实概念知识。这与其他研究的结论一致。
如何修改知识
既然能存储知识,正常来讲就可以修改,而且对于过期或者错误的数据,也有修改的诉求。
1.从训练数据的源头修正知识。“Towards Tracing Factual Knowledge in Language Models Back to the Training Data”这篇文章旨在探究对于特定知识,我们是否能够确定其源自哪些训练数据导致LLM学到了这些知识。结果显示肯定是可以的,这意味着我们可以逆向追踪某项知识对应的训练数据源。若要利用这项技术,例如要删除某条知识,则可以先定位到其相关的数据源,删除该数据源,然后重新预训练整个LLM模型,以达到删除LLM中相关知识的目的。然而,这种方法存在一个问题,即若需修正少量知识,则需要重新进行模型预训练,显然成本较高。因此,这种方法可能更适用于针对特定类别数据的一次性大规模删除场景,而不太适合于少量多次的常规知识修正情况,例如去除偏见或毒性内容的处理。
2.通过对LLM模型进行微调来修正知识。一个直观的方法是:我们可以根据要修正的新知识构建训练数据集,然后让LLM模型在这个数据集上进行微调,以引导LLM记住新的知识并遗忘旧的知识。这种方法看似简单直接,但也存在一些问题。首先,它可能引发灾难性遗忘问题,即除了遗忘应该遗忘的知识外,还会遗忘不应该遗忘的知识,导致一些下游任务的效果下降。另外,由于当前LLM模型的规模非常庞大,即使进行微调,如果频繁操作,成本也相当高。
3.直接修改LLM中某些知识对应的模型参数来修正知识。假设我们想要将旧知识<威廉,现任女友,哈利>修正为<威廉,现任女友,玛丽>。首先,我们需要在LLM模型参数中找到存储旧知识的FFN节点,然后可以通过强制调整FFN中相应的模型参数,将旧知识替换为新知识。这种方法涉及两项关键技术:首先是如何在LLM参数空间中确定某条知识的具体存储位置;其次是如何修改模型参数以实现从旧知识到新知识的转变。
4.4 CoT(Chain of Thought)
概述
在人工智能领域,思维链(Chain of Thought,CoT)是一个非常新颖的概念。强大的逻辑推理是大型语言模型“智能涌现”出的核心能力之一,就像AI具备了人类的意识一样。思维链是推理能力的关键。
在解决复杂问题,特别是涉及复杂数学题时,大型模型很难直接给出正确答案。CoT采用一种简单而有效的方法来增强大型模型的算术、常识和推理能力,即要求模型在输出最终答案之前,明确呈现中间的逐步推理步骤。
CoT显著提升了LLM在复杂推理任务上的性能,并通过输出中间步骤来增强模型的可解释性,使用户能够了解模型的思考过程,Chain of Thought提示可以显著提高大模型在算术推理、常识推理等任务上的性能。目前,思维链推理已经成为处理复杂任务的大型模型的常用方法。
概念
CoT概念由Google首次提出,通过逐步将复杂问题分解为一系列子问题,并逐一解决,可以显著提高大型语言模型的性能。这一过程中产生的一系列推理步骤被称为思维链(Chain of Thought)。

我们可以对CoT推理和传统推理做一个比对,这篇paper中《Igniting Language Intelligence: The Hitchhiker’s Guide From Chain-of-Thought Reasoning to Language Agents》有给出图解

思维链是解决问题或得出答案所涉及的一系列中间推理步骤。这些推理步骤的形式通常是 <input> → 推理链(原理) → 输出 映射。与传统的直接推理相比,这种方法通常更为有效。传统的直接推理试图一次性解决整个问题,例如,标准分类、多项选择和问答问题通常采用 <input> → 输出 映射形式的直接推理。从图中可以看出,相较于直接Prompt,CoT在推理任务上带来了明显的改进。

思维链的提示通常由三部分组成:指令(Instruction)、基本原理(Rationale)和示例(Examples)。指令用于描述问题并确定大型模型的输出格式,基本原理则包括思维链的中间推理过程,其中可能包含问题的解决方案、中间推理步骤以及与问题相关的任何外部知识。示例是指以少量样本的形式为大型模型提供输入输出对的基本格式,每个示例都包括问题、推理过程和答案。
根据是否提供示例,可以将思维链分为Zero-Shot-CoT和Few-Shot-CoT。在零样本思维链中,没有提供示例,只在指令中添加一行经典的“Let’s think step by step”,就可以唤醒大型模型的推理能力。而在少样本思维链中,则通过示例详细描述了解题步骤,让模型可以仿效并得到推理能力。
能力
增强了LLMs的推理能力: CoT通过将复杂问题分解为多个子问题的步骤,显著提升了大模型的推理能力。这一方法最大程度地降低了大模型忽略问题关键细节的倾向,确保计算资源被有效地用于解决问题的核心步骤。
增强了LLMs的可解释性: 与仅输出单一答案相比,CoT通过展示解题过程使得大模型的工作方式更加透明。这种输出步骤的方式不仅使我们更好地了解大模型在解决问题时的工作方式,还为我们找出错误步骤提供了便利。
增强了LLMs的可控性: 通过逐步输出解题步骤,能够影响大模型在问题求解过程中的表现,从而避免大模型成为完全不可控的“黑盒”,同时使得易于调试。
增强了LLMs的易用性和灵活性: 仅需添加一句“Let’s think step by step”,即可在各种不同的大模型中应用CoT方法。此外,CoT赋予了大模型逐步思考的能力不仅限于语言智能领域,在科学应用和AI Agent构建中也有广泛应用。
局限
CoT(Chain of Thought)思维链虽然在提高大模型复杂推理能力方面表现出色,但也存在一些局限性:
- 推理过程可能不完全正确或合理。CoT生成的中间推理步骤并不能保证100%正确,可能存在逻辑错误或缺失关键步骤的情况。
- 缺乏通用性。CoT主要用于解决算术推理、常识推理等特定类型的问题,对于其他类型的任务(如开放性问答等),其效果可能不佳。
- 缺乏可解释性分析。虽然CoT提高了模型的可解释性,但目前还缺乏对生成的推理路径进行深入分析和评估的方法。
- 依赖高质量的提示设计。CoT的效果很大程度上依赖于提示的设计质量,如何设计高质量的CoT提示仍是一个挑战。
- 计算开销较大。与标准提示相比,CoT需要模型生成更多的文本(中间推理步骤),因此计算开销更大。
- 缺乏理论支持。目前还缺乏对CoT为什么有效的深入理论解释和分析。
如何系统学习掌握AI大模型?
AI大模型作为人工智能领域的重要技术突破,正成为推动各行各业创新和转型的关键力量。抓住AI大模型的风口,掌握AI大模型的知识和技能将变得越来越重要。
学习AI大模型是一个系统的过程,需要从基础开始,逐步深入到更高级的技术。
这里给大家精心整理了一份
全面的AI大模型学习资源,包括:AI大模型全套学习路线图(从入门到实战)、精品AI大模型学习书籍手册、视频教程、实战学习、面试题等,资料免费分享!

1. 成长路线图&学习规划
要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。
这里,我们为新手和想要进一步提升的专业人士准备了一份详细的学习成长路线图和规划。可以说是最科学最系统的学习成长路线。

2. 大模型经典PDF书籍
书籍和学习文档资料是学习大模型过程中必不可少的,我们精选了一系列深入探讨大模型技术的书籍和学习文档,它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础。(书籍含电子版PDF)

3. 大模型视频教程
对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的大模型视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识。

4. 2024行业报告
行业分析主要包括对不同行业的现状、趋势、问题、机会等进行系统地调研和评估,以了解哪些行业更适合引入大模型的技术和应用,以及在哪些方面可以发挥大模型的优势。

5. 大模型项目实战
学以致用 ,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。

6. 大模型面试题
面试不仅是技术的较量,更需要充分的准备。
在你已经掌握了大模型技术之后,就需要开始准备面试,我们将提供精心整理的大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。

全套的AI大模型学习资源已经整理打包,有需要的小伙伴可以
微信扫描下方CSDN官方认证二维码,免费领取【保证100%免费】

更多推荐


所有评论(0)