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) на инструкциях приводит к значительному улучшению производительности в задачах обработки естественного языка. Мы применяем настройку на инструкциях с использованием кода, используя естественную структуру Git-коммитов, которые связывают изменения кода с человеческими инструкциями. Мы создали CommitPack: 4 терабайта Git-коммитов на 350 языках программирования. Мы сравниваем CommitPack с другими естественными и синтетическими инструкциями по коду (xP3x, Self-Instruct, OASST) на модели StarCoder с 16 миллиардами параметров и достигаем наилучших результатов среди моделей, не обученных на выходах OpenAI, на бенчмарке HumanEval для Python (46,2% pass@1). Мы также представляем HumanEvalPack, расширяя бенчмарк HumanEval до трех задач по кодированию (исправление кода, объяснение кода, синтез кода) на шести языках (Python, JavaScript, Java, Go, C++, Rust). Наши модели, OctoCoder и OctoGeeX, демонстрируют наилучшие результаты на HumanEvalPack среди всех разрешительных моделей, что подтверждает преимущества 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.