Могут ли языковые модели заменить программистов? Исследователи из Принстонского университета и Университета Чикаго представляют SWE-bench рамку оценки, которая тестирует модели машинного обучения на решении реальных проблем с GitHub.

Могут ли языковые модели замещать программистов? Исследователи из Принстонского университета и Университета Чикаго представляют SWE-bench рамку оценки, которая проверяет модели машинного обучения на решении реальных проблем с GitHub.

Оценка уровня владения языковыми моделями, когда решается реальный программный инженерный вызов, является важным для их прогресса. Вдохновленный этим, появился инновационная фреймворк оценки – SWE-bench, который использует вопросы и запросы на GitHub для оценки способности этих моделей справляться с программными задачами и проблемами. Удивительно, но результаты исследования показывают, что даже самые передовые модели могут решать только простые задачи. Это подчеркивает насущную необходимость дальнейшего развития языковых моделей, чтобы обеспечить практические и интеллектуальные решения в программной инженерии.

Хотя до этого исследования были представлены фреймворки оценки языковых моделей, они часто нуждаются в большей гибкости и адаптированности к сложности программных инженерных задач реального мира. Особенно важно, чтобы существующие эталоны для генерации кода учитывали сложность этих задач. Фреймворк SWE-bench, разработанный учеными из Принстонского университета и Университета Чикаго, выделяется тем, что сосредоточен на реальных программных инженерных задачах, таких как генерация исправлений и комплексное логическое рассуждение, предлагая более реалистичную и всестороннюю оценку для расширения возможностей языковых моделей с программными инженерными возможностями. Это особенно актуально в области машинного обучения в программной инженерии.

Поскольку языковые модели широко используются в коммерческих приложениях, становится очевидной необходимость в надежных эталонах для оценки их возможностей. Существующие эталоны нуждаются в обновлении для проверки LMs на сложные задачи реального мира. Задачи программной инженерии предлагают убедительные вызовы своей сложностью и верифицируемостью через модульные тесты. SWE-bench использует вопросы и решения на GitHub для создания практического эталона оценки LMs в контексте программной инженерии, способствуя практическому применению в реальных условиях и непрерывному обновлению.

Исследование включает 2294 задачи программной инженерии из реального мира с GitHub. LMs редактируют кодовые базы, чтобы решить проблемы в функциях, классах и файлах. Входные данные модели включают инструкции по задаче, текст проблемы, извлеченные файлы, пример исправления и подсказку. Производительность модели оценивается в двух контекстных настройках: разреженном извлечении и оракульном извлечении.

Результаты оценки показывают, что даже передовые модели, такие как Claude 2 и GPT-4, испытывают трудности в решении задач программной инженерии реального мира, достигая процентов прохождения до 4,8% и 1,7% даже с лучшими методами извлечения контекста. Модели работают хуже при работе с более длинными контекстами и проявляют чувствительность к вариациям контекста. Модели чаще генерируют более короткие и менее хорошо форматированные файлы исправлений, что подчеркивает сложности в работе с комплексными задачами, связанными с кодом.

Поскольку языковые модели развиваются, в статье подчеркивается критическая необходимость их всесторонней оценки в практических условиях реального мира. Фреймворк оценки SWE-bench служит сложным и реалистичным полигоном для оценки возможностей языковых моделей следующего поколения в контексте программной инженерии. Результаты оценки показывают текущие ограничения даже передовых языковых моделей в работе с комплексными программными инженерными вызовами. Вклад исследователей подчеркивает необходимость разработки более практичных, интеллектуальных и автономных языковых моделей.

Исследователи предлагают несколько путей для развития фреймворка оценки SWE-bench. Их исследование предлагает расширение этих оценок с более широким спектром задач программной инженерии. Исследование передовых методов извлечения и подходов к мульти-модальному обучению может повысить производительность языковых моделей. Особое внимание уделяется устранению ограничений в понимании комплексных изменений кода и улучшению генерации хорошо отформатированных файлов исправлений. Эти шаги направлены на создание более всестороннего и эффективного фреймворка оценки языковых моделей в условиях программной инженерии реального мира.