На бумаге выглядит отлично, но если попробовать так сделать — то вы упрётесь в критическую проблему: когда генератору предлагается одновременно и сгенерировать доказательство, и проанализировать его, он склонен утверждать правильность, даже когда внешний верификатор легко обнаруживает недостатки. Другими словами, хотя генератор может улучшать доказательства на основе внешней обратной связи, он не может оценивать свою собственную работу с той же строгостью, что и специализированный верификатор. Это наблюдение побудило команду исследователей научить генератор доказательств честной само-критике. С точки зрения интерфейса работы генератора — мы слегка меняем выходной формат: во время обучения модель теперь приписывает в конце ответа блок критики В промпте используется та же рубрика, что и давалась людям в самом начале, и с которой учился верификатор, поэтому мы ожидаем, что формат критики будет одинаковый, включая оценку по критериям 0/0.5/1. Дальше снова запускается RL-тренировка рассуждениям, только функция награды теперь очень сложная. Используются всё те же критерии для форматирования + оценка верификатора, и сверху оценка мета-верификатора (та же модель с другим промптом) на основе само-критики модели. С учётом некоторых добавленных в формулу весов (см. в статье), такая структура вознаграждения создает такие стимулы во время обучения: — честное признание ошибок в само-критике вознаграждается выше, чем ложные заявления о правильности (потому что иначе мета-верификатор даст оценку ниже -> штраф). — наивысшая награда даётся за создание правильных доказательств и точное признание их безошибочности — хорошая стратегия для получения высоких наград генератором доказательств — выявить и устранить как можно больше проблем до завершения ответа. Авторы это не пишут явно, но мне кажется совмещение двух задач в одной цепочке рассуждений позволяет модели подумать наперёд о том, как она себя будет критиковать, и посмотреть под другим углом на потенциальное решение, сразу устраняя недостатки. Модель не может не думать про вторую задачу (само-критику), когда это явно требуется в промпте + за это даётся награда во время обучения. Как когда-то было в GAN'ах, верификатор и генератор создают синергетический цикл: верификатор улучшает генератор, а по мере улучшения генератора он создает новые доказательства, которые бросают вызов текущим возможностям верификатора. Эти сложные случаи — когда верификатор может не выявить проблемы с первой попытки — становятся ценными обучающими данными для улучшения самого верификатора. Чтобы улучшить верификатор, нам нужны размеченные данные о правильности для свежесгенерированных доказательств. Ручная аннотация хоть и является простой (по сравнению с полным написанием решений), становится все более трудоемкой по мере того, как задачи становятся сложнее, а ошибки — менее заметными. Чтобы повысить эффективность человеческой аннотации (люди делают больше полезной работы), авторы генерируют по несколько оценок верификатора для каждого доказательства, чтобы выявить потенциальные проблемы для проверки человеком. То есть на какой-то итерации мы берём набор задач, генерируем несколько решений (условно 10), для каждого генерируем по ещё 10 верификаций, итого по 100 проверок на задачу. И каждая требует работы огромной LLM на тысячах токенов! Но такое масштабирование генерации верификатором увеличивает вероятность обнаружения реальных проблем в сгенерированных доказательствах с ошибками. Один раз можно пропустить, два раза пусть тоже, а вот 10 раз подряд не заметить одну ошибку — вероятность куда ниже. При этом обратите внимание, какую работу будут делать люди: они будут проверять работу верифиактора по сгенерированным доказательствам. То есть это в точности то же самое, что делали для мета-верифиакции — а значит данные можно переиспользовать для улучшения каждой части пайплайна. LLM сможет лучше критиковать критику, которую пишет другая LLM, что приведёт к улучшению самокритики у генератора.