编程语言能通过指令调整相互增强吗?
Can Programming Languages Boost Each Other via Instruction Tuning?
August 31, 2023
作者: Daoguang Zan, Ailun Yu, Bo Shen, Jiaxin Zhang, Taihong Chen, Bing Geng, Bei Chen, Jichuan Ji, Yafen Yao, Yongji Wang, Qianxiang Wang
cs.AI
摘要
当人类程序员掌握了一门编程语言后,学习新的编程语言会变得更容易。在本报告中,我们专注于探讨编程语言在对大型语言模型进行指令微调阶段时是否可以相互促进。我们在StarCoder上对8种流行的编程语言(Python、JavaScript、TypeScript、C、C++、Java、Go、HTML)进行了大量实验。结果表明,编程语言可以显著地相互改进。例如,使用Python训练的CodeM-Python 15B能够使Java在HumanEval-X上的pass@1绝对值提高了17.95%。更令人惊讶的是,我们发现使用HTML语料库训练的CodeM-HTML 7B可以使Java的pass@1绝对值提高了15.24%。我们的训练数据已发布在https://github.com/NL2Code/CodeM。
English
When human programmers have mastered a programming language, it would be
easier when they learn a new programming language. In this report, we focus on
exploring whether programming languages can boost each other during the
instruction fine-tuning phase of code large language models. We conduct
extensive experiments of 8 popular programming languages (Python, JavaScript,
TypeScript, C, C++, Java, Go, HTML) on StarCoder. Results demonstrate that
programming languages can significantly improve each other. For example,
CodeM-Python 15B trained on Python is able to increase Java by an absolute
17.95% pass@1 on HumanEval-X. More surprisingly, we found that CodeM-HTML 7B
trained on the HTML corpus can improve Java by an absolute 15.24% pass@1. Our
training data is released at https://github.com/NL2Code/CodeM.