<НА ГЛАВНУЮ

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

Switch to English