AWS запускает SWE-PolyBench: многоязычный бенчмарк для оценки AI-агентов программирования
AWS AI Labs представил SWE-PolyBench — новый открытый многоязычный бенчмарк для оценки AI-агентов программирования на реальных задачах из популярных языков программирования.
Развитие оценки AI-агентов программирования
Последние достижения в области больших языковых моделей (LLM) позволили создавать AI-агентов, способных генерировать, изменять и понимать программный код. Однако существующие методы оценки часто ограничены синтетическими или узкоспециализированными бенчмарками, преимущественно на Python, которые не отражают сложность и разнообразие реальных кодовых баз. Из-за этого многие агенты переобучаются под конкретные шаблоны бенчмарков вместо демонстрации устойчивых и переносимых навыков.
Представляем SWE-PolyBench
AWS AI Labs представил SWE-PolyBench — всесторонний многоязычный бенчмарк на уровне репозиториев для оценки AI-агентов программирования на основе исполнения кода. SWE-PolyBench охватывает 21 репозиторий GitHub на четырёх популярных языках программирования: Java, JavaScript, TypeScript и Python. Включено 2 110 заданий: исправления ошибок, реализация функционала и рефакторинг кода.
В отличие от предыдущих бенчмарков, SWE-PolyBench использует реальные pull-реквесты, закрывающие актуальные задачи, с соответствующими тестами, что позволяет проводить проверяемую оценку. Также выпущен меньший поднабор SWE-PolyBench500 для более быстрой экспериментации, сохраняя разнообразие задач и языков.
Техническая структура и метрики
SWE-PolyBench использует pipeline оценки на основе исполнения. Для каждой задачи предоставляется снимок репозитория и описание проблемы из GitHub issue. Бенчмарк применяет эталонное исправление в контейнеризированной тестовой среде, настроенной под экосистему языка (например, Maven для Java, npm для JS/TS).
Оценка базируется на результатах unit-тестов, измеряющих переходы с fail-to-pass (F2P) и pass-to-pass (P2P). Кроме того, введены метрики на основе Concrete Syntax Tree (CST) на уровне файлов и узлов, оценивающие способность агента находить и изменять релевантные участки кода. Эти метрики дают более глубокое понимание работы агента, особенно при сложных изменениях в нескольких файлах.
Основные результаты эмпирической оценки
Три open-source агента — Aider, SWE-Agent и Agentless — были адаптированы для SWE-PolyBench, все с моделью Anthropic Claude 3.5.
Агенты лучше всего справлялись с задачами на Python, достигая до 24,1% успешных попыток, а на TypeScript результаты были значительно ниже — до 4,7%. Java, несмотря на большую сложность, показывал более высокие результаты, чем TypeScript, что подчеркивает важность предобучения и знакомство с синтаксисом.
Сложность задач также влияла на эффективность: простые изменения в одной функции или классе имели успех до 40%, тогда как задачи с изменениями в нескольких файлах показывали значительное падение. Интересно, что высокая точность и полнота в поиске файлов и узлов CST не всегда приводила к росту количества успешных прохождений тестов, что указывает на то, что локализация кода важна, но недостаточна для решения задачи.
Влияние и перспективы
SWE-PolyBench предлагает детальную и надежную методику оценки, преодолевая ограничения старых бенчмарков благодаря поддержке множества языков, разнообразных типов задач и синтаксически осведомленных метрик. Он обеспечивает реалистичную оценку возможностей AI-агентов и выявляет направления для улучшения универсальности, надежности и логического мышления.
Этот бенчмарк создаёт основу для дальнейших исследований и развития AI-ассистентов по программированию, способных эффективно работать с реальными сложностями разработки ПО.
Для подробностей посетите AWS DevOps Blog, SWE-PolyBench на Hugging Face и GitHub, а также следите за обновлениями в Twitter, Telegram и LinkedIn.
Switch Language
Read this article in English