2 个月前

OctoPack:大型语言模型的指令调优代码

Muennighoff, Niklas ; Liu, Qian ; Zebaze, Armel ; Zheng, Qinkai ; Hui, Binyuan ; Zhuo, Terry Yue ; Singh, Swayam ; Tang, Xiangru ; von Werra, Leandro ; Longpre, Shayne
OctoPack:大型语言模型的指令调优代码
摘要

对大型语言模型(LLMs)进行指令微调可以显著提高其在自然语言任务中的性能。我们利用代码进行指令微调,借助Git提交的自然结构,这些提交将代码更改与人类指令配对。我们编译了CommitPack:包含350种编程语言的4太字节Git提交数据集。我们在160亿参数的StarCoder模型上,使用CommitPack与其他自然和合成代码指令(xP3x、Self-Instruct、OASST)进行了基准测试,结果表明,在未使用OpenAI输出训练的模型中,我们的模型在HumanEval Python基准测试中达到了最先进的性能(pass@1为46.2%)。此外,我们还引入了HumanEvalPack,将HumanEval基准测试扩展到总共3个编码任务(代码修复、代码解释、代码合成),涵盖6种编程语言(Python、JavaScript、Java、Go、C++、Rust)。我们的模型OctoCoder和OctoGeeX在所有允许使用的模型中,在HumanEvalPack上的表现最佳,证明了CommitPack在泛化到更广泛的语言和自然编码任务方面的优势。代码、模型和数据均可免费获取,地址为https://github.com/bigcode-project/octopack。