随着ChatGPT的爆火,大规模语言模型(Large Language Model,LLM)如日中天。然而,由于相关数据细节并不公开,相关研究大多都是盲人摸象式探索,缺乏系统的经验指导。
本文针对LLM的语言模型预训练步骤给出了系统的经验性探索,训练了28个1.5B规模的LLM,关注数据时间、不同的风险内容和质量过滤策略、不同的领域组合方案,对预训练来拿带来的影响。
结论表明,预训练数据与测试数据之前的时间差距会带来负面影响,且无法被后续的fine-tuning克服;模型表现与内容风险难以两全;不同来源的数据混合,如书籍与网页数据,能够带来明确的提升。
论文题目:
A Pretrainer's Guide to Training Data: Measuring the Effects of Data Age, Domain Coverage, Quality, & Toxicity
论文链接:
https://arxiv.org/pdf/2305.13169.pdf
实验设置
模型选用基于T5X codebase实现的LM-XL, 一个 1.5B 规模的Decoder-only模型,通过自回归的next-token-prediction目标训练。此外,还用了一个20M参数的LM-Small模型作为小模型对比。
数据集基于C4和Pile。C4数据集是Common Crawl在2019年的快照,包含新闻、法律、维基百科和通用网络文档等多种文本类型。Pile数据集包括22个来源的800GB数据,如Common Crawl的网络爬取数据,以及更多多样化的学术、书籍、编码、医疗、法律和社交等数据源。
评价方式:
- 领域泛化:MRQA和UnifiedQA,包含30个不同领域的问答数据集。
- 时效性:从论文[1]中选取了5个不同领域的数据集,PubCLS, NewSum, PoliAffs, TwiERC, 和 AIC。
- 有害信息生成:根据Perspective API和RealToxicityPrompts数据集,关注与性别、种族和宗教等相关的输出。
- 有害信息识别:使用了来自Social Bias Frames、DynaHate和Toxigen等数据集的训练和测试集,以评估模型识别有害信息的能力。
预训练数据与测试数据的时间差
模型表现如上图所示。其中,纵轴是预训练数据的时间来源,横轴是测试数据的时间来源。按时间差进行统计后可以得到下图。从中可以看出,训练数据和测试数据时间上的差异会带来明显的表现下降。
具体看下图的统计数据,其中TD训练数据和测试数据每差一年的预期效果下降,而r是皮尔森相关系数。Fine-tuning部分是在测试前,先用和数据集相同年代的语料精调一下。可以看出,预训练数据和评估数据之间的时间不一致无法通过微调来解决,预训练数据时效性的影响对于较大的模型比较明显。
有害内容/质量过滤策略
下图可以看出,预训练数据中有害内容过滤越多,模型生成有害信息就越少,模型鉴别有害信息的能力也越弱。但低质数据过滤之后,会减少数据的多样性,从而提高有害信息鉴别的能力的同时,让模型生成更多的有害信息。
下图可以看出,在LM-XL上,低质量内容过滤可以提升大多数领域的问答任务表现,除了在书籍数据上起到了反效果。事实上,在Books, Wikipedia, 和 Web 这三个"高质量"领域中,低质量数据过滤起到的效果反而是最差的。
下图可以看出,有害信息过滤会对LM-XL解决绝大多数下游QA任务的能力起到负面影响。
预训练数据领域组合
下图可以看出,去掉预训练数据中的某一个领域,普遍会对模型在下游任务上的表现产生负面影响。领域多样性对预训练数据而言,甚至比领域相关性更重要。Common Crawl, OpenWeb, 和 Books 对下游任务表现的影响最为明显。
下图中,我们观察去掉预训练数据中的某一个领域,对有害信息生成与检测的影响。可以发现,去掉一个领域的数据,普遍会对有害信息检测产生负面影响。书籍、学术和互联网数据含有相对较多的有害信息(如个人信息等),将其去除可以让预训练模型生成较少的有害信息。
结束语
这篇文章调研了大语言模型训练数据对预训练过程的影响,为大语言模型的研究提供了有价值的经验指导,同时又让人们看到了谷歌的财大气粗。训28个1.5B的大模型不带眨眼的,而且只是为了得到些经验性的结论而非产生直接的社会经济效益。
参考资料
[1] Time waits for no one! analysis and challenges of temporal misalignment.