OctoPack: 코드 대규모 언어 모델의 지시 튜닝
OctoPack: Instruction Tuning Code Large Language Models
August 14, 2023
저자: Niklas Muennighoff, Qian Liu, Armel Zebaze, Qinkai Zheng, Binyuan Hui, Terry Yue Zhuo, Swayam Singh, Xiangru Tang, Leandro von Werra, Shayne Longpre
cs.AI
초록
대규모 언어 모델(LLM)을 명령어에 맞춰 미세 조정(finetuning)하면 자연어 처리 작업에서 상당한 성능 향상을 이룰 수 있습니다. 우리는 코드를 활용한 명령어 튜닝(instruction tuning)을 적용하며, 코드 변경과 인간의 지시가 짝을 이루는 Git 커밋의 자연스러운 구조를 활용했습니다. 이를 통해 350개 프로그래밍 언어에 걸쳐 4테라바이트 규모의 Git 커밋 데이터셋인 CommitPack을 구축했습니다. CommitPack을 다른 자연어 및 합성 코드 명령어 데이터셋(xP3x, Self-Instruct, OASST)과 비교하여 160억 파라미터 StarCoder 모델에서 벤치마킹한 결과, OpenAI 출력으로 학습되지 않은 모델 중 HumanEval Python 벤치마크에서 최고 성능(46.2% pass@1)을 달성했습니다. 또한 HumanEval 벤치마크를 확장한 HumanEvalPack을 소개하며, 6개 언어(Python, JavaScript, Java, Go, C++, Rust)에 걸쳐 총 3가지 코딩 작업(코드 수정, 코드 설명, 코드 합성)을 포함시켰습니다. 우리의 모델인 OctoCoder와 OctoGeeX는 HumanEvalPack에서 모든 허용적(permissive) 모델 중 최고의 성능을 보여주며, CommitPack이 다양한 언어와 자연스러운 코딩 작업에 일반화하는 데 있어서의 이점을 입증했습니다. 코드, 모델 및 데이터는 https://github.com/bigcode-project/octopack에서 자유롭게 이용할 수 있습니다.
English
Finetuning large language models (LLMs) on instructions leads to vast
performance improvements on natural language tasks. We apply instruction tuning
using code, leveraging the natural structure of Git commits, which pair code
changes with human instructions. We compile CommitPack: 4 terabytes of Git
commits across 350 programming languages. We benchmark CommitPack against other
natural and synthetic code instructions (xP3x, Self-Instruct, OASST) on the 16B
parameter StarCoder model, and achieve state-of-the-art performance among
models not trained on OpenAI outputs, on the HumanEval Python benchmark (46.2%
pass@1). We further introduce HumanEvalPack, expanding the HumanEval benchmark
to a total of 3 coding tasks (Code Repair, Code Explanation, Code Synthesis)
across 6 languages (Python, JavaScript, Java, Go, C++, Rust). Our models,
OctoCoder and OctoGeeX, achieve the best performance across HumanEvalPack among
all permissive models, demonstrating CommitPack's benefits in generalizing to a
wider set of languages and natural coding tasks. Code, models and data are
freely available at https://github.com/bigcode-project/octopack.