主要观点总结
本文主要探讨了代码数据在预训练中的作用,分析了代码数据如何影响非代码任务的表现。通过多项实验,作者发现代码数据可以显著提升自然语言推理、世界知识类任务的表现以及代码性能。文章还介绍了预训练中的冷却阶段包含代码数据的影响,以及不同模型变体在各项任务中的表现。
关键观点总结
关键观点1: 代码数据在非代码任务中的关键作用
实验表明,加入代码数据可以显著提升自然语言推理、世界知识类任务的表现,同时提高生成胜率。代码数据可以提供关键提升,相对文本预训练,自然语言推理能力提升了8.2%,世界知识提升了4.2%,生成胜率提升了6.6%,代码性能提升了12倍。
关键观点2: 代码质量和特性对预训练性能的影响
使用高质量合成代码数据集进行训练,可以提高预训练的性能。特别是,使用高质量的合成代码数据集进行训练,相对于基于网络的代码数据,自然语言推理能力提高了9%,代码性能提高了44%。
关键观点3: 预训练中代码数据比例的影响
为了获得最佳的世界知识和自然语言推理基准测试性能,最优的代码数据比例为25%。过多的代码数据可能会导致性能下降,特别是当代码数据比例达到75%时,世界知识的性能可能下降高达86.1%。
关键观点4: 预训练的冷却阶段中包含代码的影响
在预训练的冷却阶段包含代码数据,并对高质量数据源进行加权处理,可以进一步提升模型在自然语言推理、世界知识和代码性能上的表现。相对于没有冷却的模型,自然语言推理提升了3.6%,世界知识提升了10.1%,代码性能提升了20%。
关键观点5: 不同模型变体的比较
文章比较了不同模型变体在各项任务中的表现,并指出在某些情况下,包含代码数据的模型变体在自然语言任务上的表现优于仅使用文本数据的模型。
文章预览
To Code, or Not To Code? Exploring Impact of Code in Pre-training 代码数据在预训练时要训吗?训多少?退火时要放吗? 小编一直坚信代码数据与代码任务的重要性,恰好有一篇 前些天很火的文章,给出了很多关于这方面的详细结论。首先放一张网友总结的图片如下。 传言代码数据在提高通用LLM表现上有很关键作用,但分析代码在非代码任务上的具体影响的工作很有限。作者在自然语言推理、世界知识类任务、代码任务测试上和以LLM-as-a-judge的胜率比较的方式评估从470M到2.8B规模的模型表现。在各类设置中,作者发现了一致的结果,即代码质量的提升对所有任务都有显著的影响。各项结论如下: 代码为其他非代码任务提供关键提升 :与仅限于文本的预训练相比,加入代码可使自然语言推理能力相对提升8.2%,世界知识(world knowledge)相对提升4.2%,生
………………………………