As Linguagens de Programação Podem se Beneficiar Mutuamente por meio do Ajuste de Instruções?
Can Programming Languages Boost Each Other via Instruction Tuning?
August 31, 2023
Autores: Daoguang Zan, Ailun Yu, Bo Shen, Jiaxin Zhang, Taihong Chen, Bing Geng, Bei Chen, Jichuan Ji, Yafen Yao, Yongji Wang, Qianxiang Wang
cs.AI
Resumo
Quando programadores humanos dominam uma linguagem de programação, torna-se mais fácil aprender uma nova linguagem de programação. Neste relatório, focamos em explorar se as linguagens de programação podem se reforçar mutuamente durante a fase de ajuste fino de instruções em modelos de linguagem de código de grande escala. Realizamos extensos experimentos com 8 linguagens de programação populares (Python, JavaScript, TypeScript, C, C++, Java, Go, HTML) no StarCoder. Os resultados demonstram que as linguagens de programação podem melhorar significativamente umas às outras. Por exemplo, o CodeM-Python 15B treinado em Python é capaz de aumentar o desempenho em Java em um absoluto de 17,95% pass@1 no HumanEval-X. Mais surpreendentemente, descobrimos que o CodeM-HTML 7B treinado no corpus de HTML pode melhorar o Java em um absoluto de 15,24% pass@1. Nossos dados de treinamento estão disponíveis em 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.