摘要
arXiv:2409.17115v2 宣布类型: 替换交叉
摘要:大型语言模型的预训练历来依赖于人类专家制定启发式方法以提高语料库质量,从而产生了大量的规则。然而,这些规则缺乏灵活应对个别示例独特特性的能力。与此同时,对每个示例应用定制规则对于人类专家来说是不切实际的。在这篇论文中,我们展示了即使是小型语言模型,参数量仅0.3B,也能展示出与人类专家相当甚至更强大的数据精炼能力。我们引入了“Programming Every Example”(ProX)这一新颖框架,将数据精炼视为编程任务,使模型能够通过为每个个别示例生成和执行细粒度操作(如字符串规范化等)来批量精炼语料库。实验结果显示,使用ProX精炼的数据预训练的模型在各种下游基准测试中的表现优于原始数据或使用其他选择方法过滤的数据,总体上超过2%。这一效果适用于不同规模的模型和预训练语料库,包括C4、RedPajama-V2、FineWeb、FineWeb-Edu和DCLM。此外,ProX在领域特定的连续预训练中表现出显著潜力:在没有领域特定设计的情况下,使用OpenWebMath精炼的数据训练的模型,在ProX下优于基于规则的人工设计方法,Mistral-7B的平均准确性提高了7.6%,Llama-2-7B提高了14.6%,CodeLlama-7B提高了20.3%,都在约10B标记内达到可比性,与在200B标记上训练的像Llama-7B这样的模型相媲美。进一步的分析表明,ProX在显著节省训练FLOPs方面具有优势,为高效大型语言模型预训练提供了有前途的途径。我们开源了ProX,其中包括超过500B的语料库、模型及其训练和实现的所有细节,以促进可重复研究和未来创新。代码:https://github.com/GAIR-NLP/ProX