Crystal: 揭示大语言模型在语言和代码方面的能力
软件工程
2024-11-08 v1 人工智能
计算与语言
摘要
专注于代码生成的大型语言模型(LLM)(通常也被称为代码LLM),例如StarCoder和Code Llama,在各种软件开发场景中发挥着越来越重要的作用。对于代码LLM来说,同时具备代码生成和自然语言能力也至关重要,因为许多特定应用,如使用自然语言进行代码片段检索或代码解释,都依赖于此。语言能力和编码技能之间的复杂交互使得开发强大的代码LLM变得困难。此外,此前缺乏对混合代码和自然语言的LLM预训练策略的深入研究。在本工作中,我们提出了一种预训练策略,以增强单个LLM中自然语言和编码能力的整合。具体而言,它包括两个阶段的训练,并适当调整代码/语言比例。所得模型Crystal在两个领域均表现出卓越的能力。具体而言,其自然语言和编码性能分别与Llama 2和Code Llama相当。Crystal表现出更好的数据效率,仅使用1.4万亿个token,而Llama 2和Code Llama使用了超过2万亿个token。我们通过分析训练过程验证了预训练策略,观察到大多数基准测试中持续改进。我们还采用了以代码为中心的数据混合的典型应用适配阶段,结果发现它并未带来性能或训练效率的提升,这强调了精心设计数据方案的重要性。为了促进社区内的研究,我们承诺开源预训练的每个细节,包括训练数据集、代码、日志记录以及训练过程中的136个检查点。
引用
@article{arxiv.2411.04156,
title = {Crystal: Illuminating LLM Abilities on Language and Code},
author = {Tianhua Tao and Junbo Li and Bowen Tan and Hongyi Wang and William Marshall and Bhargav M Kanakiya and Joel Hestness and Natalia Vassilieva and Zhiqiang Shen and Eric P. Xing and Zhengzhong Liu},
journal= {arXiv preprint arXiv:2411.04156},
year = {2024}
}
备注
Published as a conference paper at COLM 2024