プログラミング言語は命令チューニングを通じて互いに強化し合えるか?
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
要旨
人間のプログラマーが1つのプログラミング言語を習得すると、新しいプログラミング言語を学ぶのが容易になります。本報告書では、コード大規模言語モデルの指示ファインチューニング段階において、プログラミング言語が互いに強化し合うかどうかを探ることに焦点を当てています。私たちは、StarCoder上で8つの主要なプログラミング言語(Python、JavaScript、TypeScript、C、C++、Java、Go、HTML)について広範な実験を行いました。その結果、プログラミング言語が互いに大幅に改善し合うことが実証されました。例えば、PythonでトレーニングされたCodeM-Python 15Bは、HumanEval-XにおいてJavaの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.