在训练的哪个阶段引入代码数据能帮助大语言模型的推理能力?

引言

在近年来,大语言模型(LLMs)的成功引起了学术界和工业界的广泛关注。OpenAI 的 ChatGPT、谷歌的 PaLM、百度的 ERNIE Bot 等产品都展示了 LLMs 在多种任务上的卓越表现。在这些模型的训练过程中,数据的选择和训练策略显得尤为重要。本文旨在探讨代码数据在不同训练阶段对 LLMs 推理能力的影响,具体分析在预训练阶段、指令微调阶段以及两者结合时,代码数据如何影响模型的推理表现。

研究背景

大语言模型的成功离不开两大关键因素:训练数据和训练策略。以 LLaMA 为例,其训练数据包含了来自 CommonCrawl 和 GitHub 的文本和代码,总计达到 1.4 万亿个标记。这些多样化的数据帮助模型在多项任务上取得了竞争力的表现。

训练数据的重要性

相较于普通文本数据,代码数据的逻辑性更强且歧义更少,这使得模型在推理能力上更具优势。研究表明,在代码数据上训练的模型展现出了更强的推理能力。因此,我们的研究聚焦于一个重要问题:在什么训练阶段引入代码数据对 LLMs 的推理能力最为有效?

实验设计

我们进行了全面的实验,比较了在预训练阶段和指令微调阶段分别使用纯文本数据和混合文本-代码数据的效果。具体而言,我们使用了开源的 PanGu 模型作为基线模型,比较了 NL(自然语言)模型和 CODE(代码)模型在推理任务上的表现。

实验任务

为了全面评估模型的推理能力,我们选择了六个任务,涵盖逻辑推理、法律推理、科学推理、类比推理和代码推理。每个任务的评价标准各不相同,例如逻辑推理使用准确率,代码生成任务则使用 BLEU 分数。

预训练阶段的实验结果

在预训练阶段,我们观察到引入代码数据后,模型在大多数推理任务上的表现显著提升。例如,在逻辑推理任务中,CODE(2.6B)模型的准确率达到了 40.90%,而 NL(2.6B)模型仅为 45.45%。这些结果表明,添加代码数据不仅提高了与代码相关的能力,还对一般语言推理能力产生了积极影响。

任务 NL (2.6B) CODE (2.6B)
逻辑推理 45.45% 40.90%
法律推理 27.00% 28.70%
科学推理 45.18% 46.06%
类比推理 35.52% 36.12%
代码推理 46.85% 50.50%
代码生成 1.34 5.06

图 1:预训练阶段的实验结果对比

指令微调阶段的实验结果

进入指令微调阶段后,我们再次观察到不同类型的数据对模型表现的影响。添加代码数据的微调模型在代码相关任务(如 CosQA 和 MBPP)的表现显著优于仅使用文本指令的模型。然而,在一般推理任务上,效果并不如预训练阶段明显,某些任务甚至表现出下降。

任务 NN (2.6B) NC (2.6B) CC (2.6B)
逻辑推理 40.90% 40.90% 40.90%
法律推理 24.50% 26.10% 27.20%
科学推理 42.94% 43.44% 41.90%
类比推理 26.27% 28.66% 30.45%
代码推理 0.00 5.61 24.88

图 2:指令微调阶段的实验结果对比

动态混合策略的影响

针对不同类型数据的混合策略,我们测试了统一采样、逐步增加和逐步减少三种策略。结果显示,采用逐步减少代码数据比例的策略,对于代码相关任务的表现最佳。这表明在训练的早期阶段,使用更多的代码数据可以更好地激活模型的推理能力。

结论

综上所述,我们的研究表明,在预训练阶段引入代码数据显著提升了 LLMs 的推理能力,而在指令微调阶段,代码数据主要改善了特定任务的能力。未来的研究将进一步探讨代码数据对不同规模模型的影响,以及如何更有效地利用代码数据提升 LLMs 的推理能力。

参考文献

  1. Yingwei Ma, Yue Liu, Yue Yu, Yuanliang Zhang, Yu Jiang, Changjian Wang, Shanshan Li. (2024). At Which Training Stage Does Code Data Help LLMs Reasoning? ICLR 2024.
  2. Brown et al. (2020). Language Models are Few-Shot Learners.
  3. Ouyang et al. (2022). Training language models to follow instructions with human feedback.
  4. Lu et al. (2022). ScienceQA: A dataset for evaluating scientific question answering.
  5. Wei et al. (2022). Chain-of-Thought Prompting Elicits Reasoning in Large Language Models.

图 3:动态混合策略对比结果

| 策略 | 逻辑推理 | 法律推理 | 科学推理 | 类比推理 | 代码推理 | 代码生成 |
|------|-----------|-----------|-----------|-----------|-----------|-----------|
| 统一采样 | 31.82% | 27.30% | 43.76% | 28.66% | 51.65% | 23.68% |
| 逐步增加 | 36.36% | 26.70% | 43.19% | 28.36% | 50.66% | 23.42% |
| 逐步减少 | 40.90% | 27.10% | 41.90% | 27.46% | 52.48% | 24.88% |

通过这些发现,我们期待未来的研究能在更大规模的模型上验证我们的结果,并探索代码数据如何与模型的潜在能力相互作用。

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...