OctoPack:用于指令微调代码大语言模型
计算与语言
2024-02-20 v2 人工智能
摘要
在指令上对大语言模型(LLMs)进行微调可大幅提升其在自然语言任务上的性能。我们利用 Git 提交天然具有将代码变更与人类指令配对的特性,应用基于代码的指令微调。我们编译了 CommitPack:横跨 350 种编程语言的 4 TB Git 提交数据。我们在 16B 参数的 StarCoder 模型上将 CommitPack 与其他自然及合成代码指令(xP3x、Self-Instruct、OASST)进行基准测试,并在未使用 OpenAI 输出训练的模型中于 HumanEval Python 基准上取得最先进性能(46.2% pass@1)。我们进一步引入 HumanEvalPack,将 HumanEval 基准扩展为涵盖 6 种语言(Python、JavaScript、Java、Go、C++、Rust)共 3 项编码任务(代码修复、代码解释、代码合成)。我们的模型 OctoCoder 与 OctoGeeX 在所有许可型模型中于 HumanEvalPack 上取得最佳性能,证明了 CommitPack 在泛化至更广泛语言与自然编码任务方面的益处。代码、模型与数据可在 https://github.com/bigcode-project/octopack 免费获取。
引用
@article{arxiv.2308.07124,
title = {OctoPack: Instruction Tuning Code Large Language Models},
author = {Niklas Muennighoff and Qian Liu and Armel Zebaze and Qinkai Zheng and Binyuan Hui and Terry Yue Zhuo and Swayam Singh and Xiangru Tang and Leandro von Werra and Shayne Longpre},
journal= {arXiv preprint arXiv:2308.07124},
year = {2024}
}
备注
60 pages (9 main), 40 figures, 19 tables