RUS  ENG
Полная версия
ЖУРНАЛЫ // Записки научных семинаров ПОМИ // Архив

Зап. научн. сем. ПОМИ, 2024, том 540, страницы 233–251 (Mi znsl7553)

Ensuring trustworthy code: leveraging a static analyzer to identify and mitigate defects in generated code

[Как обеспечить надежный код: использование статического анализатора для выявления и устранения дефектов в автоматически порожденном коде]

D. Shaikhelislamovabc, M. Drobyshevskiydbc, A. Belevanceveb

a HSE University, Moscow, Russia
b Ivannikov Institute for System Programming of the Russian Academy of Sciences, Moscow, Russia
c Moscow Institute of Physics and Technology (National Research University), Moscow, Russia
d ISP RAS Research Center for Trusted Artificial Intelligence, Moscow, Russia
e Moscow State University, Moscow, Russia

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

Ключевые слова: большие языковые модели, статический анализатор, качество кода.

Поступило: 15.11.2024

Язык публикации: английский



© МИАН, 2025