Свежая выжимка ml и AI статей - каждый день
В современном мире программирования, где автоматизация и эффективность являются ключевыми факторами успеха, задача завершения кода становится все более актуальной. Завершение кода на уровне репозитория (repository-level code completion) позволяет разработчикам предсказывать и предлагать код, основываясь на контексте всего репозитория, что значительно упрощает процесс разработки и повышает производительность. Однако, несмотря на значительные достижения в этой области, существующие бенчмарки и инструменты часто ограничиваются небольшим числом языков программирования и не учитывают специфические особенности различных сценариев завершения кода.
M2RC-EVAL представляет собой новый бенчмарк для оценки способностей крупных языковых моделей (LLMs) к завершению кода на уровне репозитория, охватывающий 18 различных языков программирования. Этот бенчмарк не только расширяет горизонты оценки за счет мультиязычности, но и вводит новые аспекты анализа через детализированные аннотации, которые позволяют лучше понять, как LLM справляются с различными сценариями завершения кода.
Мультиязычность: Включает 18 популярных языков программирования, что позволяет оценивать модели на широком спектре синтаксических и семантических структур.
Аннотации:
Корпус инструкций M2RC-INSTRUCT: Создан для улучшения способностей LLM к завершению кода, этот корпус содержит примеры кода на всех 18 языках, что позволяет моделям обучаться на реальных примерах из различных контекстов.
Для обеспечения высокого качества данных и результатов были применены следующие фильтры:
Эксперименты проводились с использованием трех популярных LLM: StarCoder-7B, DeepSeekCoder-6.7B и CodeLlama-7B. Были оценены следующие аспекты:
Метрики оценки: Использовались точное совпадение (Exact Match, EM) и редакционная схожесть (Edit Similarity, ES) для сравнения сгенерированного кода с эталонным.
Экспериментальная настройка:
Основные результаты: Показано, что использование контекста из других файлов значительно улучшает результаты, а настройка на M2RC-INSTRUCT приводит к еще большему прогрессу.
M2RC-EVAL представляет собой значительный шаг вперед в оценке и улучшении способностей LLM к завершению кода на уровне репозитория. С его помощью можно не только оценить текущие модели, но и направить дальнейшие исследования в области кодовой интеллектуальности и инженерии программного обеспечения. Этот бенчмарк подчеркивает важность мультиязычности и детализированного анализа для создания более универсальных и эффективных инструментов для разработчиков.