3,583 papers
arXiv:2607.06004 72 7 июля 2026 г. FREE

Rejection Bias в LLM: почему модель систематически говорит «неправильно» даже на правильных определениях

КЛЮЧЕВАЯ СУТЬ
Парадокс: попроси LLM проверить правильную формулировку — она скажет «здесь неточно» и придумает причину. Модель обучена на миллионах споров, ревью и правок — паттерн «найди ошибку» становится доминирующим при любом валидирующем запросе, даже когда придираться не к чему. Метод Steel-Man Validation позволяет получить честную оценку формулировок — требований, договорных условий, описаний задач — вместо автоматического «здесь есть проблема». Принудительная защита в первом шаге ломает этот режим: модель сначала пишет что здесь правильно — и после этого критика второго шага становится точечной, а не выдуманной.
Адаптировать под запрос

TL;DR

LLM склонна отвергать правильные определения, критикуя и находя проблемы даже там, где их нет. Эта склонность — rejection bias — означает, что когда модель говорит «это неправильно», она частично фабрикует причины для критики, а не честно оценивает.

Это неочевидно. Казалось бы, модель должна хорошо узнавать правильные вещи — она же обучена на корректных текстах. Но оказывается: LLM значительно лучше замечает поддельные/неверные определения, чем принимает правильные. Модель «ищет, к чему придраться» — и находит, даже когда всё верно.

Практический вывод: не используй LLM как бинарный валидатор формулировок, определений, описаний требований. Если попросить «это правильно или нет?» — модель скорее скажет «нет» и придумает причину. Вместо этого используй двухшаговую проверку: сначала попроси модель аргументировать в защиту формулировки, потом — найти реальные слабости.


🔬

Схема метода

Исследование описывает поведенческую ловушку, а не готовую технику. Из неё вытекает конкретный приём — Steel-Man Validation:

ШАГ 1: Стил-мэн → попроси модель аргументировать ПОЧЕМУ формулировка правильна
        Вывод: список сильных сторон определения

ШАГ 2: Критика → попроси найти реальные пробелы или неточности
        Вывод: список конкретных замечаний с обоснованием

(Оба шага — в одном промпте или двух запросах подряд)

🚀

Пример применения

Задача: Ты пишешь техническое задание для разработчиков. Хочешь проверить, чётко ли сформулировано требование — нет ли двусмысленности или пропущенных ограничений.

Промпт:

Я хочу проверить точность этого требования:

"{текст формулировки}"

Сделай это в два шага:

1. ЗАЩИТА: Объясни, что эта формулировка делает правильно. 
   Что в ней точно, полно и однозначно? 
   Почему разработчик поймёт её верно?

2. КРИТИКА: Теперь найди реальные слабости. 
   Что пропущено? Где возможна двусмысленность? 
   Какой крайний случай не учтён?

Разделяй шаги явно. Не смешивай.

Результат: Модель сначала сформулирует, что формулировка делает хорошо — это «обнуляет» rejection bias и заставляет её честно искать сильные стороны. Затем в блоке критики замечания будут более точными и обоснованными — меньше выдуманных проблем, больше реальных пробелов. Ты получишь сбалансированную оценку, а не автоматическое «здесь неточно».


🧠

Почему это работает

Слабость LLM: Когда задаёшь бинарный вопрос «правильно или нет?» — модель входит в режим поиска ошибок. Она обучена на огромном массиве текстов, включая форумы где люди спорят, исправляют, критикуют. Этот паттерн «найди проблему» становится доминирующим при валидирующих запросах.

Что происходит на практике: Модель генерирует критику, потом подбирает под неё объяснение — а не наоборот. Исследование это зафиксировало буквально: LLM отвергает правильные определения и придумывает причины. Это как ревьюер, который решил «нет» ещё до прочтения — и потом ищет, чем обосновать.

Как двухшаговый подход ломает этот паттерн: Принудительная защита на первом шаге меняет «режим» модели. Она сначала генерирует паттерн принятия и обоснования — и после этого критика во втором шаге становится более точечной. Модель уже не может быть огульно критичной: она только что сама написала, что здесь правильно.

Рычаги управления промптом: - «Не смешивай шаги» → без этого модель съедет в критику сразу, на первом же шаге - Явные заголовки ЗАЩИТА / КРИТИКА → сигнализируют модели о смене режима - Добавь «приведи конкретный пример края, где это сломается» → фокусирует критику на реальных проблемах, а не на стилистике - Убери ШАГ 1 совсем → получишь обычный rejection bias в чистом виде, полезно для сравнения


📋

Шаблон промпта

Проверь точность этой формулировки:

"{формулировка}"

Два шага:

1. ЗАЩИТА
Что здесь сделано правильно? Что точно, полно, однозначно?
Почему {целевая аудитория} поймёт это верно?

2. КРИТИКА
Что пропущено или неточно? 
Где возможна двусмысленность?
Приведи конкретный пример ситуации, где формулировка даст сбой.

Шаги — отдельно. Без смешивания.

Плейсхолдеры: - {формулировка} — ваше определение, требование, условие договора, описание фичи - {целевая аудитория} — кто будет читать: разработчик, клиент, юрист, пользователь


🚀 Быстрый старт — вставь в чат:

Вот шаблон двухшаговой проверки формулировок. 
Адаптируй под мою задачу: [твоя задача].
Задавай вопросы, чтобы заполнить поля.

[вставить шаблон выше]

LLM спросит что именно проверять и кто целевой читатель — потому что без этого второй шаг (критика) будет слишком общим и не попадёт в реальные риски.


📌

Почему это важно за пределами SE

Rejection bias — не специфика технической терминологии. Вот где он проявляется в обычной работе:

  • Договорные формулировки → попросил проверить пункт, LLM найдёт «проблему» даже в стандартном условии
  • Описание вакансии → проверяешь требование к кандидату — получаешь критику стиля вместо анализа полноты
  • Бриф клиенту → просишь «всё точно?» — придёт список правок, половина из которых выдуманная
  • Любой чеклист или критерий приёмки → бинарный «да/нет» запускает режим придирок

Во всех этих случаях двухшаговый подход даёт более честный результат.


⚠️

Ограничения

⚠️ Reasoning-режим не помогает, иногда вредит: Включение расширенного рассуждения (например, o3, Opus с extended thinking) не снижает rejection bias систематически. Часть моделей начинает «перемудрять» — и отвергает правильное с ещё большей уверенностью.

⚠️ Метод работает для проверяемых формулировок: Если критерий правильности субъективен (стиль, тон, «нравится ли покупателю») — двухшаговая схема не помогает. Нужен чёткий стандарт: договор, техническое требование, описание с известным правильным ответом.

⚠️ Разные модели — разный перекос в сторону: Большинство моделей страдает over-rejection (всё плохо). Claude Opus 4.6 показал обратную картину — over-acceptance (принимал даже подделки). Учитывай это при выборе инструмента для валидации.


🔍

Как исследовали

Команда взяла официальный стандарт ISO 24765 — 5 381 определение из области разработки ПО, самый авторитетный источник SE-терминологии. Из каждого определения сделали подделку двумя способами: структурная — убрали уточняющую фразу (определение осталось грамматически правильным, но потеряло критичный смысл); семантическая — заменили ключевые слова на похожие, но неверные (вместо «terms» — «relation», вместо «knowledge» — «aspects»). Получилось 4 618 пар: правильное + подделка.

Каждое определение показали шести моделям с простым промптом: «Это определение правильное? True/False + объяснение». Ожидали, что модели хорошо распознают правильные вещи и плохо — тонкие подделки. Получили ровно противоположное. Почти все модели точнее выявляли подделки, чем принимали правильное. Логика простая: интернет полон споров и исправлений — модель обучена «искать проблему», а не «подтверждать правильность».

Потом вручную разобрали 1 200 объяснений (по 200 на модель) и нашли закономерность: при неправильных ответах модели либо придумывали проблему с нуля, либо замечали несоответствие, но всё равно принимали («ну, в каком-то смысле это и так можно понять»). Это показало, что проблема не в знаниях модели — а в паттерне поведения при валидирующих запросах.


💡

Адаптации и экстраполяции

🔧 Техника: явный арбитраж → снижение fabricated critique

Добавь третий шаг — попроси модель оценить насколько критика из шага 2 реально меняет смысл, а не просто стилистическая придирка:

3. АРБИТРАЖ
Из замечаний в Критике — какие меняют смысл принципиально?
Какие — просто о стиле или незначительны?
Оцени: нужно ли переписывать?

Это отсекает «шум» из rejection bias — оставляет только содержательные замечания.

🔧 Техника: обратная проверка → поймать LLM на противоречии

Если модель сказала, что формулировка неверна — дай ей другой запрос:

Предположи, что эта формулировка написана экспертом 
и намеренно точная. Как её правильно интерпретировать?

Если модель легко «принимает» ту же формулировку в таком контексте — первый отказ был именно rejection bias, не реальной проблемой.


🔗

Ресурсы

Large Language Models Have Unreliable Understanding of Software Engineering Terminology Huzaifa Ejaz, Fabian C. Peña, Steffen Herbold University of Passau, Faculty of Computer Science and Mathematics, Passau, Germany ISO/IEC/IEEE 24765:2017 Systems and Software Engineering — Vocabulary (стандарт-основа исследования)


📋 Дайджест исследования

Ключевая суть

Парадокс: попроси LLM проверить правильную формулировку — она скажет «здесь неточно» и придумает причину. Модель обучена на миллионах споров, ревью и правок — паттерн «найди ошибку» становится доминирующим при любом валидирующем запросе, даже когда придираться не к чему. Метод Steel-Man Validation позволяет получить честную оценку формулировок — требований, договорных условий, описаний задач — вместо автоматического «здесь есть проблема». Принудительная защита в первом шаге ломает этот режим: модель сначала пишет что здесь правильно — и после этого критика второго шага становится точечной, а не выдуманной.

Принцип работы

Бинарный вопрос «это верно?» запускает режим ревьюера-отказника. Модель сначала решает «неправильно» — потом подбирает обоснование. Не анализирует честно, а подгоняет объяснение под заранее принятый вывод. Это как ревьюер, который сказал «нет» ещё до прочтения — и потом ищет чем заполнить форму отказа. Двухшаговый подход переключает стартовую позицию: ЗАЩИТА первой, КРИТИКА второй. Модель, которая только что сама написала «эта формулировка точная и однозначная», не может в следующем блоке выдать автоматическое «здесь всё плохо». Ей приходится искать реальные проблемы, а не выдуманные.

Почему работает

В обучающем корпусе паттерн «найди ошибку — объясни» встречается в разы чаще, чем «прими и подтверди». Code review, форумы, редакторские правки — там принято критиковать. Это нормально и полезно. Но у этого есть цена: на вопрос «правильно ли это?» модель входит в режим поиска — и находит, даже если нечего искать. Жесть: модель не анализирует текст и потом делает вывод — она делает вывод сначала, потом генерирует объяснение. Это зафиксировано буквально: LLM отвергает заведомо правильные определения и фабрикует причины. Принудительная защита меняет первый шаг генерации — и вся цепочка рассуждений идёт в другом направлении.

Когда применять

Техническая документация → для проверки требований и критериев приёмки, особенно перед передачей задачи разработчику — там важна однозначность. Договорные условия → когда проверяешь пункт и не хочешь получить список выдуманных правок. Брифы, описания вакансий, любые формулировки где нужна точность → везде где LLM выступает судьёй «понятно это написано или нет». НЕ подходит для субъективных оценок — стиль, тон, «нравится ли читателю» — здесь нет объективного стандарта, и двухшаговая схема не поможет. Отдельная история с моделями-оптимистами: Claude Opus показал обратный перекос — принимал даже подделки. Учитывай это при выборе.

Мини-рецепт

1. Вставь формулировку: требование, определение, условие договора — то что нужно проверить.
2. Пропиши два явных блока: заголовки ЗАЩИТА и КРИТИКА прямо в промпте — без них модель съедет в критику уже на первом шаге.
3. В блоке ЗАЩИТА: попроси объяснить что здесь точно, полно и однозначно. Добавь целевого читателя: «почему разработчик / клиент / юрист поймёт это верно?»
4. В блоке КРИТИКА: попроси найти реальные пробелы, двусмысленности и конкретный пример ситуации где формулировка даст сбой. Слово «конкретный» важно — оно уводит от стилистических придирок к реальным проблемам.
5. Добавь запрет смешивания: «Шаги — отдельно. Без смешивания.» — одна строчка, а результат заметно чище.

Примеры

[ПЛОХО] : Проверь требование: «Система должна обрабатывать запросы быстро». Это правильно сформулировано?
[ХОРОШО] : Проверь это требование: «Система должна обрабатывать запросы быстро» Два шага: 1. ЗАЩИТА Что здесь сделано правильно? Что точно, полно, однозначно? Почему разработчик поймёт это требование верно? 2. КРИТИКА Что пропущено или неточно? Где возможна двусмысленность? Приведи конкретный пример ситуации, где формулировка даст сбой. Шаги — отдельно. Без смешивания.
Источник: Large Language Models Have Unreliable Understanding of Software Engineering Terminology (arXiv:2607.06004)
ArXiv ID: 2607.06004 | Сгенерировано: 2026-07-08 04:23

Проблемы LLM

ПроблемаСутьКак обойти
Бинарный запрос на проверку запускает режим придирокПросишь: "это правильно или нет?". Модель входит в режим поиска ошибок. Обучена на текстах где люди спорят, критикуют, исправляют. Этот паттерн доминирует. Модель сначала "решает" что плохо — потом придумывает причину. Итог: правильная формулировка получает список выдуманных проблемНе спрашивай "правильно или нет?". Убери бинарный выбор. Замени двухшаговой проверкой: сначала "что здесь сделано правильно?", потом "что пропущено или неточно?"

Методы

МетодСуть
Двухшаговая проверка — честная оценка без придирокДва блока в одном запросе. Блок 1 — ЗАЩИТА: "Что здесь точно, полно, однозначно? Почему читатель поймёт верно?". Блок 2 — КРИТИКА: "Что пропущено? Где двусмысленность? Приведи пример ситуации где это сломается". Добавь: "Шаги — отдельно. Без смешивания." Почему работает: Первый шаг меняет режим модели. Она сперва строит паттерн принятия. После этого критика точечная — модель уже не может огульно говорить "плохо": только что сама написала что хорошо. Убери первый шаг — получишь чистые придирки. Когда работает: проверяемые формулировки с чётким стандартом — требования, договор, описание фичи, критерии приёмки. Когда не работает: субъективная оценка без стандарта (стиль, тон, "нравится ли")

Тезисы

ТезисКомментарий
Расширенные рассуждения не снижают склонность к придиркамИнтуитивно кажется: включи глубокое рассуждение — модель станет честнее. Нет. Режим расширенного рассуждения (например, o3) не снижает склонность отвергать правильное. Часть моделей "перемудривает" и отвергает с ещё большей уверенностью. Применяй: не рассчитывай что расширенное рассуждение само исправит эту проблему. Нужна структура запроса — двухшаговая проверка
📖 Простыми словами

LargeLanguageModelsHave Unreliable Understanding of SoftwareEngineeringTerminology

arXiv: 2607.06004

Современные LLM — это не беспристрастные судьи, а токсичные душнилы с форумов, которые во всем ищут подвох. Корень проблемы в том, что у моделей сбит прицел на критику: они страдают от rejection bias. Когда ты просишь нейронку проверить термин или определение, она не пытается понять, насколько оно верно, а сразу включает режим «докопаться до столба». В итоге модель начинает фабриковать ошибки там, где их нет, просто потому что ты сам поставил её в позицию критика.

Это как если бы ты пришел к опытному, но очень злому тимлиду и спросил: «Слушай, а в этом коде точно нет багов?». Тимлид, чтобы не потерять лицо, обязательно найдет к чему придраться, даже если код идеален, просто потому что ты спросил. Модель чувствует, что от неё ждут разоблачения, и начинает высасывать аргументы из пальца, превращаясь в предвзятого хейтера.

Чтобы не попасть в эту ловушку, нужно использовать метод Steel-Man Validation. Вместо того чтобы спрашивать «правильно ли это?», заставь модель сначала защитить твой тезис. Если ты пишешь ТЗ и хочешь проверить его на вшивость, не давай модели шанс сразу начать критиковать. Сначала попроси её объяснить, почему это описание хорошее, а уже потом — где оно может сломаться. Это ломает паттерн поиска ошибок ради ошибок и заставляет нейронку работать головой, а не просто выдавать заученную агрессию.

Этот принцип универсален: он касается не только IT-терминов, но и любой проверки фактов, юридических документов или бизнес-стратегий. Везде, где есть место интерпретации, LLM будет лажать, если чувствует, что её наняли в качестве «полиции правды». SEO-тексты, документация, научные определения — везде модель будет вести себя как студент, который уверенно врет на экзамене, лишь бы не признать, что придраться не к чему.

Короче: никогда не принимай критику нейронки на веру, если ты сам спровоцировал её на этот поиск. Помни, что 10 из 15 замечаний могут быть чистой фантазией, рожденной из желания угодить твоему запросу на проверку. Хочешь честный фидбек — меняй роли и заставляй модель играть за обе команды, иначе ты просто получишь порцию галлюцинаторного хейта вместо реальной помощи.

Работа с исследованием

Адаптируйте исследование под ваши задачи или создайте готовый промпт на основе техник из исследования.

0 / 2000
~0.5-2 N-токенов ~10-30с
~0.3-1 N-токенов ~5-15с