OctoPack: Ajuste de Instruções para Modelos de Linguagem de Grande Escala em Código
OctoPack: Instruction Tuning Code Large Language Models
August 14, 2023
Autores: Niklas Muennighoff, Qian Liu, Armel Zebaze, Qinkai Zheng, Binyuan Hui, Terry Yue Zhuo, Swayam Singh, Xiangru Tang, Leandro von Werra, Shayne Longpre
cs.AI
Resumo
O ajuste fino de grandes modelos de linguagem (LLMs) em instruções resulta em melhorias significativas de desempenho em tarefas de linguagem natural. Aplicamos o ajuste por instrução utilizando código, aproveitando a estrutura natural dos commits do Git, que associam alterações de código a instruções humanas. Compilamos o CommitPack: 4 terabytes de commits do Git em 350 linguagens de programação. Avaliamos o CommitPack em comparação com outras instruções de código naturais e sintéticas (xP3x, Self-Instruct, OASST) no modelo StarCoder de 16 bilhões de parâmetros, e alcançamos desempenho de ponta entre modelos não treinados em saídas da OpenAI, no benchmark HumanEval para Python (46,2% pass@1). Além disso, introduzimos o HumanEvalPack, expandindo o benchmark HumanEval para um total de 3 tarefas de codificação (Reparo de Código, Explicação de Código, Síntese de Código) em 6 linguagens (Python, JavaScript, Java, Go, C++, Rust). Nossos modelos, OctoCoder e OctoGeeX, alcançam o melhor desempenho em todo o HumanEvalPack entre todos os modelos permissivos, demonstrando os benefícios do CommitPack na generalização para um conjunto mais amplo de linguagens e tarefas de codificação natural. Código, modelos e dados estão disponíveis gratuitamente em 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.