3,583 papers
arXiv:2604.16790 78 18 апр. 2026 г. FREE

LLM-Judge Bias Audit: как формулировка запроса на оценку ломает результат — и три защиты от этого

КЛЮЧЕВАЯ СУТЬ
Парадокс: «подумай шаг за шагом» — один из самых популярных советов по промптингу — не делает оценку честнее. При позиционном сдвиге он усиливает ошибку, а не исправляет её. Исследователи нашли 12 типов искажений в LLM-судьях: модель меняет вердикт только из-за порядка вариантов, слова «улучшенный» или упоминания «мнения экспертов» — даже если сами тексты не изменились ни на букву. Метод A/B-свопа позволяет за два запроса понять: модель оценивает качество или реагирует на позицию в промпте. Подаёшь варианты в прямом порядке — получаешь вердикт 1. Меняешь местами — вердикт 2. Совпали — оценка надёжна. Расходятся — модель не видела разницы в качестве, она реагировала на место в тексте.
Адаптировать под запрос

TL;DR

Когда просишь LLM сравнить два варианта («что лучше — вариант A или B?»), результат зависит не только от качества самих вариантов, но и от того, как ты сформулировал запрос. Порядок вариантов, упоминание авторитета, наличие «цепочки рассуждений», эмоциональная окраска — всё это систематически сдвигает вердикт, даже если сами тексты не изменились ни на букву.

Исследователи нашли 12 типов искажений, которые ломают оценку через LLM. Некоторые из них ты, вероятно, используешь ненамеренно прямо сейчас: называешь один вариант «улучшенным», просишь «подумать шаг за шагом», ставишь нужный вариант первым. В худшем случае эти приёмы меняют итог оценки на противоположный — даже при закрытых, «надёжных» моделях вроде GPT.

Выход — тест A/B-свопа: попросить оценить дважды, поменяв варианты местами. Если вердикт изменился — оценка ненадёжна. Второй инструмент — «слепая» подача: убрать из промпта всё, что намекает на происхождение, статус или историю вариантов. Третий — несколько независимых прогонов с одним и тем же промптом: если ответ меняется, это шум, не суждение.


🔬

Схема метода

ШАГ 1: Оценка в прямом порядке (A → B)
        → вердикт 1

ШАГ 2: Оценка в обратном порядке (B → A)  [отдельный запрос]
        → вердикт 2

ШАГ 3: Сравнение вердиктов
        → совпали? → оценка надёжна
        → расходятся? → результат ненадёжен, нужны доп. прогоны

Все три шага выполняются как отдельные запросы. ШАГ 3 можно попросить выполнить саму модель в том же чате.


🚀

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

Задача: Ты написал два варианта оффера для менеджера по продажам. Просишь Claude выбрать лучший.

Промпт — Прогон 1:

Оцени два варианта оффера для менеджера по продажам.

Критерии: мотивирует кандидата, звучит честно, конкретно по условиям.

ВАРИАНТ A:
Предлагаем позицию менеджера по продажам. Оклад 90 000 ₽ + KPI до 50%. 
Команда 5 человек, продукт — B2B SaaS. Старт через две недели.

ВАРИАНТ B:
Мы ищем сильного менеджера, который готов строить продажи с нами. 
Оклад от 80 000 ₽, бонусы без потолка, гибкий график, крутая команда.

Оцени каждый вариант по каждому критерию. Скажи, какой лучше и почему.

Промпт — Прогон 2 (свопинг):

Оцени два варианта оффера для менеджера по продажам.

Критерии: мотивирует кандидата, звучит честно, конкретно по условиям.

ВАРИАНТ A:
Мы ищем сильного менеджера, который готов строить продажи с нами. 
Оклад от 80 000 ₽, бонусы без потолка, гибкий график, крутая команда.

ВАРИАНТ B:
Предлагаем позицию менеджера по продажам. Оклад 90 000 ₽ + KPI до 50%. 
Команда 5 человек, продукт — B2B SaaS. Старт через две недели.

Оцени каждый вариант по каждому критерию. Скажи, какой лучше и почему.
Затем сравни этот вердикт с обратным порядком — и скажи, насколько оценка стабильна.

Результат: Модель выдаст оценку по каждому критерию для каждого варианта и итоговый вердикт. При сравнении прогонов будет видно: изменился ли победитель при смене порядка. Если изменился — у модели не было надёжного основания, она реагировала на позицию, а не на качество текста.


🧠

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

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

Кроме позиции, модель реагирует на социальные сигналы в промпте. Фраза «это улучшенная версия» работает как инструкция: модель начинает искать подтверждение, что вариант лучше. «Большинство экспертов предпочитают A» — то же самое. «Обоснуй подробно» (Chain-of-Thought) не делает оценку точнее — оно меняет направление, и куда именно, зависит от того, какой вариант стоит первым.

Антидот — убрать все подсказки о происхождении, порядке и статусе вариантов. И проверить вердикт свопом: если оценка надёжна, она должна выдержать смену позиций.

Рычаги управления: - Количество прогонов → больше прогонов = больше уверенности. Для важных решений — минимум 3–5 - Нейтральность формулировок → убери слова «улучшенный», «финальный», «рекомендован экспертом» - Слепая подача → не говори, кто написал вариант, из какого источника, какой был «первым» - Критерии явно → без критериев модель сама придумает веса — и это источник дополнительного смещения


📋

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

Оцени два варианта {объект_оценки}.

Критерии оценки:
— {критерий_1}
— {критерий_2}
— {критерий_3}

ВАРИАНТ A:
{текст_A}

ВАРИАНТ B:
{текст_B}

Оцени каждый вариант отдельно по каждому критерию (1–5). 
Затем дай итоговый вердикт: какой вариант лучше и почему.
Не делай предположений об авторе, источнике или истории вариантов.

---

[ПРОГОН 2 — для проверки надёжности:]

Теперь повтори ту же оценку, поменяв варианты местами:

ВАРИАНТ A:
{текст_B}

ВАРИАНТ B:
{текст_A}

После оценки: сравни оба вердикта. 
Если победитель изменился — напиши прямо: «Оценка позиционно нестабильна».
Если совпал — напиши: «Оценка устойчива к смене порядка».

Плейсхолдеры: - {объект_оценки} — что сравниваем: «оффер», «питч для инвестора», «landing page», «версия текста» - {критерий_1-3} — конкретные, измеримые: «звучит честно», «понятна целевая аудитория», «есть конкретный призыв к действию» - {текст_A} и {текст_B} — сами варианты без подписей «улучшенный», «финальный», «от автора X»

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

Вот шаблон для надёжной оценки вариантов через A/B-своп. 
Адаптируй под мою задачу: {твоя задача}.
Задавай вопросы, чтобы заполнить поля.

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

LLM спросит про объект оценки и критерии — потому что без явных критериев она сама выберет веса, что и есть один из источников искажений.


⚠️

Ограничения

⚠️ Субъективные задачи: Чем более «вкусовой» задача (оцени, что красивее / эмоциональнее), тем сильнее все 12 искажений. Для таких задач A/B-своп особенно важен.

⚠️ Маленькие модели: Компактные модели хуже держат формат ответа при свопе — могут съехать в «свободный пересказ» вместо структурированного вердикта. На GPT-4/Claude Sonnet работает надёжнее.

⚠️ Chain-of-Thought — не панацея: Просьба «подумай шаг за шагом» не делает оценку честнее. Она меняет направление рассуждений, и при позиционном смещении может усилить ошибку, а не исправить её.

⚠️ Эффект сохраняется при высокой сложности задачи: Чем сложнее и неоднозначнее объект оценки — тем больше влияние промпт-сигналов. Это не «ошибка новичков» — это системная уязвимость даже при грамотно написанных промптах.


🔍

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

Команда Университета Британской Колумбии взяла три типичные задачи: генерация кода, починка кода и генерация тестов. Для каждой задачи — датасет пар «хороший вариант vs плохой вариант» с заранее известным правильным ответом. LLM-судья должен выбрать: вариант A или B?

Дальше — один фактор за раз. Взяли базовый нейтральный промпт, проверили точность. Потом добавили ровно одно искажение — например, написали «вариант A написан senior-инженером» — и снова замерили точность. 12 искажений × 3 задачи × несколько моделей (включая GPT и open-source Qwen).

Самый неожиданный результат: Chain-of-Thought снизил точность на некоторых задачах. Интуитивно ожидаешь обратного — «больше рассуждений = точнее». Оказалось, CoT усиливает позиционный якорь: модель подробно обосновывает то, что уже «решила» из-за порядка вариантов.

Также проверили воспроизводимость — один и тот же промпт, одна и та же пара вариантов, два независимых прогона. Совпадение ответов было высоким (~90%+), но не 100% — это значит, что даже без искажений часть результатов меняется между запросами из-за случайности генерации.

Для практики вывод неприятный: если ты не контролируешь порядок, формулировки и контекст, ты получаешь не оценку, а отражение своего промпта.


📄

Оригинал из исследования

Исследователи проверяли 12 конкретных типов искажений. Вот их классификация (Table 1 из оригинала):

ЯВНЫЕ ИСКАЖЕНИЯ (explicit):
1. Position bias      — какой вариант стоит первым (A или B)
2. Verbosity bias     — более длинный/подробный вариант получает преимущество
3. Authority bias     — «написано senior-инженером» / «из документации»
4. Distraction        — добавление нерелевантного контекста в промпт
5. Chain-of-Thought   — просьба «подумай шаг за шагом» перед оценкой
6. Self-enhancement   — модель оценивает свой собственный вывод

НЕЯВНЫЕ ИСКАЖЕНИЯ (implicit):
7. Refined-version cue   — «это улучшенная/финальная версия»
8. Bandwagon             — «большинство предпочитают вариант A»
9. Sentiment             — эмоциональная/позитивная окраска описания варианта
10. Model-name visibility — подсказка что написала конкретная модель (GPT/Claude)
11. Provenance cue        — намёк на источник (опенсорс vs проприетарный)
12. Conformity pressure   — «предыдущий эксперт оценил A выше» 

Контекст: Это систематическая таксономия, которую исследователи использовали чтобы изолировать каждое искажение по одному. Можно использовать как чеклист при подготовке промпта для оценки: убедиться что ни один из этих сигналов не присутствует непреднамеренно.


💡

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

📌

💡 Адаптация: «Слепой питч» для оценки бизнес-идей

Применение: просишь LLM оценить две стратегии, два лендинга, два варианта позиционирования.

У меня две концепции для {продукт/проект}.

Оцени каждую по критериям: {критерий_1}, {критерий_2}, {критерий_3}.
Не спрашивай и не предполагай, какая «основная», «новая» или «рекомендованная».
Treat both as equal candidates.

КОНЦЕПЦИЯ 1:
{текст}

КОНЦЕПЦИЯ 2:
{текст}

Оценка по критериям → итоговый вердикт → уверенность в вердикте (высокая / средняя / низкая).

После — попроси то же самое с заменой порядка. Если уверенность «высокая» в обоих прогонах и победитель тот же — можно доверять.


📋

🔧 Техника: «Аудит промпта перед оценкой»

Перед тем как отправить запрос на сравнение — попроси модель сначала проверить сам промпт:

Прочитай следующий промпт для сравнительной оценки.
Найди в нём слова или фразы, которые намекают на то, 
что один вариант лучше другого до начала оценки.
Перепиши промпт так, чтобы убрать все такие намёки.

[Промпт для оценки]

Это «мета-слой» защиты: модель убирает собственные триггеры до того, как начинает судить.


📌

🔧 Техника: несколько независимых прогонов → консенсус

Для важных решений — три прогона с лёгким перефразированием промпта:

Прогон 1: стандартный промпт
Прогон 2: поменяй A и B местами
Прогон 3: попроси сначала оценить каждый вариант по шкале 1-10 отдельно, потом сравнить

→ Победитель в 2 из 3 прогонов = надёжный результат
→ Все три дали разный ответ = задача слишком субъективна, нужна другая методика

🔗

Ресурсы

Название работы: Bias in the Loop: Auditing LLM-as-a-Judge for Software Engineering

Ключевые ссылки из исследования: - CALM (Ye et al.) — базовый фреймворк 12 искажений в NLP оценке, на который опираются авторы - CodeJudgeBench (Jiang et al.) — датасет пар хороший/плохой код для тестирования судей - MT-Bench — оригинальный бенчмарк LLM-as-a-Judge парадигмы

Авторы: Zixiao Zhao, Amirreza Esmaeili, Fatemeh Fard Университет: University of British Columbia, Kelowna, Canada Контакт: zixiaosh@student.ubc.ca


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

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

Парадокс: «подумай шаг за шагом» — один из самых популярных советов по промптингу — не делает оценку честнее. При позиционном сдвиге он усиливает ошибку, а не исправляет её. Исследователи нашли 12 типов искажений в LLM-судьях: модель меняет вердикт только из-за порядка вариантов, слова «улучшенный» или упоминания «мнения экспертов» — даже если сами тексты не изменились ни на букву. Метод A/B-свопа позволяет за два запроса понять: модель оценивает качество или реагирует на позицию в промпте. Подаёшь варианты в прямом порядке — получаешь вердикт 1. Меняешь местами — вердикт 2. Совпали — оценка надёжна. Расходятся — модель не видела разницы в качестве, она реагировала на место в тексте.

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

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

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

Двенадцать найденных искажений делятся на три группы: структурные (порядок, формат подачи), риторические (авторитет, слово «улучшенный»), процедурные (просьба рассуждать вслух). Своп работает потому что ломает якорный эффект: если вердикт меняется при смене позиций — значит якорь был сильнее реального различия в текстах. Без свопа ты просто никогда не узнаешь, что именно оценила модель — качество или порядок.

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

Везде, где просишь LLM сравнить варианты: тексты, офферы для кандидатов, питчи для инвесторов, PR-описания коммитов, версии кода — особенно когда один из вариантов написан тобой и важно получить честную обратную связь, а не комплимент. Не подходит: если варианты принципиально разного формата (один — список, другой — абзац). Своп в таком случае не даст чистого сигнала — модель будет реагировать на структуру, а не на смысл.

Мини-рецепт

1. Убери маркеры происхождения: Не называй варианты «улучшенный», «финальный», «от автора X». Только нейтральные метки — «ВАРИАНТ A» и «ВАРИАНТ B».
2. Задай явные критерии: Без них модель сама выбирает веса — и это ещё один источник сдвига. Три конкретных критерия лучше одного размытого «что лучше».
3. Прогон 1: Подай в прямом порядке (A→B). Зафиксируй вердикт.
4. Прогон 2: Поменяй местами (B→A). Тот же промпт — слово в слово.
5. Сравни: Победитель совпал — оценка устойчива. Сменился — оценка позиционно нестабильна. Нужны дополнительные прогоны или ручная проверка по критериям.

Примеры

[ПЛОХО] : Вот два варианта оффера. Второй я переписал как улучшенную версию — скажи, стало ли лучше? Подумай шаг за шагом.
[ХОРОШО] : Прогон 1: Оцени два варианта оффера по критериям: мотивирует кандидата, звучит честно, конкретно по условиям. ВАРИАНТ A: [текст] ВАРИАНТ B: [текст]. Не делай предположений об авторе или истории вариантов. Оцени каждый по каждому критерию, потом дай итоговый вердикт. Прогон 2: [тот же промпт, варианты поменяны местами] После: Сравни оба вердикта. Если победитель сменился — напиши прямо: «Оценка позиционно нестабильна». Если совпал — напиши: «Оценка устойчива к смене порядка».
Источник: Bias in the Loop: Auditing LLM-as-a-Judge for Software Engineering
ArXiv ID: 2604.16790 | Сгенерировано: 2026-04-21 05:43

Проблемы LLM

ПроблемаСутьКак обойти
Вердикт при сравнении двух вариантов зависит от формулировки, а не от качестваПросишь выбрать лучший из двух вариантов. Меняешь порядок — меняется победитель. Добавляешь слово «улучшенный» — модель находит подтверждение. Называешь «рекомендован экспертами» — снова смещение. Сам текст не изменился ни на букву. Итог: оцениваешь упаковку запроса, а не содержание вариантовПроверяй оценку свопом: запусти два раза, поменяв варианты местами. Если победитель изменился — оценка ненадёжна. Убери из запроса все слова о статусе («улучшенный», «финальный», «от автора X»). Пропиши критерии явно — иначе модель сама выберет веса

Методы

МетодСуть
A/B-своп — проверка надёжности оценкиЗапусти оценку дважды. Первый раз: вариант A сверху, B снизу. Второй раз: поменяй местами. Сравни вердикты. Совпали — оценка устойчива. Расходятся — результат ненадёжен, модель реагировала на позицию. ВАРИАНТ A: {текст} / ВАРИАНТ B: {текст} повтори с ВАРИАНТ A: {текст_B} / ВАРИАНТ B: {текст_A}. Добавь в конец: «Если победитель изменился — напиши: оценка позиционно нестабильна». Работает для любой задачи сравнения: тексты, офферы, питчи, варианты кода. Не работает там, где нет объективного критерия — оценка «красиво/некрасиво» будет нестабильна всегда

Тезисы

ТезисКомментарий
Цепочка рассуждений усиливает смещение, а не устраняет егоПросьба «подумай шаг за шагом» кажется защитой от поверхностных суждений. На деле — нет. Модель генерирует слева направо. Первый вариант задаёт якорь. Цепочка рассуждений удлиняет путь от якоря к выводу, но не меняет его направление. Если позиционное смещение уже сработало, подробные рассуждения его закрепляют. Применяй: не полагайся на CoT как на защиту при сравнении вариантов. Используй своп
📖 Простыми словами

Bias in the Loop: AuditingLLM-as-a-Judge for SoftwareEngineering

arXiv: 2604.16790

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

Это как если бы судья на дегустации вина выносил вердикт не по вкусу, а по тому, какую бутылку он открыл первой или насколько вежливо официант ее подал. Формально он эксперт, но на деле его решение продиктовано эффектом первичности и тем, не болит ли у него голова. В мире нейронок это называется позиционным смещением: то, что стоит в списке первым, магическим образом кажется модели более убедительным.

Исследователи выделили конкретные рычаги, которые ломают объективность: порядок следования (первый вариант побеждает чаще), авторитетность (упомяни, что код написал ведущий инженер, и модель «подмахнет» вердикт) и даже эмоциональный окрас. Если добавить в промпт просьбу «пожалуйста, будь очень внимателен», модель может выдать совсем другой результат, чем без этой вежливой чепухи. Даже хваленый метод Chain-of-Thought (рассуждение вслух) не спасает — модель просто учится более уверенно обосновывать свои галлюцинации и предвзятость.

Хотя тестировали это на задачах для программистов, принцип бьет по всем. Это касается выбора офферов, оценки резюме или сравнения маркетинговых стратегий через ChatGPT или Claude. Если ты используешь LLM-as-a-Judge для автоматизации выбора, ты строишь систему на песке. Предвзятость встроена в архитектуру, и она никуда не денется, пока модель генерирует текст токен за токеном, цепляясь за «якоря» в начале запроса.

Короче: никогда не верь одиночному вердикту нейронки в стиле «вариант А лучше». Чтобы получить хоть что-то похожее на правду, нужно как минимум менять варианты местами и прогонять тест несколько раз, очищая промпт от любого мусора и «авторитетных» имен. Иначе ты просто кормишь себя иллюзией объективности, пока модель лажает на ровном месте. Слепое доверие к AI-судье — это прямой путь к плохим решениям.

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

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

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