明确了:文本数据中加点代码,训练出的大模型更强、更通用

明确了:文本数据中加点代码,训练出的大模型更强、更通用

💡 原文中文,约3800字,阅读约需9分钟。
📝

内容提要

代码对大语言模型(LLM)的性能有重要影响,改进代码质量和保留代码数据可以产生积极影响。使用标记样式的编程语言、合成生成的代码和代码相邻数据可以提高预训练的性能。预训练模型初始化和代码数据比例也对模型性能有影响。

🔎

延伸解读

代码数据比例并非越高越好

研究发现,预训练中代码数据比例对任务性能的影响存在差异:代码任务性能随代码比例增加线性提升,但自然语言推理和世界知识任务存在一个最佳比例范围,超过后收益可能下降。这意味着在通用大模型预训练中,需要根据目标能力平衡代码与文本数据的配比,而非盲目增加代码。

合成代码与相邻数据的独特价值

文章指出,使用标记样式语言、代码相邻数据(如GitHub提交)和合成生成的代码都能提升预训练性能。但只有合成代码能显著提高代码性能,且少量高质量合成代码即可同时提升代码和非代码任务。这提示在数据构建中,合成数据可作为高质量补充,但需注意其生成质量和验证。

冷却阶段加入代码的增益

在预训练冷却阶段引入代码数据并提高高质量数据权重,能进一步改善所有任务:自然语言推理提升3.6%,世界知识提升10.1%,代码性能提升20%。相比无冷却的基线,胜率高出52.3%。这表明训练后期的数据配比调整对模型最终性能有显著影响,值得在训练流程中重视。

模型初始化与规模的影响

使用代码预训练模型初始化可提升自然语言任务性能,其中100%代码预训练初始化在自然语言推理上表现最佳。研究还评估了从4.7亿到28亿参数的不同规模模型,发现代码对非代码任务的改进具有一致性。这为实际训练中利用代码预训练模型作为起点提供了依据,但需考虑模型规模与计算成本。

❓

Q&A

代码在大语言模型中的作用是什么?

代码对大语言模型的性能至关重要,能够显著提升自然语言推理和其他非代码任务的表现。

如何提高大语言模型的预训练性能?

通过改进代码质量、使用合成生成的代码和相邻代码数据,可以显著提高预训练性能。

预训练冷却阶段包含代码数据有什么好处?

在预训练冷却阶段包含代码数据,可以进一步提高自然语言推理、世界知识和代码性能。

使用合成生成的代码对模型性能有什么影响?

使用合成生成的代码可以提高自然语言推理和代码性能,分别提高9%和44%。

代码质量如何影响大语言模型的表现?

代码质量的提高对所有任务都有显著影响,尤其是在自然语言推理和代码生成任务中。

不同规模的模型在使用代码数据时表现如何?

研究表明,代码对不同规模模型的性能都有重大改进,尤其是在自然语言推理和世界知识任务中。

🏷️

标签

➡️

继续阅读