Amazon Web Services сегодня представила SWE-PolyBench, комплексный многоязыковой бенчмарк, разработанный для оценки помощников по кодированию ИИ в различных языках программирования и реальных сценариях.
Этот бенчмарк устраняет существенные ограничения в существующих фреймворках оценки и предлагает исследователям и разработчикам новые способы оценки того, насколько эффективно агенты ИИ ориентируются в сложных кодовых базах.
«Теперь у них есть бенчмарк, по которому они могут оценивать, способны ли агенты кодирования решать сложные задачи программирования», — сказал Ануп Деорас, директор по прикладным наукам для приложений генеративного ИИ и опыта разработчиков в AWS, в интервью VentureBeat. «Реальный мир предлагает вам более сложные задачи. Чтобы исправить ошибку или выполнить сборку функций, вам нужно коснуться нескольких файлов, а не одного». Выпуск вышел на фоне взрывного роста популярности инструментов кодирования на основе ИИ, поскольку крупные технологические компании интегрируют их в среды разработки и отдельные продукты. Хотя эти инструменты демонстрируют впечатляющие возможности, оценка их производительности остается сложной задачей — особенно на разных языках программирования и при различной сложности задач.
SWE-PolyBench содержит более 2000 курируемых задач по кодированию, полученных из реальных проблем GitHub, охватывающих четыре языка: Java (165 задач), JavaScript (1017 задач), TypeScript (729 задач) и Python (199 задач). Тест также включает стратифицированное подмножество из 500 проблем (SWE-PolyBench500), разработанное для более быстрого экспериментирования.
«Разнообразие задач и разнообразие языков программирования отсутствовали», — объяснил Деорас о существующих тестах. «В SWE-Bench сегодня есть только один язык программирования, Python, и есть одна задача: исправление ошибок. В PolyBench, в отличие от SWE-Bench, мы расширили этот тест, включив три дополнительных языка».
Новый тест напрямую устраняет ограничения в SWE-Bench, который стал фактическим стандартом для оценки агентов кодирования с более чем 50 подачами в таблицу лидеров. Несмотря на свою новаторскую роль, SWE-Bench фокусируется исключительно на репозиториях Python, в основном выполняет задачи по исправлению ошибок и значительно смещен в сторону единой кодовой базы — на репозиторий Django приходится более 45% всех задач.
«Мы намеренно решили немного переоценить JavaScript и TypeScript, потому что у нас уже есть SWE-Bench, в котором уже есть задачи Python», — отметил Деорас. «Поэтому вместо переоценки Python мы убедились, что у нас достаточно репрезентаций для JavaScript и TypeScript в дополнение к Java».
Почему простые метрики «прошел/не прошел» не рассказывают всю историю о производительности кодирования ИИ
Ключевым нововведением в SWE-PolyBench является введение более сложных метрик оценки за пределами традиционной «скорости прохождения», которая просто измеряет, успешно ли сгенерированный патч решает проблему кодирования.
«Оценка этих агентов кодирования в основном проводилась с помощью метрики, называемой скоростью прохождения», — сказал Деорас. «Короче говоря, коэффициент прохождения — это просто доля задач, которые успешно выполняются при применении патча, который производят агенты. Но это число — очень высокий уровень, агрегированная статистика. Оно не сообщает вам мельчайших подробностей, и, в частности, оно не сообщает вам, как агент пришел к этому решению».
Новые метрики включают локализацию на уровне файлов, которая оценивает способность агента определять, какие файлы требуют изменения в репозитории, и извлечение на уровне узлов Concrete Syntax Tree (CST), которое оценивает, насколько точно агент может определить конкретные структуры кода, требующие изменений.
«В дополнение к коэффициенту прохождения у нас есть точность и полнота. И чтобы получить метрику точности и полноты, мы рассматриваем инструмент анализа программы, называемый конкретным синтаксическим деревом», — объяснил Деорас. «Он сообщает вам, как составлена ваша основная структура файла, так что вы можете посмотреть, что является узлом класса, и внутри этого класса, каковы узлы функций и переменные».
Как Python остается доминирующим, в то время как сложные задачи выявляют ограничения ИИ
Оценка Amazon нескольких агентов с открытым исходным кодом на SWE-PolyBench выявила несколько закономерностей. Python остается самым сильным языком для всех протестированных агентов, вероятно, из-за его распространенности в обучающих данных и существующих бенчмарках. Производительность ухудшается по мере увеличения сложности задачи, особенно когда требуются изменения в трех или более файлах.
Разные агенты демонстрируют разные сильные стороны в разных категориях задач. Хотя производительность в задачах исправления ошибок относительно стабильна, между агентами наблюдается больше различий при обработке запросов функций и рефакторинге кода.
Бенчмарк также показал, что информативность формулировок проблем значительно влияет на показатели успеха, что говорит о том, что четкие описания проблем остаются решающими для эффективной помощи ИИ.
0 комментариев