ChatPaper.aiChatPaper

OctoPack: Ajuste por Instrucción de Modelos de Lenguaje de Gran Escala para 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

Resumen

El ajuste fino (finetuning) de modelos de lenguaje grandes (LLMs) en instrucciones conduce a mejoras significativas en el rendimiento de tareas de lenguaje natural. Aplicamos el ajuste por instrucciones utilizando código, aprovechando la estructura natural de los commits de Git, que emparejan cambios de código con instrucciones humanas. Compilamos CommitPack: 4 terabytes de commits de Git en 350 lenguajes de programación. Evaluamos CommitPack frente a otras instrucciones de código naturales y sintéticas (xP3x, Self-Instruct, OASST) en el modelo StarCoder de 16B parámetros, y logramos un rendimiento de vanguardia entre los modelos no entrenados con salidas de OpenAI, en el benchmark HumanEval para Python (46.2% pass@1). Además, presentamos HumanEvalPack, que amplía el benchmark HumanEval a un total de 3 tareas de codificación (Reparación de Código, Explicación de Código, Síntesis de Código) en 6 lenguajes (Python, JavaScript, Java, Go, C++, Rust). Nuestros modelos, OctoCoder y OctoGeeX, obtienen el mejor rendimiento en HumanEvalPack entre todos los modelos permisivos, demostrando los beneficios de CommitPack para generalizar a un conjunto más amplio de lenguajes y tareas de codificación natural. El código, modelos y datos están disponibles libremente en 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.
PDF301December 15, 2024