内容提要
代码对大语言模型(LLM)的性能有重要影响,改进代码质量和保留代码数据可以产生积极影响。使用标记样式的编程语言、合成生成的代码和代码相邻数据可以提高预训练的性能。预训练模型初始化和代码数据比例也对模型性能有影响。
延伸解读
代码数据比例并非越高越好
研究发现,预训练中代码数据比例对任务性能的影响存在差异:代码任务性能随代码比例增加线性提升,但自然语言推理和世界知识任务存在一个最佳比例范围,超过后收益可能下降。这意味着在通用大模型预训练中,需要根据目标能力平衡代码与文本数据的配比,而非盲目增加代码。
合成代码与相邻数据的独特价值
文章指出,使用标记样式语言、代码相邻数据(如GitHub提交)和合成生成的代码都能提升预训练性能。但只有合成代码能显著提高代码性能,且少量高质量合成代码即可同时提升代码和非代码任务。这提示在数据构建中,合成数据可作为高质量补充,但需注意其生成质量和验证。
冷却阶段加入代码的增益
在预训练冷却阶段引入代码数据并提高高质量数据权重,能进一步改善所有任务:自然语言推理提升3.6%,世界知识提升10.1%,代码性能提升20%。相比无冷却的基线,胜率高出52.3%。这表明训练后期的数据配比调整对模型最终性能有显著影响,值得在训练流程中重视。
模型初始化与规模的影响
使用代码预训练模型初始化可提升自然语言任务性能,其中100%代码预训练初始化在自然语言推理上表现最佳。研究还评估了从4.7亿到28亿参数的不同规模模型,发现代码对非代码任务的改进具有一致性。这为实际训练中利用代码预训练模型作为起点提供了依据,但需考虑模型规模与计算成本。
Q&A
代码在大语言模型中的作用是什么?
代码对大语言模型的性能至关重要,能够显著提升自然语言推理和其他非代码任务的表现。
如何提高大语言模型的预训练性能?
通过改进代码质量、使用合成生成的代码和相邻代码数据,可以显著提高预训练性能。
预训练冷却阶段包含代码数据有什么好处?
在预训练冷却阶段包含代码数据,可以进一步提高自然语言推理、世界知识和代码性能。
使用合成生成的代码对模型性能有什么影响?
使用合成生成的代码可以提高自然语言推理和代码性能,分别提高9%和44%。
代码质量如何影响大语言模型的表现?
代码质量的提高对所有任务都有显著影响,尤其是在自然语言推理和代码生成任务中。
不同规模的模型在使用代码数据时表现如何?
研究表明,代码对不同规模模型的性能都有重大改进,尤其是在自然语言推理和世界知识任务中。