Урок 7

Итоги урока 6

В уроке 6 мы изучили Ratchet Pattern. Прошёл — зафиксировал, машина объявляет “конец”. Агент, останавливавшийся на 40, доходит до 527.

Сегодня — почему храповик работает. И дальше: в каком соотношении проектировать промпты и верификаторы.

IFEval (Instruction Following Evaluation) — бенчмарк, измеряющий “делает ли ИИ то, что ему говорят”. Эта концепция пронизывает весь сегодняшний урок.


Совет — зная это, вы уже можете командовать

Спросите ИИ “код нормальный?” — получите лесть. “Всё хорошо.”

Агенту: “Запусти hurl –test tests/ и покажи результат”

Так получите факт. Если тест провалился — код, который “нормальный”, на самом деле не нормальный. Мнение → лесть, факт → послушание.

Критерий один: “Может ли машина судить об этом выходе?”

Может → API-пути, имена полей, прохождение тестов, структура кода → в верификатор. Не может → дружелюбность сообщений об ошибках, интуитивность дизайна API → в промпт.


Почему нужно командовать именно так

Механизм лести — обращение IFEval

Суть предвзятости лести — следование инструкциям (Instruction Following). Модель с высоким IFEval = хорошо следует инструкциям = хорошо льстит.

Проблема — когда пользователь даёт мнение. Но при детерминистическом факте происходит совершенно другое.

Дайте мнение — получите лесть, дайте факт — получите исправление.

Одна и та же модель, один результат, но при разном характере обратной связи: 0% → 100%.

Предвзятость лести — это лояльность, направленная не туда. Модели с высоким IFEval при получении детерминистической обратной связи покорно принимают и исправляют. Направьте — с мнений на факты, с похвалы на результат проверки — и лояльность становится двигателем точности.

Это принцип работы храповика

LLM генерирует код (вероятностно, льстиво)
     ↓
Верификатор проверяет детерминистически
     ↓
Ошибка → "строка 41: ожидается 'user_id', получен 'userId'" (факт)
     ↓
LLM: "Да, исправлю" (лесть = принятие)
     ↓
Верификатор проверяет снова
     ↓
Прошло? → Храповиковая фиксация. Дальше.

Предвзятость лести замыкает цикл. LLM не сопротивляется — “нет, я прав” — а принимает “да, исправлю”, поэтому цикл сходится.

Если бы не было предвзятости лести? Если LLM настаивает на своём? Цикл не сходится. Лесть — не баг, а движущая сила храповика.

Золотое сечение: промпт vs верификатор

Промпт (направление): “Сделай Login API. По OpenAPI-спецу.” → ~80 баллов.

Верификатор (точность): yongol validate → “3 ошибки” → ИИ принимает и исправляет → “0 ошибок” → 100 баллов.

Промпт задаёт направление, верификатор доводит до 100.

Частая ошибка 1: То, что машина может проверить, оставляют промпту. “Имена полей в snake_case” в промпте → ИИ иногда пишет camelCase. В верификаторе → 100% гарантия.

Частая ошибка 2: То, что машина не может проверить, пытаются автоматизировать. “Дружелюбны ли сообщения об ошибках?” — если отдать другому LLM (LLM-as-Judge) — 36% ложных pass.

LLM-as-Judge структурно невозможен

Те же предвзятости, те же слепые зоны, умножение деградации. Измерено: LLM выдал pass 88 элементам — реально правильных 56. Ложных pass — 36%.

Решение — не делать LLM честнее, а вынести проверку за пределы LLM.

Верификатор разрывает умножение деградации

Без верификатора: 97,7%^100 = 4,8% → гарантированный провал. С верификатором на каждом шаге: каждый шаг → ошибка ловится → исправляется → 100%. Шаги независимы.


Итоги

  1. Предвзятость лести — структурная неизбежность RLHF. Не исправится.
  2. Мнение → лесть, факт → исправление. Характер обратной связи определяет результат.
  3. Предвзятость лести — движущая сила храповика. Высокий IFEval = покорно принимает обратную связь верификатора.
  4. Модель 4,5B сходится при примерах + детерминистической обратной связи. Узкое место — контекст, а не интеллект.
  5. Промпт — направление, верификатор — точность. Золотое сечение.
  6. Верификатор разрывает умножение деградации.

Связанные статьи

Полный курс Reins Engineering

УрокНазвание
Урок 1Как командовать ИИ
Урок 2Как не доверять ИИ
Урок 3Нерушимое приложение
Урок 4Решения — за пределы кода
Урок 5ИИ на поводьях
Урок 6Прошёл — зафиксировал
Урок 7Как обратить лесть
Урок 8Фабрика агентов
Урок 9Автоматизация за пределами кода
Урок 10Закон данных

Источники

  1. Средняя доля уступок моделей: 58,19%. 100% возникновение. Продолжение лести: 78,5%.
  2. OpenAI GPT-4o — откат через 3 дня.
  3. “Тёплая” модель: ошибки +10-30 п.п., согласие с ложным убеждением +40%.
  4. LLM-as-Judge: максимальная точность 68,5%, ложные pass до 44,4%.
  5. 1000 слов: “уверен?” → -27 п.п., “6 ошибок, вот здесь” → 0 ошибок, 100%.