OpenAI опубликовала аудит SWE-Bench Pro — одного из главных бенчмарков для оценки кодинг-способностей моделей — и пришла к выводу, что около 30% его задач сломаны. Компания официально отозвала свою рекомендацию использовать этот бенчмарк и посоветовала разработчикам моделей внимательно перепроверять результаты на нем.

Ирония в том, что ранее SWE-Bench Pro продвигала сама OpenAI. В феврале компания объявила, что ее же бенчмарк SWE-bench Verified больше не измеряет реальные способности моделей — из-за битых тестов и утечки задач в обучающие данные — и предложила SWE-Bench Pro как замену. Новый бенчмарк построен на задачах с более длинным горизонтом, и ИИ быстро начали его "проходить": на публичном сплите из 731 задачи результаты лучших моделей выросли с 23,3% до 80,3% за восемь месяцев.

Теперь OpenAI провела аудит и этого бенчмарка. Автоматический фильтр, агенты-следователи и разметка силами опытных инженеров (по пять человек на задачу) дали близкие оценки: автоматическая оценка пометила как сломанные 200 задач (27,4%), люди — 249 (34,1%). Проблемы свелись к четырем категориям:

  • излишне строгие тесты — требуют конкретных деталей реализации, которых нет в условии, и заваливают функционально корректные решения;

  • недоспецифицированные условия — скрытые тесты проверяют требования, о которых модель не могла догадаться;

  • тесты со слабым покрытием — пропускают неполные решения;

  • вводящие в заблуждение условия — прямо противоречат тому, что проверяют тесты.

Показательный пример — задача из репозитория OpenLibrary про сериализацию оглавления в Markdown. Условие задает формат вывода вплоть до расстановки пробелов и приводит примеры строк с одним ведущим пробелом. Но скрытые тесты ожидают два пробела. Модель, которая честно следует условию, проваливает задачу из-за одного символа.

В OpenAI считают, что корень проблемы — в самом способе сборки таких бенчмарков: задачи берутся из GitHub, где issue, код и тесты писались для людей в ходе долгих обсуждений и не складываются в чистые изолированные задания. Тесты из реальных pull request проверяют конкретное изменение, а не задачу как таковую. Компания призвала сообщество создавать новые бенчмарки, которые опытные инженеры пишут с нуля специально для оценки моделей.

P.S. Поддержать меня можно подпиской на канал "сбежавшая нейросеть", где я рассказываю про ИИ с творческой стороны.