ReviewBench: открытый бенчмарк ИИ-ревью на 219 PR

5 октября 2026 GitHub выложил ReviewBench, открытый бенчмарк для ИИ-ревьюеров pull request. Если в ваших репозиториях уже работает Copilot code review или другой ИИ-ревьюер, теперь их можно сравнить по одним правилам: 219 публичных PR, одна рубрика и одна модель-оценщик для всех.

Корпус собрали по распределению 103,9 млн pull request на GitHub. В набор вошли 219 PR из 187 открытых репозиториев на 19 языках. Языки и размеры репозиториев повторяют картину по GitHub в целом. С размером самих PR GitHub сделал одну поправку: мелких однофайловых PR в наборе меньше, чем в жизни, а крупные многофайловые, где от ревью больше всего толку, остались.

Что внутри 219 PR

Языки по числу PR:

  • TypeScript: 68
  • Python: 41
  • C#: 25
  • Go: 19
  • JavaScript: 15
  • остальные языки: 51

Размер diff считают как сумму добавленных и удалённых строк. До 50 строк у 17 PR, 51-200 строк у 40, 201-500 у 44, 501-1000 у 40, больше 1000 строк у 78.

Тип PR определяли автоматически по заголовку и описанию, вручную их никто не размечал. Новые функции 79, исправления ошибок 59, документация 15, производительность 14, рефакторинг 12, прочее 40.

Ни один проект не перетягивает результат на себя. Самый крупный репозиторий даёт 4,6% корпуса, из одного репозитория взято не больше 10 PR, в среднем 1,17.

Эталонные находки и Claude Sonnet 5

Ни один ревьюер, ни человек, ни модель, не находит в PR всё. Поэтому кандидатов в находки собирают из нескольких источников: реальные ревью людей, проблемы, которые автор потом сам исправил следующими коммитами, статический анализ и несколько сильных моделей разных семейств. Находки об одной и той же проблеме объединяют, чтобы совпадение источников не раздувало набор.

Дальше каждую находку проверяют по общей рубрике. В эталонный набор она попадает, если она верная, относится к делу и не мелочь. Откуда она взялась, роли не играет. Ответы оценивает Claude Sonnet 5 (в терминах GitHub это judge): одна и та же модель с одной рубрикой для всех участников. Рубрику и настройки модели-оценщика GitHub опубликовал.

Перед релизом старшие инженеры, которые не участвовали в сборке набора, заново и независимо разметили каждую эталонную находку. С бенчмарком они совпали в 96,6% случаев. Датасет, модель-оценщик и алгоритм сопоставления находок версионируются, поэтому честно сравнивать двух агентов можно только на одной версии бенчмарка.

Grounded и augmented: две группы метрик

Обычно бенчмарки считают precision и recall по неизменному эталонному набору. ReviewBench выдаёт шесть метрик в двух группах: precision, recall и F1 в варианте grounded и те же три в варианте augmented.

Precision это доля верных замечаний среди всех, что выдал ревьюер: чем она выше, тем меньше шума. Recall это доля известных проблем, которые ревьюер нашёл: чем выше, тем шире охват. F1 объединяет обе метрики с равным весом.

Grounded считают только по эталонному набору: сколько известных проблем нашёл агент и какая часть его замечаний совпала с известными. Это строгое сравнение систем между собой.

Augmented учитывает и замечания, которых в эталонном наборе нет. Модель-оценщик отдельно решает, верное это замечание или ложное, и агент получает очки за настоящие проблемы, которые не нашёл ни один из источников набора. Чем сильнее агенты, тем это важнее: эталонный набор неизбежно отстаёт от того, что они умеют находить.

Знаменатель augmented recall зависит от того, что нашёл сам агент, поэтому для общего сравнения GitHub берёт grounded recall. Место в таблице получает тот, кто лучше находит уже известные проблемы. Augmented нужен, чтобы разбирать сильные и слабые стороны одной системы, и новые верные находки видны именно там.

Результаты можно разложить по серьёзности находок (critical, medium, low) и по категориям: correctness, security, reliability, maintainability, testing и другие. Ревьюер, который ловит уязвимости, и ревьюер, который в основном пишет про стиль, по общему F1 могут оказаться рядом. Срез по категориям их разделяет.

В Fβ можно сдвинуть вес: к recall, если нужен широкий охват, или к precision, если нужно меньше шума. Лидерборд при этом пересчитывается. Лучшего ревьюера на все случаи нет, есть подходящий под ваши задачи.

Как GitHub проверял на нём Copilot code review

На ReviewBench GitHub оценивает каждую новую версию Copilot code review. По словам GitHub, изменения, которые улучшали результат на бенчмарке, потом двигали метрики в ту же сторону и в A/B-тестах на реальных пользователях.

Свежий пример: в lite-tier вместо одного прогона модели сделали ансамбль, где несколько независимых прогонов собираются в одно ревью. ReviewBench предсказал рост precision, recall и числа комментариев и снижение стоимости одного ревью.

В рабочем продукте вместо precision смотрят addressed rate: долю комментариев Copilot, после которых разработчик внёс соответствующую правку. Это определяет модель по diff, обсуждению, реакциям, статусу треда и коду после ревью. Recall оценивают по тому, сколько ревью людям всё ещё приходится делать после Copilot.

Цифры по сравнению с прежней версией: precision на бенчмарке +4,45%, в A/B +8%. Recall +12,88% и +13,6%. Стоимость ревью −23,7% и −8%. Комментариев тоже стало больше и на бенчмарке, и в A/B.

Само число комментариев о качестве ничего не говорит: десяток придирок и одна критичная ошибка это разные вещи. Поэтому GitHub отдельно показывает разбивку по серьёзности. Критичных комментариев стало больше на 227% на бенчмарке и на 262% в A/B, средних на 121% и 18%, а придирок меньше на 15,69% и 45%.

Последнее слово для GitHub всё равно за A/B-тестом на реальных пользователях. ReviewBench помогает заранее отсеять изменения, которые туда нести не стоит.

Как прогнать своего агента

Предварительная версия бенчмарка открыта на review-bench.ai. Датасет публичный целиком: PR, находки, метки серьёзности и категорий. Можно открыть любой PR и посмотреть, на чём именно проверяют агентов. Там же лидерборд, методика, промпт и настройки модели-оценщика и раннер для своего прогона.

Порядок такой:

  1. Войти на сайт через GitHub.
  2. Зарегистрировать агента: образ контейнера, конфигурация и свой ключ к модели. Модель-оценщика даёт площадка.
  3. Прогнать тестовый набор из 25 PR с разбором по каждому и подстраивать конфигурацию, сколько нужно.
  4. Сделать финальный прогон: все 219 PR в три круга, оценивает та же модель, что и всех остальных.
  5. Отправить на лидерборд. Результат скрыт, пока мейнтейнер не проверит заявку. В таблицу он попадает, только если лучше текущего результата этого агента или если это его первая запись.

Если выбираете ИИ-ревьюера для своего репозитория, смотрите разбивку по critical и security, а не только общий балл. У Copilot бенчмарк и A/B показали рост в одну сторону, но проценты заметно разошлись. Ключ к модели на прогоне ваш, оценку ставит модель площадки.

Источники и ссылки


Комментарии загружаются…