Аннотация:
Развитие больших языковых моделей (LLM) значительно расширило возможности порождения кода. Недавний опрос на StackOverflow показал, что 70% разработчиков используют или планируют использовать инструменты ИИ в разработке кода. Однако большинство существующих методов сосредоточены на задачах дообучения с учителем, заимствованных из порождения текстов, что часто упускает такие важные особенности кода, как возможность компиляции и синтаксическая и функциональная корректность. Для решения этой проблемы мы предлагаем новый подход, сочетающий предобученные LLMs с инструментами анализа программного обеспечения, которые широко используются для обнаружения уязвимостей и проверки кода. Наш метод использует подробную обратную связь от компилятора и инструментов анализа кода, интегрируя эти специализированные знания в процесс порождения подсказок. Мы представляем CodePatchLLM, расширение больших языковых моделей, использующее Svace для улучшения порождения кода. Это универсальный фреймворк, поддерживающий несколько языков программирования. Обширное экспериментальное исследование на наборе данных LeetCode показывает, что наш подход превосходит базовую модель CodeLlama, значительно улучшая показатели успешности компиляции и функциональной корректности для Java, Python и Kotlin. Код CodePatchLLM доступен по адресу https://github.com/dsshay/CodePatchLLM. Библ. – 55 назв.
Ключевые слова:
большие языковые модели, статический анализатор, качество кода.