Пару дней назад OpenAI выпустила SWE Bench Verified. Мы уже писали об SWE Engineer из Принстона, который умеет закрывать баги git-hub. Тренировка и оценка этого AI агента происходила на основе SWE bench – набора решенных задач с гитхаба, т.е. по сути пар: 1) таск с описанием задачи и 2) pull request в котором код исправлений и юнит тесты. И вот теперь Open AI в коллабе с SWE выпустили улучшенный отфильтрованный вариант этого набора данных. Что исправили:
• Прилагаемые юнит тесты в задачах очень специфичны и проверяют что-то помимо решаемой проблемы. Из-за этого при правильном решении юнит тест не проходит и задача записывается как нерешенная;
• Неполное описание проблемы, двусмысленность;
• Юнит тесты устроены так, что для них требуется слишком сложная настройка окружения, с которой не справляется AI агент.
Проблемы вполне понятны, когда мы делали обзор на SWE agent я как раз столкнулся с тем, что один и тот же баг с подробным описанием агент пофиксил, а с коротким нет. Встает вопрос, если мы соревнуемся с живыми разработчиками, то зачем упрощать задания? Баги из датасета были закрыты, значит живые люди с ними разобрались. Я предположу, что дело в том, что часть коммуникаций по задаче могла пройти за кадром, не оставив следов в таск трекере, обсудили на звонке, или разработчик сам себе завел таск, уже зная в чем проблема. Еще часть задач могла быть закрыта, например, с невыполненными юнит тестами. Итого оценивать по ним AI не совсем корректно. Кстати соревнуется не только AI с человеком, но и AI с AI.
Что показал этот новый отфильтрованный датасет? Если лидер (Amazon Q Developer Agent) в SWE bench решал 19.5% задач, то лидер в SWE Bench Verified (тоже, кстати, Amazon Q) решает уже 38.8% задач.
Посмотреть внимательнее на рейтинг на сайте swebench. Почитать про участие в этом датасете Open AI тут.
Post #116
765

- 👍 1