Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

ICML 2024 | 大语言模型预训练新前沿:「最佳适配打包」重塑文档处理标准

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

在大型语言模型的训练过程中,数据的处理方式至关重要。

传统的方法通常通过将大量文档拼接并切分成等同于模型的上下文长度的训练序列。这虽然提高了训练效率,但也常导致文档的不必要截断,损害数据完整性,导致关键的上下文信息丢失,进而影响模型学习到的内容的逻辑连贯性和事实一致性,并使模型更容易产生幻觉。

AWS AI Labs 的研究人员针对这一常见的拼接-分块文本处理方式进行了深入研究, 发现其严重影响了模型理解上下文连贯性和事实一致性的能力。这不仅影响了模型在下游任务的表现,还增加了产生幻觉的风险。

针对这一问题,他们提出了一种创新的文档处理策略——最佳适配打包 (Best-fit Packing),通过优化文档组合来消除不必要的文本截断,并显著地提升了模型的性能且减少模型幻觉。这一研究已被ICML 2024接收。

图片

文章标题:Fewer Truncations Improve Language Modeling
论文链接:https://arxiv.org/pdf/2404.10830

研究背景

在传统的大型语言模型训练方法中,为了提高效率,研究人员通常会将多个输入文档拼接在一起,然后将这些拼接的文档分割成固定长度的序列。

这种方法虽然简单高效,但它会造成一个重大问题——文档截断(document truncation),损害了数据完整性(data integrity)。文档截断会导致文档包含的信息丢失 (loss of information)。

此外,文档截断减少了每个序列中的上下文量,可能导致下一个词的预测与上文不相关,从而使模型更容易产生幻觉 (hallucination)。

以下的例子展示了文档截断带来的问题:

  • 图2(a):在Python编程中,原始代码虽然正确,但将变量定义与使用分割到不同的训练序列中会引入语法错误,导致某些变量在后续训练序列中未定义,从而使得模型学习到错误的模式,并可能在下游任务中产生幻觉。例如,在程序合成任务中,模型可能会在没有定义的情况下直接使用变量。
  • 图2(b):截断同样损害了信息的完整性。例如,摘要中的“Monday morning”无法与训练序列中的任何上下文匹配,导致内容失实。这种信息不完整性会显著降低模型对上下文信息的敏感度,导致生成的内容与实际情况不符,即所谓的不忠实生成 (unfaithful generation)。
  • 图2(c):截断还会阻碍训练期间的知识获取,因为知识在文本中的表现形式通常依赖完整的句子或段落。例如,模型无法学习到ICML会议的地点,因为会议名称和地点分布在不同的训练序列中。
图片

图2. 文档截断导致幻觉或知识丧失的例子。(a) 变量定义(蓝色部分)被截断,随后的使用调用导致未定义名称(红色部分)。(b) 关键上下文信息被截断(蓝色部分),使得摘要不忠实于原文(红色部分),(c) 由于截断,模型不知道ICML 2024的举办地点。

最佳适配打包

针对这一问题,研究者提出了最佳适配打包 (Best-fit Packing)。

该方法使用长度感知的组合优化技术,有效地将文档打包到训练序列中,从而完全消除不必要的截断。这不仅保持了传统方法的训练效率,而且通过减少数据的片段化,实质性地提高了模型训练的质量。

作者首先先将每个文本分割成一或多个至多长为模型上下文长度L的序列。这一步限制来自于模型,所以是必须进行的。

现在,基于大量的至多长为L的文件块,研究者希望将它们合理地组合,并获得尽量少的训练序列。这个问题可以被看作一个集装优化(Bin Packing)问题。集装优化问题是NP-hard的。如下图算法所示,这里他们采用了最佳适配递减算法(Best-Fit-Decreasing, BFD) 的启发式策略。

接下来从时间复杂度 (Time Complexity) 和紧凑性 (Compactness) 的角度来讨论BFD的可行性。

图片

时间复杂度

BFD的排序和打包的时间复杂度均为O(N log N),其中N是文档块的数量。在预训练数据处理中,由于文档块的长度是整数并且是有限的 ([1, L]),可以使用计数排序 (count sort) 来实现将排序的时间复杂度降低到O(N)。

在打包阶段,通过使用段树(Segment Tree)的数据结构,使得每次寻找最佳适配容器的操作只需对数时间,即O(log L)。又因为L<<N, 使得总时长约为 O(N),进而整体算法与数据大小呈线性关系,确保对大规模数据集的适用性:处理大型预训练语料库如Falcon RefinedWeb (约十亿文档) 只需要3小时。

图片

紧凑性 :

紧凑性是衡量打包算法效果的另一个重要指标,在不破坏原文档完整性的同时需要尽可能减少训练序列的数量以提高模型训练的效率。

在实际应用中,通过精确控制序列的填充和排布,最佳适配打包能够生成几乎与传统方法相当数量的训练序列,同时显著减少了因截断而造成的数据损失。

图片

基于在自然语言(RefinedWeb) 和编程语言(The Stack) 数据集上的实验,我们发现最佳适配打包显著降低了文本截断。

值得注意的是,大多数文档包含的token数少于2048个;由于传统拼接-分块时造成的截断主要发生在这一范围内,而最佳适配打包不会截断任何长度低于L的文档,由此有效地保持了绝大多数文档的完整性。

图片

图4:当最大序列长度设置为2k或8k时,在不同文档长度下,每个文档长度对应的文档数量和截断数量。使用“最佳适应打包”(Best-fit Packing)技术后,截断数量明显减少。上方:自然语言。下方:编程语言。

实验与结果

研究人员详细报告了使用最佳适配打包与传统方法(即拼接方法)训练的语言模型在不同任务上的表现对比,包括:自然语言处理和编程语言任务,如阅读理解 (Reading Comprehension)、自然语言推理 (Natural Language Inference)、上下文跟随 (Context Following)、文本摘要 (Summarization)、世界知识 (Commonsense and Closed-book QA) 和程序合成 (Program Synthesis),总计22个子任务。

实验涉及的模型大小从70亿到130亿参数不等,序列长度从2千到8千令牌,数据集涵盖自然语言和编程语言。这些模型被训练在大规模的数据集上,如Falcon RefinedWeb和The Stack,并使用LLaMA架构进行实验。

图片

实验结果表明,使用最佳适配打包在在一系列任务中提升了模型性能,尤其是在阅读理解 (+4.7%)、自然语言推理 (+9.3%)、上下文跟随 (+16.8%) 和程序合成 (+15.0%) 等任务中表现显著(由于不同任务的度量标准的规模各异,作者默认使用相对改进来描述结果。) 

经过统计检验,研究者发现所有结果要么统计显著地优于基线(标记为s),要么与基线持平(标记为n),且在所有评测的任务中,使用最佳适配打包均未观察到性能显著下降。

这一一致性和单调性的提升突显了最佳适配打包不仅能提升模型的整体表现,还能保证在不同任务和条件下的稳定性。详细的结果和讨论请参考正文。

图片

图片

图片

图片

图片

作者们重点研究了最佳适配打包对幻觉的影响。

在摘要生成中,使用QAFactEval度量发现采用最佳适配打包的模型在生成幻觉方面有显著降低

更为显著的是,在程序合成任务中,使用最佳适配打包训练的模型生成代码时,“未定义名称”(Undefined Name)的错误减少了高达58.3%,这表明模型对程序结构和逻辑的理解更为完整,从而有效减少了幻觉现象。

作者们还揭示了模型在处理不同类型知识时的表现差异。

如前所述,训练过程中的截断可能影响信息的完整性,从而妨碍知识的获取。但大多数标准评估集中的问题侧重于常见知识 (common knowledge),这类知识在人类语言中频繁出现。因此即使部分知识因截断而丢失,模型仍有很好的机会从文档片段中学习到这些信息。

相比之下,不常见的尾部知识(tail knowledge)更容易受到截断的影响,因为这类信息在训练数据中出现的频率本身就低,模型难以从其他来源补充丢失的知识。

通过对ARC-C和ARC-E两个测试集的结果分析,研究者发现,相较于含有更多常见知识的ARC-E,使用最佳适配打包会使模型在含有更多尾部知识的ARC-C中有更显著的性能提升。

通过计算每对问题-答案组合在 Kandpal et al. (2023) 预处理的Wikipedia实体映射中的共现次数,这一发现得到了进一步验证。统计结果显示,挑战集(ARC-C)包含了更多罕见共现的对,这验证最佳适配打包能有效支持尾部知识学习的假设,也为为何传统的大型语言模型在学习长尾知识时会遇到困难提供了一种解释。

图片

总结

本文提出了大型语言模型训练中普遍存在的文档截断问题。

这种截断效应影响了模型学习到逻辑连贯性和事实一致性,并增加了生成过程中的幻觉现象。作者们提出了最佳适配打包(Best-fit Packing),通过优化数据整理过程,最大限度地保留了每个文档的完整性。这一方法不仅适用于处理数十亿文档的大规模数据集,而且在数据紧凑性方面与传统方法持平。 

实验结果显示,该方法在减少不必要的截断方面极为有效,能够显著提升模型在各种文本和代码任务中的表现,同时有效减少封闭域的语言生成幻觉。尽管本文的实验主要集中在预训练阶段,最佳适配打包也可广泛应用于其他如微调阶段。这项工作为开发更高效、更可靠的语言模型做出了贡献,推动了语言模型训练技术的发展。

有关更多研究细节,请参阅原始论文。如果有意向工作或实习,可邮件联系本文作者 zijwan@amazon.com.
工程ICML 2024AWS AI Labs
相关数据
感知技术

知觉或感知是外界刺激作用于感官时,脑对外界的整体的看法和理解,为我们对外界的感官信息进行组织和解释。在认知科学中,也可看作一组程序,包括获取信息、理解信息、筛选信息、组织信息。与感觉不同,知觉反映的是由对象的各样属性及关系构成的整体。

文本分割技术

文本分割是将书面文本分割成有意义的单位的过程,如单词、句子或主题。这个术语既适用于人类阅读文本时使用的心理过程,也适用于计算机中实现的人工过程,计算机是自然语言处理的主题。这个问题并不简单,因为虽然有些书面语言有明确的词界标记,例如书面英语的单词空间和阿拉伯语独特的最初、中间和最后的字母形状,但这种信号有时是含糊不清的,在所有书面语言中都不存在。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

时间复杂度技术

在计算机科学中,算法的时间复杂度是一个函数,它定量描述了该算法的运行时间。这是一个代表算法输入值的字符串的长度的函数。时间复杂度常用大O符号表述,不包括这个函数的低阶项和首项系数。使用这种方式时,时间复杂度可被称为是渐近的,亦即考察输入值大小趋近无穷时的情况。例如,如果一个算法对于任何大小为 n (必须比 n0 大)的输入,它至多需要 5n3 + 3n 的时间运行完毕,那么它的渐近时间复杂度是 O(n3)。

计数排序技术

计数排序是一种稳定的线性时间排序算法。计数排序使用一个额外的数组C ,其中第i个元素是待排序数组 A中值等于 i的元素的个数。然后根据数组 C 来将 A中的元素排到正确的位置。

映射技术

映射指的是具有某种特殊结构的函数,或泛指类函数思想的范畴论中的态射。 逻辑和图论中也有一些不太常规的用法。其数学定义为:两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,y称为元素x在映射f下的象,记作:y=f(x)。x称为y关于映射f的原象*。*集合A中所有元素的象的集合称为映射f的值域,记作f(A)。同样的,在机器学习中,映射就是输入与输出之间的对应关系。

语料库技术

语料库一词在语言学上意指大量的文本,通常经过整理,具有既定格式与标记;事实上,语料库英文 "text corpus" 的涵意即为"body of text"。

逻辑技术

人工智能领域用逻辑来理解智能推理问题;它可以提供用于分析编程语言的技术,也可用作分析、表征知识或编程的工具。目前人们常用的逻辑分支有命题逻辑(Propositional Logic )以及一阶逻辑(FOL)等谓词逻辑。

自然语言处理技术

自然语言处理(英语:natural language processing,缩写作 NLP)是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化为计算机程序更易于处理的形式。

语言模型技术

语言模型经常使用在许多自然语言处理方面的应用,如语音识别,机器翻译,词性标注,句法分析和资讯检索。由于字词与句子都是任意组合的长度,因此在训练过的语言模型中会出现未曾出现的字串(资料稀疏的问题),也使得在语料库中估算字串的机率变得很困难,这也是要使用近似的平滑n元语法(N-gram)模型之原因。

自然语言推理技术

自然语言推理是在给定“前提”的情况下确定“假设”是真(蕴涵),假(矛盾)还是未确定(中立)的任务。

机器之心机构

机器之心,成立于2014年,是国内最具影响力、最专业、唯一用于国际品牌的人工智能信息服务与产业服务平台。目前机器之心已经建立起涵盖媒体、数据、活动、研究及咨询、线下物理空间于一体的业务体系,为各类人工智能从业者提供综合信息服务和产业服务。

https://www.jiqizhixin.com/
分块技术

将标注好词性的句子按句法结构把某些词聚合在一起形成比如主语、谓语、宾语等等。

程序合成技术

在计算机科学中,程序合成是自动构建满足给定高级规范的程序的任务。

推荐文章
暂无评论
暂无评论~