今天是2023年9月29日,星期五,中秋节,祝大家中秋快乐。
我们再来关注数据清洗方面的工作,目前针对训练数据据集进行剪枝【也就是数据过滤】以获得更高质量的数据集,主流的方法是基于规则的手工启发式过滤方法,比如写正则表达式。
最近的工作《When Less is More: Investigating Data Pruning for Pretraining LLMs at Scale》 探索了三种不同的数据修剪技术,即三种不同的数据质量估计方法,包括困惑度(perplexity)、错误L2范数(ErrorL2-Norm)和记忆化(memorization)。3
在这三种方法中,与使用EL2N和记忆化对50%的数据集进行剪枝的性能最好的模型相比,基于困惑度对50%的数据集进行剪枝的模型分别提高了1.33%和1.77%。与使用EL2N和记忆因子剪枝到30%数据集的性能最好的模型相比,使用困惑度剪枝到30%数据集的模型分别提高了2.1%和1.6%。
地址:https://arxiv.org/abs/2309.04564
本文对该工作进行介绍,供大家一起参考。
一、数据剪枝的任务定义
给定一个大规模数据集D,对所有文档进行tokenizer,并在文档末尾添加一个特殊的标记,然后,将其连接并分割成n个序列zi,其固定长度t等于模型的上下文长度:D={z1,.,zn}。
考虑训练实例的子集Pξ,其中ξ指的是用于选择子集的算法。通过计算每个数据点zi的剪枝得分Scoreξ(zi)来建立这个子集,然后将符合选择标准的实例填充到Pξ中:
从D中移除Pξ后,剩余的实例描述如下:
目标是选择剪枝算法ξ,以便在剩余的训练实例子集上训练语言模型时,Dξ=DPξ。
结果是,在剩余的训练实例子集Dˆξ上训练语言模型时,模型的性能不会降低:
其中,MDˆξ是在Dˆξ上训练的模型,Pτ是在任务τ上的性能。
该工作探讨三个度量:困惑度、误差L2-Norm(EL2N)和记忆度,并评估使用这些度量来确定Pξ的不同方法。其中对于每个指标,都会考虑三种不同的选择标准来确定Pξ,如将D的上百分位数、中百分位数或下百分位数分离出来作为要保留的数据。
二、数据质量评估方案
1、基于困惑度(perplexity)的质量评估
Perplexity衡量的是特定文本在特定语言模型基础上的可能性。对于D中的每个实例zi,计算的困惑度指标为:
其中,NLL(tj)是标记tj在序列zi中的负对数似然值:
困惑度得分越低,说明模型赋予文本的概率越高。
2、基于错误L2范数(ErrorL2-Norm)的质量评估
ErrorL2-Norm(EL2N)得分最初是在计算机视觉环境中提出的,用于确定哪些样本对学习是重要的,它利用模型的早期学习信号来衡量每个样本的重要性。
该工作将文本序列上的EL2N分数定义为误差向量的平均L2准则,其中yˆi是参考模型对词汇的预测概率分布,yt是真实标签的单次编码表示:
在具体实现上,该工作首先评估了在两个不同checkpoint上从单一参考模型获得的EL2N分数的剪枝效果,分别对应于250步和1000步的训练数据集D的14%和55%,以确定在出现可用的剪枝信号之前所需的步数。然后,利用不同的随机初始化方法训练十个不同的参考模型,并对所有十个模型的EL2N分数进行平均,从而得到最终的EL2N分数。
作者认为,EL2N分数较低的例子通常是模型在早期训练阶段学习到的,这可能是因为它们相对较容易。相反,EL2N分数较高的示例则表明模型在学习这些示例时仍会遭受重大损失,因此可能需要更多的迭代来学习。
3、基于记忆化(memorization)的质量评估
该工作定义的记忆分数:
其中,z是一个数据点,zˆ是参考模型预测的标记序列,1(.)是一个指示函数。参考模型使用数据点z的前M个标记来计算记忆分数。
然后,再贪婪地生成N个额外的token,即zˆ。记忆分数是贪婪生成的N个标记(zˆM:M+N)中与原始数据点(zM:M+N)完全匹配的部分。
在该试验中,M=N=32。作者最初并没有提出将此作为数据剪枝指标,但假设它可以作为一种有价值的排序方法,用于识别需要额外学习的示例。为了确保记忆分数的适用性,使用了保证看过完整训练集的参考模型。记忆分数越高,说明模型逐字再现的文本越多。
三、实验设置
该工作使用标准语言建模目标来训练自回归解码器转换器模型。
给定来自训练数据D的输入序列zi=[r1,—,rt],训练参数为θ的语言模型,以最小化负对数似然损失。
该工作的语言模型采用GPT架构,在训练模型时,该工作使用AdamW进行线性余弦缩放,批量大小为2048。
1、删除简单实例可提高性能
虽然每种剪枝方法中最有竞争力的变体根据所保留的评分分布子集(顶部、中部或底部)的不同而不同,但观察到一个一致的模式:
性能最高的变体并不是与”容易”数据相对应的子集,对”容易”一词的解释因所采用的测量方法而异。在使用困惑度指标时,它指的是具有最低困惑度的底层样本;在使用”EL2N”指标时,它指的是具有最低困惑度的底层样本。使用EL2N指标时,”容易”也指初始损失最小的底层样本。在记忆方面,它指的是记忆最彻底的顶部样本。
如图2所示,与中间或顶部子集相比,底部子集在不同大小的参考模型之间的结果差异要小得多,这表明底部子集可能不适合用于训练。
对于不同的参考模型大小和剪枝比例,中间实验的测试集复杂度一直较低。
一般来说,随着剩余数据量的减少,性能会单调下降,表现最好的参考模型的中间子集除外。在这些情况下,只保留50%,甚至30%的数据集的性能要优于保留70%的数据集。
图3b(a)显示了EL2N指标的结果。虽然现最好的运行并没有优于基线,但当保留50%的中间子集时,表现最好,优于在70%的数据集上训练的模型,这与使用困惑度时的结果类似。
随着中间子集的增加,它开始与最简单的示例重叠,从而降低了性能。
最后,当使用记忆因子作为剪枝指标时,保留记忆最少的样本(底部子集)通常表现最佳。
2、简单剪枝指标优于更复杂的方法
图4比较了每种剪枝指标的最佳变体的性能结果:
(1)保留完全训练过的52B参考模型的Perplexity分数分布的中间值,
(2)保留记忆因子(最少记忆样本)分布的底部值,
(3)保留来自1000步检查点的EL2N分数分布的中间值。
结果表明,在所有规模的数据集上,使用困惑度对中间子集进行训练的效果都优于其他剪枝指标。对于某些变体,它还优于在整个数据集上进行的训练。
例如,在原始数据集规模的30%和50%时,困惑度的表现优于整个数据集规模。与不剪枝基线相比,剪枝到困惑度分布的中间50%会使困惑度提高0.97%。仅使用中间30%的数据也能实现几乎相同的性能,比不剪枝基线提高了0.80%。
3、使用较大参考模型的剪枝优势
图5显示了使用两种不同参考模型的不同剪枝策略的性能:一种是在维基百科上训练的模型,另一种是在CommonCrawl上训练的模型。
在两种设置(中间和顶部)中,与在噪声较大的CommonCrawl上训练的参考模型相比,在维基百科(干净无噪声语料库的一个例子)上训练的参考模型获得了持续较低的困惑度。
在使用中间子集或顶层子集的情况下,与无修剪基线相比,经过训练的模型性能得到了显著提高。
使用52B参数参考模型生成的困惑度分数进行数据剪枝,与124M参数参考模型实验中表现最佳的训练模型相比,困惑度提高了2.2%。
对于13B和52B参考模型,可以发现在保留中间和顶部子集的情况下,用更少的训练数据就能获得更好的性能。对于这两个较大的模型,保留中间30%和50%的训练数据产生的剪枝模型优于在中间70%的训练集上训练的剪枝模型。
4、在更干净数据上训练的参考模型会产生更好的剪枝信号
为了验证训练参考模型的数据是否会影响排名的质量?该工作比较了在维基百科和CommonCrawl这两个不同语料库上训练的参考模型所生成的排序。
图5比较了两种变体在不同剪枝比例和子集选择时的性能,可以观察到,在一般参考模型的两个最佳选择变体(中间和顶部)中,与在CommonCrawl上训练的模型相比,在维基百科上训练的模型产生的验证易混度一直较低。
维基百科的最佳变体(剪枝至中间的70%)比CommonCrawl的最佳变体(也是剪枝至中间的70%)高出0.69%。
这一发现总体上表明,投资于高质量的参考模型来生成排名会带来更有效的数据剪枝。在高质量数据上训练的参考模型更善于识别最有利于模型性能的数据子集。
5、早期参考模型checkpoint可作为有效的评分模型
为了研究参考模型在训练过程中的早期检查点是否能为计算判别性剪枝分数提供足够的信号。
该工作研究了从两个早期检查点获得的困惑度和EL2N分数:在对大约14%和55%的完整训练数据集(分别为250步和1000步训练)进行训练后获得的困惑度和EL2N分数。
虽然使用平均EL2N分数的最佳剪枝模型并没有优于仅使用一个参考模型的EL2N分数训练的最佳剪枝模型,但其性能模式与我们在较大的、完全训练过的参考模型中看到的情况更为相似。
6、基于复杂性的剪枝改进适用于更大规模的模型
在两种不同的剪枝模型规模下,将性能最好的剪枝方法与随机剪枝进行比较。从1.24亿参数模型到1.5亿参数模型,基于复杂度的剪枝方法的性能都有所提高。
图7显示了从1.24亿参数模型到1.5B参数模型的剪枝缩放。在对1.5B模型进行训练时,可以发现随机剪枝的效果较好,甚至达到了低于无剪枝运行时的水平,在124M和1.5B模型中,基于plexity的剪枝方法比随机剪枝方法的改进效果一致。
7、GLUE的下游评估
为了分析不同剪枝策略对LLM能力的影响,该工作在GLUE任务的子集上对模型进行了微调和评估,结果见表2所示。
我们发现,对预训练数据集进行剪枝可以持续提高所有任务的性能。
总结
本文主要介绍了最近的工作《When Less is More: Investigating Data Pruning for Pretraining LLMs at Scale》 探索了三种不同的数据修剪技术,即三种不同的数据质量估计方法,包括困惑度(perplexity)、错误L2范数(ErrorL2-Norm)和记忆化(memorization),这些方法本质上是数据的一个度量指标。
感兴趣的,可以在自己的业务数据上做实验。
最后,中秋快乐,继续加油。
参考文献
1、https://www.researchgate.net/publication/303005226_When_Less_Is_More_The_Pruning_of_Social_Networks_by_HIV-Positive_Older_Adults/link/5735152508ae298602df0a3b/download
2、https://arxiv.org/abs/2309.04564
关于我们
老刘,刘焕勇,NLP开源爱好者与践行者,主页:https://liuhuanyong.github.io。
老刘说NLP,将定期发布语言资源、工程实践、技术总结等内容,欢迎关注。
对于想加入更优质的知识图谱、事件图谱、大模型AIGC实践、相关分享的,可关注公众号,在后台菜单栏中点击会员社区->会员入群加入。