一、结论写在前面
论文标题:How Do Large Language Models Acquire Factual Knowledge During Pretraining?
论文链接:https://arxiv.org/pdf/2406.11813
尽管最近有观察表明大型语言模型(LLMs)能够存储大量的事实知识,但对于它们如何在预训练过程中获取事实知识的机制理解有限。
论文通过探讨LLMs在预训练期间如何获取事实知识来填补这一空白。研究发现揭示了预训练期间事实知识获取动态的几个重要见解:
首先,尽管观察到知识时模型对数概率的即时提升量随着模型增大而增加,在更多数据上进行预训练并未显著提高模型获取和维持事实知识的能力。这一发现表明,模型规模和预训练token的扩展带来的益处具有质的不同。
其次,训练步骤与记忆和泛化事实知识的遗忘之间存在幂律关系,使用重复训练数据的LLMs表现出更快的遗忘。
第三,使用去重数据和更大批量大小预训练扩散决策模型(DDMs)能增强事实知识的获取,使其更能抵抗已学事实知识的遗忘。
论文为最近观察到的、但尚未充分探索的LLMs行为提供了潜在解释。首先,论文认为通过数据扩展提升LLMs性能是由于持续改进,而非预训练期间快速获取事实知识的新兴能力。其次,论文假设LLMs难以获取不流行知识,因为它们需要足够频繁地接触事实知识,其间隔需短于可学习性阈值,以提高概率。第三,论文的发现表明,去重预训练语料库通过防止模型对重复序列赋予更高概率,并帮助模型更长久地保留已获得的泛化,从而提升了LLM性能。
总体而言,论文的观察表明,LLM预训练中的事实知识获取是通过在每个步骤中逐步增加预训练数据中呈现的事实知识的概率来实现的。然而,这种增加被随后的遗忘所稀释。基于这一解释,论文证明了可以为最近观察到的LLMs行为提供合理的解释,例如LLMs在长尾知识上的表现不佳以及对预训练语料库去重的好处。
二、论文的简单介绍
2.1 论文的背景
对于LLMs如何在预训练过程中获取事实知识的机制理解甚少。论文首次尝试理解LLM预训练中事实知识获取的动态。论文研究了三个重要但未得到解答的研究问题:
RQ1. LLM预训练期间如何获取事实知识,以及LLMs如何受到每个训练步骤训练数据的影响?
RQ2. 训练条件如何影响事实知识获取的有效性?
RQ3. 获取的事实知识是如何被遗忘的,以及这种趋势如何受到训练条件的影响?
为了回答这些研究问题,论文分析了在不同训练条件下,LLMs如何通过记忆和泛化来获取和保留事实知识。具体而言,论文采用了不同大小的LLM在不同预训练阶段的中间检查点,注入模型之前未遇到的目标知识,并监控在各种条件下获取事实知识的逐步进展。
论文的实验揭示了关于LLM预训练中事实知识获取的精细动态的几个重要见解和假设。首先,论文表明事实知识获取是通过更新模型时由包含事实知识的minibatch引起的小概率增加累积实现的。其次,与早期阶段的检查点相比,后期阶段的检查点在有效性上没有显著差异,即在立即获取记忆和泛化的能力上没有显著改进。
另一方面,7B模型比1B模型的有效性更高,表明在事实知识获取方面,模型大小和预训练token的扩展带来的好处在质上是不同的。第三,论文发现训练步骤(或token)与获取的事实知识在记忆和泛化中的遗忘之间存在幂律关系。进一步检查LLM预训练中事实知识遗忘的速率揭示,通过去重训练数据和使用更大的批量大小训练模型,可以增强事实知识的获取,使它们更能抵抗遗忘。
基于论文对事实知识获取动态的理解,论文证明了最近观察到的行为,包括随着更多训练数据的增加,LLMs性能的提升,未能获取长尾知识,以及数据集去重的重要性,都可以得到解释。
2.2 实验设置
虚构知识数据集 论文的目标是分析LLMs在预训练过程中获取事实知识时的行为。为此,论文通过构建训练实例来模拟这一场景,这些实例是中间预训练LLM检查点未曾遇到过的,并在预训练期间注入到LLM中。具体而言,论文构建了虚构知识数据集:
论文注入包含虚构但现实实体描述的段落,将其作为预训练批次中的一个序列,并研究LLM在遇到这些知识时的记忆与泛化动态。论文将这些段落称为注入知识。
表1:虚构知识数据集示例。记忆探针与注入知识中的一个句子相同。语义泛化探针是记忆探针的同义转述,具有相同的靶向跨度。组合泛化探针评估了从注入知识中的多个句子组合知识的能力。每个探针的靶向跨度以粗体显示
接下来,为了探究大型语言模型(LLMs)在不同深度上泛化所获得事实知识的能力,论文将获取概念分为三个深度:(1) 记忆:记忆训练中使用的精确序列;(2) 语义泛化:在单句级别上将事实知识泛化到改写格式;(3) 组合泛化:在注入的知识中,将呈现为多句的事实知识进行组合。
基于这一直觉,论文为每项注入知识的三种不同获取深度精心设计了五个探针,总计1,800个探针。每个探针结构化为完形填空任务,包含输入和目标跨度,其中目标跨度是设计用来测试论文评估的事实知识获取情况的短语。注入知识和相应探针的示例见表1。所有注入知识和探针的实例均通过使用ECBD数据集[28]的定义作为模板,提示GPT-4生成,并过滤掉无效案例。数据构建的详细信息以及FICTIONAL KNOWLEDGE数据集的更多示例可在SB中找到。
评估指标 为了对大型语言模型(LLM)在预训练期间获取事实知识的详细分析,论文通过检查对数概率来评估模型的状态,以获得细粒度的信息。为了定量衡量事实知识获取的趋势,论文首先需要定义时间步长,即使用注入的知识更新模型所带来的局部效应完全发挥作用的时刻。在预训练期间,对模型在事实知识上的对数概率变化的逐步评估揭示了这种改进是通过几个步骤发生的(图1),因为LLM部署了带有动量的优化器。因此,论文定义了在对模型进行注入知识训练后,对数概率在短时间内达到最大值的时间步长,论文称之为局部获取极大值(local acquisition maxima.)。
图1 展示了对目标跨度进行探测(Al(q))时,模型对事实知识短期记忆的log概率变化。在步骤0(以虚线标记),模型通过注入的知识进行训练,这些知识包含了探测q评估的事实知识。局部获取最大值(以红色线标记)是在窗口(阴影区域)内,log概率达到最大的时间步,该窗口由定义。在
时刻,效果性和保持性的测量被可视化,其中保持性通过测量紫色线与灰色线的比例获得
接下来,论文定义一个指标来量化模型在第i次接收到知识后,其对事实知识的log概率的即时改进。这种改进通过模型对相应探测的目标跨度的log概率来衡量。该指标,即效果性,将用于回答第二个研究问题。
最后,为了研究已获得事实知识的遗忘现象(RQ3),论文定义了一个指标,该指标量化了相对于上次知识更新时的局部获取最大值,模型在t步后保留的log概率改进的比例。
所定义指标的测量在图1中说明。
为了测量效果性和保留性,论文采用IQR方法进行异常值检测,因子为1.5。这对于测量保留性尤为重要,因为少数未通过训练获取的情况由于公式3中非常小的分母可能导致非常大的值。
预训练期间的知识注入 论文通过考察以下因素,探讨大型语言模型(LLMs)如何获取和保留事实知识,包括记忆和泛化:
(i) 不同的知识注入场景(复制、改述、一次性),
(ii) 不同的预训练阶段(早期、中期和晚期,分别预训练约170亿、500亿和1.5万亿个token),
(iii) 不同的模型大小(10亿和70亿参数),
(iv) 不同的训练批量大小(2048和128)。
为此,论文重新启动预训练OLMo的中间检查点,恢复优化器和调度器状态,与OLMo的预训练方式相同,使用OLMo的预训练数据(Dolma v1.5),不同的是,论文每100个训练步骤通过替换原始预训练批次的一部分,注入FICTIONAL KNOWLEDGE数据集中的事实知识。
图2:在继续预训练OLMo-7B
检查点(训练了500Btoken)时,通过注入FICTIONAL KNOWLEDGE数据集中的知识,探针对象目标跨度的平均对数概率随训练步骤的变化率。结果显示了重复(顶部)、释义(中部)和一次(底部)注入场景。注意,在模型更新了注入的知识后,对数概率立即且显著增加,由虚线垂直线标记
每个注入的知识都足够短,可以适应批处理中的一个预训练序列,论文用批处理中原始序列的剩余部分填充序列。为了研究模型在呈现知识时事实知识获取动态的差异,论文使用三种不同的注入场景注入事实知识:复制、释义和一次。
在复制注入场景中,论文以100个训练步骤的间隔注入相同知识10次。在释义注入场景中,论文注入释义的知识而不是每次向模型展示相同的序列。最后,在一次注入场景中,论文在训练开始时只注入一次知识。注入完成后,论文继续正常预训练。训练设置的详细信息可以在SD中找到。
2.3结果
2.3.1 事实知识的获取通过累积对事实的观察发生
图2展示了OLMo-7B事实知识获取的进展,通过在每个注入场景中,对探针对象目标跨度的模型对数概率进行平均,并在每个训练步骤进行评估。无论获取深度(记忆、语义泛化和组合泛化)如何,模型在探针上测量的对数概率在模型更新了包含注入知识的批次后,立即且显著增加。然而,对数概率再次下降,因为之后没有向模型呈现知识。这一观察直接证明了事实知识获取的机制:LLMs通过在预训练过程中每次遇到知识时积累微观获取并随后遗忘来获取事实知识。
从图2中可以进一步得出几个发现。首先,当模型在接触到事实知识后进行更新时,记忆任务的log概率提升最为显著,其次是语义泛化,而组合泛化的提升最小。然而,在释义注入场景下,记忆与语义泛化之间的差距几乎消失。第三,当模型在复制注入场景下更新时,模型在所有获取深度上都显示出更大的log概率提升,但遗忘速度也更快,最终在训练结束时(t=2000)与释义注入场景相比,提升程度相似。
这些模式在论文调查的所有OLMo-7B预训练阶段中是一致的。有趣的是,OLMo-1B早期检查点的训练动态显示出比后期检查点以及OLMo-7B早期检查点更加不稳定的动态。OLMo-1B早期检查点的独特行为表明,模型在不同规模下的训练动态可能存在差异检查点表明,模型在一定数量的token上进行预训练可能是稳定获取事实知识所必需的,而这种阈值对于较小的模型可能更高。
图3:不同注入场景和获取深度下,针对各种探针和每次注入时间的效能平均值。注意,效能并未随着模型训练使用的token数增加而提高(左图),但随着模型规模的扩大,效能有明显提升(右图)
2.3.2 模型规模和预训练阶段对知识获取动态的影响
接下来,论文通过测量效能(式2)来量化LLMs在注入知识训练后对数概率的提升,该效能是所有探针(q)和遭遇(i)的平均值。结果如图3所示。在“一次注入”场景中,平均效能最大,因为模型首次遇到注入的知识时效能更高,这在SH中进一步讨论。
在所有注入场景中,当模型规模从1B扩展到7B时,有效性有所提升(如图3右侧所示)。然而,令人惊讶的是,事实获取的有效性并未随着使用更多token训练的检查点而提高,如图3左侧所示。这一趋势在所有模型规模和注入场景中均保持一致。
此外,这一趋势并非由于通过学习率衰减降低学习率来训练模型所致,这一点通过额外实验得以证实,该实验使用相同的恒定学习率训练了三个检查点。恒定学习率下的结果显示,在预训练后期阶段,即见到了更多预训练token的检查点中,有效性并未显著提升(SFP)。因此,这一观察表明,LCMs在获取事实知识方面的有效性在预训练进程中并未显著提高。
尽管论文的发现表明,在预训练的不同阶段有效性保持不变,这似乎与广泛认可的观察结果相矛盾,即预训练数据量是影响LLMs性能的关键因素。具体而言,论文认为,经过更大规模和更多样化数据集训练的LLMs之所以表现出色,并非主要源于训练过程中观察到的大量token所涌现的能力,而是因为模型多次遇到更广泛的知识多样性,这使得更多知识的累积对数概率足够高,以至于能够被解码为模型的输出。
对比复制和改述注入场景,复制注入场景在记忆方面自然显示出更高的效果。然而,复制注入场景在语义泛化和组合泛化方面的高效性似乎与直觉相悖,因为普遍观察到预训练数据的去重是提高模型性能的重要因素。在接下来的章节中,论文将通过展示模型在面对重复文本时在泛化事实知识方面表现出更快的遗忘来解答这一问题。
2.3.3 事实知识获取中的遗忘
训练步骤与获得的事实知识的遗忘之间存在幂律关系。遗忘的指数趋势已在LLM训练的各个方面得到报道,包括预训练中的记忆 [39] 和持续学习中的任务表现。
受此启发,论文研究在大型语言模型预训练中事实知识获取的背景下,遗忘的指数趋势是否持续。图 4 展示了超过局部获取最大值的训练步骤中保持能力的趋势。论文发现,R(p, t) 与 log(t) 的关系非常符合线性函数。这一趋势在所有获取深度和所有训练条件下都持续存在。基于经验观察,论文在进一步研究中使用幂律模型来模拟遗忘趋势。
图 4:使用 OLMo-7B
i
t
m
i
d
{\\it mid}
itmid 检查点测量的,在局部获取最大值后的训练步骤中,平均保持能力与训练步骤的关系。x 轴为对数刻度。左图:复制。右图:改写。
表 2:使用 OLMo-7B 在不同预训练阶段、获取深度和注入场景下测量的平均保持能力(R(p, ))的衰减常数。注意,较大的值表示模型以更高的速率忘记已获取的知识
获取的事实知识丢失得有多快?图 4 中拟合线的斜率的绝对值可以解释为保持能力的衰减常数(a),正式地,
因此,测得的衰减常数代表了模型在日志概率改进方面失去速度的快慢(以比例表示)。表2展示了在复制和释义注入场景下,针对三个OLMo-7B中间检查点的保持力衰减常数的测量结果。
表2中有几个观察结果。首先,组合泛化的遗忘速度较慢(衰减常数较小),相比记忆和语义泛化。结合前几节的观察,组合泛化的获取积累最慢,但对遗忘更为鲁棒。其次,与复制注入场景相比,释义注入场景中的遗忘趋势较慢。
最后,在复制注入场景中,两个早期检查点的衰减常数相似,但较晚检查点的衰减常数较小。论文证明,这是由于学习率调度导致的降低学习率,因为当每个检查点以相同恒定学习率训练时,较晚检查点的衰减常数没有下降。
使用更大的批量大小预训练有助于LLMs获取更多知识 预训练LLMs时使用非常大的批量大小以利用并行计算是一种常见做法。然而,关于增加训练批量大小对LLMs获取事实知识的影响仍未充分探索。在本节中,论文探讨预训练LLMs时使用更大批量大小是否在事实知识获取方面具有优势。具体而言,论文继续使用比原始预训练批次大小小16倍的批次大小训练LLMs,即从2048减少到128。
图5:预训练(左)和使用减小批次大小(右)训练的遗忘动态比较,使用OLMo-7B中期检查点进行测量。注意,x轴表示训练token的数量而不是训练步骤,这在对图4中绘制的数据产生位移效应
图5比较了OLMo-7B中期检查点在预训练和使用减小批次大小训练之间的遗忘动态。这些结果对使用更大批次大小预训练LLMs的优势有几个含义。
此外,预期的x截距显著降低了数十倍。这意味着使用较小批次大小训练的模型具有更短的可学习性阈值,即LLM无法学习超过该阈值的知识间隔的点。换句话说,当LLM使用较小的批次大小进行训练时,必须更频繁地向模型呈现事实知识,以免被遗忘,并且可学习知识的集合减少。其次,与记忆和语义泛化相比,使用较小批次大小的加速遗忘对于组合泛化更为明显。
简而言之,结果表明,使用小批次大小进行预训练由于加速遗忘而减少了可学习知识的集合,并导致学习事实知识的组合泛化性能更差。
2.3.4 对LLM预训练的启示
为什么流行度对于事实知识获取至关重要?图5中估计的x轴截距代表了导致通过训练获得的事实知识完全丧失所需的额外训练token数量。因此,如果预训练数据集中某个事实知识属于长尾分布,并且该知识呈现给模型的间隔时间超过了某个阈值,那么这种知识将无法被模型解码为其前k个生成结果,或者无法被学习,无论预训练持续时间多长。这意味着存在一个可学习性阈值,即模型无法获取其遭遇间隔时间超过该阈值的知识。大多数广为人知的事实很可能以低于这个可学习性阈值的训练步骤间隔呈现给模型。在这种情况下,随着预训练的进行,模型每次遇到该知识时,都会积累该知识的日志概率,并在某个时刻,该知识的累积日志概率将足够高,以至于能够作为模型的解码输出被生成。此外,LLM对于更流行的知识积累日志概率的速度更快,因此这类知识的获取将在相对较早的预训练阶段反映在模型的前k个输出序列生成中。
总结来说,论文假设预训练数据中知识的流行度影响着这些知识在预训练过程中生成序列时被揭示的速度,除了长尾知识因其低流行度使得遭遇间隔长于可学习性阈值。论文假设较大且更多样化的预训练数据有助于模型性能的原因是,模型能够获取更广泛的事实知识(更多的知识将以短于可学习性阈值的间隔呈现),因为随着数据变得更大和更多样化,事实知识分布的偏斜度可能会得到缓解。
为什么去重能提升模型性能?最近的预训练语料库都经过了彻底的去重处理,因为广泛观察到数据去重可以提高模型性能。论文的结果表明,观察到的转述注入场景中较小的衰减常数可以解释使用去重训练数据训练大型语言模型(LLMs)的优势,因为去重倾向于减缓已获得事实知识的遗忘速度。这一点也可以在图2中观察到,即在遭遇注入知识后立即增加的对数概率的差距在复制和转述注入场景之间很大,但这一差距在测量结束时减小。
此外,由于模型倾向于对记忆而非泛化提供更高的增加的对数概率(图2和3),向模型呈现间隔短的重复文本将导致记忆与泛化之间的差距扩大,这将促使模型更倾向于生成记忆的上下文而非泛化事实知识。
如何学习大模型 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 的正确特征了。