3.5Kпросмотров
85.6%от подписчиков
12 сентября 2025 г.
📷 ФотоScore: 3.9K
На прошлой неделе по в x/twitter и сегодня на Hacker News разошлась история про то, что модели читерят на SWE-bench, подглядывая будущие изменения репозитория. Напомню суть задачи: есть докер контейнер в нем репозиторий на каком-то конкретном коммите и issue, который нужно решить модели (пофиксить баг). Причем в реальности этот issue уже был пофикшен в PR и именно тестами из этого PR мы проверяем, что модель пофиксила баг. Как устроен «чит»:
В git команда git log по умолчанию показывает историю до текущего состояния. Но если добавить флаг --all, можно заглянуть в историю всех коммитов, том числе после текущего. И в будущем коммите уже будет фикс нужного бага (считай ответ). Тогда агенту достаточно «подсмотреть» подсказку и быстро прийти к правильному патчу. Насколько это реально встречается:
В дискуссии по SWE-bench Verified приводят конкретные примеры: у Claude Sonnet-4 и у Qwen3-Coder встречались траектории, где git log --all подсказал направление решения или прямо показал фикс. Но таких траекторий очень мало (~5 из 10,000) так что на ранжирование моделей – это не влияет. Что у нас на SWE-rebench:
Мы посмотрели свои траектории: модели действительно изредка вызывают git log (включая --all), но, как правило, чтобы найти PR, уже упомянутый в тексте issue (например, тот самый PR, который что-то сломал). Случаев читерства в наших выборках не нашли. Тем не менее сам факт существования такого loophole — повод постоянно шлифовать бенчмарки. Мы это и делаем на ежемесячных обновлениях: закрываем потенциальные щели и что-то улучшаем. Ну и как решение в образах удалить будущую историю коммитов и тэги. Тут прикрепил скриншот с примером вызова git log у Claude Sonnet-4 на rebench и ссылку на обсуждение в swe-bench. Оригинальный issue с обсуждением чита