Исследователи из Microsoft и Гонконгского баптистского университета представляют WizardCoder Code Evol-Instruct Fine-Tuned Code LLM

Microsoft and Hong Kong Baptist University researchers present WizardCoder Code Evol-Instruct Fine-Tuned Code LLM

Большие языковые модели (LLM) недавно привлекли много внимания и достигли значительного успеха. Особенно выделяется OpenAI’s ChatGPT. Эти модели достигли передовых результатов в нулевом режиме на различных задачах, используя значительное предварительное обучение на огромных объемах интернет-данных и дальнейшую настройку с использованием точных инструкций. Такая же тенденция наблюдается в понимании и создании кода. Было предложено множество кодовых LLM для решения проблем, связанных с использованием кода. Эти кодовые LLM проходят предварительное обучение с использованием большого количества кодовых данных, что позволяет им хорошо справляться с различными задачами, связанными с кодом.

Необходимо провести дальнейшие исследования тонкой настройки инструкций в области кода, в отличие от большинства предыдущих кодовых LLM, которые в основном акцентируют внимание на фазе предварительного обучения. Чтобы улучшить обобщающие навыки LMs на различные задачи, была впервые использована настройка инструкций. Например, OpenAI’s InstructGPT просил аннотаторов предложить конкретные инструкции для проверки соответствия целям пользователей. Как и Alpaca, недавнее исследование использовало ChatGPT для генерации инструкций с использованием подхода самообучения. Vicuna использовал чаты, которые пользователи разместили на ShareGPT.com. Подход Evol-Instruct был разработан командой WizardLM и включал модификацию существующих инструкций для создания более сложных и разнообразных наборов данных.

Однако важно отметить, что при разработке этих техник следовало учитывать специфику области кода, а не только обобщенную область. Вдохновленные подходом Evol-Instruct, исследователи из Microsoft и Гонконгского баптистского университета в этом проекте намерены улучшить возможности открытой кодовой LLM StarCoder, создавая подробные инструкции по коду с использованием специального для кода подхода Evol-Instruct. Они модифицировали процесс эволюционного подсказки, специально разработанный для задач, связанных с кодированием, чтобы достичь этой цели. Эволюционные подсказки были упрощены, эволюционные инструкции улучшены, а также включены отладка кода и ограничения по времени и пространству. Их подход впервые использовался для разработки фундаментальных инструкций по коду для Code Alpaca.

Затем они используют свой недавно разработанный набор обучающих данных по следованию инструкциям по коду для настройки StarCoder и получения WizardCoder. Их WizardCoder превосходит все другие открытые кодовые LLM, достигая передовых результатов согласно экспериментальным данным из четырех кодирующих испытаний, включая HumanEval, HumanEval+, MBPP и DS-100. Они отмечают значительный рост показателей pass@1, а именно увеличение на +22,3 (57,3 против 35,0) в HumanEval и +8,2 (51,8 против 43,6) в MBPP. Удивительно, что их WizardCoder даже превосходит Anthropic’s Claude и Google’s Bard по показателям прохождения в HumanEval и HumanEval+, несмотря на значительно меньший размер.

Ниже приведено краткое изложение вклада данной работы:

• Мы предлагаем WizardCoder, который применяет Evol-Instruct по коду для улучшения функциональности открытой кодовой LLM StarCoder.

• WizardCoder значительно превосходит все другие открытые кодовые LLM, включая StarCoder, CodeGen, CodeGee, CodeT5+, InstructCodeT5+, StarCoder-GPTeacher и Instruct-Codegen-16B, в создании кода.

• Несмотря на значительно меньший размер, WizardCoder превосходит основные закрытые LLM, включая Claude, Bard, PaLM, PaLM-2 и LaMDA, в создании кода.