LLM2D
编程每个示例:大规模提升预训练数据质量,如同专家一般
Programming Every Example: Lifting Pre-training Data Quality like Experts at Scale
作者: Fan Zhou, Zengzhi Wang, Qian Liu, Junlong Li, Pengfei Liu
发布日期: 9/26/2024
arXiv ID: oai:arXiv.org:2409.17115v1

摘要

大型语言模型的预训练传统上依赖于人类专家来制定启发式方法以提高语料库质量,迄今为止已经开发出许多规则。然而,这些规则缺乏灵活性,无法有效地解决单个示例的独特特征。同时,对每个示例应用定制规则对于人类专家来说是不切实际的。在本文中,我们证明了即使是参数少至 0.3B 的小型语言模型,也能展现出与人类专家相当的强大数据细化能力。我们引入了编程每个示例 (ProX),这是一个新颖的框架,它将数据细化视为一项编程任务,使模型能够通过生成和执行细粒度的操作(例如字符串规范化)来细化语料库,从而对每个单独的示例进行大规模处理。实验结果表明,在 ProX 策划的数据上预训练的模型在各种下游基准测试中,比原始数据或通过其他选择方法过滤的数据的性能高出 2% 以上。它的有效性涵盖了各种模型尺寸和预训练语料库,包括 C4、RedPajama-V2 和 FineWeb。此外,ProX 在特定领域的持续预训练中展现出巨大的潜力:在没有特定领域设计的情况下,在 ProX 细化的 OpenWebMath 上训练的模型优于人工设计的基于规则的方法,在 Mistral-7B 上平均准确率提高了 7.6%,在 Llama-2-7B 上提高了 14.6%,在 CodeLlama-7B 上提高了 20.3%,所有这些都在 100 亿个词元内,与在 2000 亿个词元上训练的 Llemma-7B 等模型相当。进一步分析表明,ProX 显着节省了训练 FLOPs,为高效的 LLM 预训练提供了有希望的途径。我们正在开源 ProX,包括超过 1000 亿个语料库、模型,并共享所有训练和实现细节,以实现可重复的研究和未来的创新。代码:https://github.com/GAIR-NLP/ProX