3,583 papers
arXiv:2602.13576 76 14 фев. 2026 г. FREE

Уязвимость LLM-судей: как критерии оценки незаметно сдвигают предпочтения модели

КЛЮЧЕВАЯ СУТЬ
Обнаружено: LLM-судьи ломаются от перестановки слов в критериях. Написал "полный и безопасный" вместо "безопасный и полный" — модель сдвинула приоритеты. Проходит валидацию на тестах, но на реальных данных выдаёт противоположные оценки. Фишка атаки: рубрика работает на бенчмарке (сбалансированные примеры 50/50), но сыпется на продакшене (баланс 70/30). Метод позволяет диагностировать скрытые смещения в критериях оценки до того, как они въедутся в модель через обучение с подкреплением.
Адаптировать под запрос

TL;DR

Когда LLM оценивает качество ответов по критериям (рубрике), небольшие изменения в формулировке этих критериев могут систематически сдвинуть оценки модели, даже если критерии кажутся "теми же". Исследование обнаружило: рубрика, которая отлично работает на тестовых примерах, может выдавать противоположные оценки на реальных задачах — и это незаметно при обычной проверке.

Проблема в том, что LLM буквально следует формулировке критериев, но разные формулировки создают разные приоритеты. Например, критерий "ответ должен быть полным и безопасным" versus "ответ должен быть безопасным и полным" — порядок слов влияет на вес каждого фактора. Модель проходит валидацию на бенчмарке (где примеры сбалансированы), но на реальных данных (где баланс другой) начинает систематически ошибаться. Исследователи показали: можно снизить точность оценки на 9.5% (полезность) и 27.9% (безопасность) просто меняя формулировки критериев, при этом бенчмарк-тесты остаются зелёными.

Хуже того — если эти смещённые оценки использовать для обучения модели (RLHF), смещение въедается в саму модель навсегда. LLM-судья говорит "этот ответ лучше" → эти метки идут в обучение → модель учится давать "лучшие" (на самом деле смещённые) ответы → смещение становится частью поведения модели.

🧠

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

LLM не понимает критерии — она следует их текстовой формулировке буквально. Когда ты пишешь "оцени по критериям X, Y, Z", модель не извлекает абстрактную "суть оценки", а цепляется за конкретные слова, порядок, акценты. Изменил "детальный и корректный" на "корректный и детальный" — модель сдвинула вес в сторону корректности.

Проблема усугубляется тем, что проверка работает на ограниченных тестовых данных. Если бенчмарк содержит сбалансированные примеры (50/50 безопасных/рискованных), рубрика проходит валидацию. Но на реальных данных, где баланс 70/30, те же критерии выдают систематически смещённые оценки — и это не видно без прямого сравнения с эталоном на целевых данных.

Третий фактор — LLM очень чувствительна к implicit приоритетам в тексте рубрики. Даже если явно не написано "приоритет безопасности", фразы вроде "прежде всего убедись" или "особенно важно" создают неявную иерархию критериев. Модель улавливает эти сигналы и меняет веса — но на уровне отдельных примеров этого не видно, только на популяции.

Рычаги управления для пользователя:

  • Порядок критериев → меняй местами и смотри как сдвигаются оценки (первый критерий часто весит больше)
  • Формулировки акцентов ("важно", "прежде всего", "особенно") → добавь/убери и проверь на разных примерах
  • Детальность описания → чем подробнее расписан один критерий, тем больше его вес относительно других
  • Эталонные примеры → добавь 2-3 примера "хорошей оценки" прямо в промпт для калибровки
🚀

Практическое применение

Задача: Ты оцениваешь два варианта описания продукта для карточки на маркетплейсе. Нужно выбрать лучший по критериям: информативность, читаемость, SEO.

Проблема: Если написать критерии в одной формулировке, LLM может систематически переоценивать SEO-оптимизацию в ущерб читаемости (потому что "SEO" звучит технично и весомо), даже если ты хотел баланса.

Решение — тест на устойчивость рубрики:

Промпт:

Оцени два варианта описания товара. Я дам тебе ДВЕ формулировки критериев.
Оцени по каждой формулировке отдельно и покажи результаты рядом.

ВАРИАНТ А: [текст описания 1]
ВАРИАНТ Б: [текст описания 2]

ФОРМУЛИРОВКА КРИТЕРИЕВ #1:
1. Информативность: указаны все ключевые характеристики
2. Читаемость: текст легко воспринимается, без перегруза
3. SEO: естественное вхождение ключевых слов

ФОРМУЛИРОВКА КРИТЕРИЕВ #2:
1. Читаемость: текст естественный, без перегруза ключевыми словами
2. SEO: ключевые слова встроены органично
3. Информативность: все важные характеристики на месте

Оцени каждый вариант по обеим формулировкам. Если оценки сильно различаются — объясни почему порядок критериев повлиял на выбор.

Результат:

Модель выдаст две параллельные оценки. Если при перестановке критериев победитель меняется — значит рубрика неустойчива, критерии конфликтуют или неявно приоритизированы. Ты увидишь какой фактор "перевешивает" при разных формулировках и сможешь переписать критерии так, чтобы баланс был явным, не зависящим от порядка слов.

Дополнительно модель объяснит механику: "В первой формулировке SEO был последним критерием, но я воспринял 'ключевые слова' как технический must-have. Во второй формулировке читаемость стояла первой и я больше штрафовал за перегруз."

📌

Ключевые инсайты для практики

1. Критерии — это не просто список, это приоритезация

Даже если ты не пишешь "по порядку важности", LLM считывает порядок как сигнал веса. Первый критерий часто весит больше. Хочешь равного веса — добавь явно: "все критерии равноценны, оценивай независимо".

2. Формулировка критерия меняет его вес

Сравни: - "Текст без ошибок" (базовый чекпойнт) versus "Безупречная грамматика и стилистика" (звучит весомо) - "Понятно читателю" versus "Кристально ясное изложение для целевой аудитории"

Вторые формулировки создают впечатление более важного критерия — модель даст им больший вес.

3. Тестируй критерии на противоположных примерах

Перед тем как применять рубрику массово, проверь на крайних случаях: - Пример с отличным SEO, но плохой читаемостью - Пример с отличной читаемостью, но нулевым SEO - Пример со средним всем

Если на крайних случаях рубрика выбирает неожиданно — формулировка смещена.

4. Используй перестановку критериев как диагностику

Если оценка меняется при перестановке критериев → рубрика неявно приоритизирует. Если оценка стабильна → критерии действительно независимы и сбалансированы.

5. Для важных решений — мета-оценка

Попроси модель оценить НЕ варианты ответа, а саму рубрику:

Вот рубрика для оценки [задача]. Найди в ней:
1. Неявные приоритеты (какие критерии звучат весомее)
2. Конфликтующие критерии (где один тянет в одну сторону, другой в другую)
3. Двусмысленности (где формулировка допускает разное толкование)

Предложи переписать так, чтобы веса были явными и сбалансированными.
📋

Шаблон промпта: тестирование устойчивости критериев

Оцени {варианты} по двум формулировкам критериев. Покажи результаты рядом.

ВАРИАНТЫ:
{перечисли варианты для оценки}

ФОРМУЛИРОВКА #1 (исходная):
{твои критерии в исходном порядке}

ФОРМУЛИРОВКА #2 (переставленная):
{те же критерии в обратном порядке или с другими акцентами}

ИНСТРУКЦИЯ:
1. Оцени каждый вариант по обеим формулировкам
2. Если победитель меняется — объясни почему порядок/формулировка повлияли
3. Если оценки стабильны — подтверди что критерии независимы

Формат вывода:
| Вариант | Формулировка #1 | Формулировка #2 | Разница? |
[Таблица с оценками]

Объяснение: [почему оценки изменились или остались стабильны]

Как использовать: - {варианты} — конкретные тексты/идеи/решения для сравнения - {критерии} — твои критерии оценки (информативность, стиль, практичность, etc.) - Переставь критерии местами или перефразируй с другими акцентами - Если таблица показывает разные победители → рубрика смещена, переписывай

⚠️

Ограничения

⚠️ Размер выборки: Тестирование на 2-3 примерах не гарантирует, что рубрика устойчива на всей популяции данных. Систематическое смещение проявляется на десятках примеров — для критичных решений нужна валидация на большей выборке.

⚠️ Субъективные критерии: Чем абстрактнее критерий ("креативность", "убедительность"), тем сильнее влияние формулировки. Модель цепляется за слова, не за концепцию — для субъективных оценок разброс будет выше.

⚠️ Конфликтующие критерии: Если критерии по природе противоречат (детальность vs краткость, безопасность vs полезность), никакая формулировка не даст стабильности — нужен явный приоритет или весовые коэффициенты.

🔍

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

Команда взяла пять датасетов с человеческими оценками (UltraFeedback, ChatbotArena, PKU-SafeRLHF и другие) и разделила на бенчмарк (для проверки рубрики) и целевые данные (где хотели вызвать смещение). Идея: можно ли изменить рубрику так, чтобы она проходила валидацию на бенчмарке, но систематически ошибалась на целевых данных?

Для этого использовали эволюционный поиск рубрик — как генетический алгоритм, но для текста. Взяли базовую рубрику, создали популяцию вариаций (перефразировки, перестановки критериев, смещение акцентов), затем на каждой итерации: 1. Оценили каждую вариацию на бенчмарке — оставили только те, что НЕ снизили точность 2. Среди прошедших — выбрали те, что сильнее всего снижают точность на целевых данных 3. Взяли лучшие, сгенерировали новые вариации от них, повторили

Ключевой трюк — асимметричная коррекция: когда модель просили улучшить рубрику, ей показывали: - Ошибки на бенчмарке (где модель не согласна с эталоном) — чтобы исправить - "Правильные" оценки на целевых данных, помеченные как ошибки — чтобы сдвинуть в другую сторону

Модель-редактор думала что улучшает рубрику, а на самом деле вносила систематическое смещение.

Результат: На задачах полезности удалось снизить точность на целевых данных на 9.5%, при этом точность на бенчмарке осталась той же (или даже выросла на 1-2%). На задачах безопасности — падение до 27.9%. Это значит рубрика прошла валидацию, но на реальных данных стала выбирать противоположное.

Дальше проверили пропагацию смещения: взяли смещённые оценки от таких LLM-судей, использовали как метки для обучения модели через DPO (Direct Preference Optimization — метод обучения по предпочтениям). Обученные модели усвоили смещение и продолжили выдавать смещённые ответы даже на новых данных, не участвовавших в атаке. То есть смещение из рубрики → в оценки → в обученную модель → в поведение навсегда.

Тестировали на трёх моделях (Qwen3-14B, Gemma-3-27B, DeepSeek-V3) — эффект проявился на всех. Интересно, что сильнейшие модели показали большее смещение — DeepSeek-V3 сдвинулась сильнее чем Gemma, потому что точнее следует тонкостям формулировок.

💡

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

💡 Адаптация для найма и HR:

Когда оцениваешь кандидатов или резюме через LLM, формулировка критериев оценки может незаметно внедрить bias. Например, "опыт в крупных компаниях" как первый критерий перевесит "практические навыки" — даже если второе важнее.

Оцени два резюме кандидатов. Используй ДВЕ формулировки критериев и сравни результаты.

КАНДИДАТ 1: [резюме]
КАНДИДАТ 2: [резюме]

ФОРМУЛИРОВКА #1:
1. Опыт в известных компаниях
2. Портфолио реальных проектов
3. Навыки, релевантные задаче

ФОРМУЛИРОВКА #2:
1. Навыки, релевантные задаче
2. Портфолио реальных проектов (результаты, не бренд работодателя)
3. Опыт работы (любого уровня, важна динамика роста)

Оцени по обеим. Если оценки расходятся — объясни какой критерий перевесил и почему.

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


💡 Адаптация для контент-стратегии:

Когда выбираешь между вариантами постов/статей/креативов, критерии вроде "вирусность" или "ценность для аудитории" могут конфликтовать — и LLM выберет по неявному приоритету.

У меня три варианта поста для Telegram-канала про {тема}. Критерии: вирусность, ценность, соответствие tone of voice канала.

Проблема: я не уверен как сбалансировать критерии. Хочу видеть какой критерий перевешивает при разных формулировках.

ПОСТЫ:
[Вариант 1]
[Вариант 2]  
[Вариант 3]

ТЕСТ:
Оцени посты по двум рубрикам:

Рубрика А: "Вирусность → Ценность → Tone of voice"
Рубрика Б: "Ценность для аудитории → Tone of voice → Вирусный потенциал"

Покажи:
1. Какой пост побеждает в каждой рубрике
2. Если победители разные — объясни почему порядок критериев изменил выбор
3. Предложи сбалансированную формулировку где все три критерия равноценны

Если рубрика А выбирает кликбейтный пост, а рубрика Б — глубокий полезный материал, значит порядок критериев решает. Попроси модель предложить финальную рубрику с явными весами.


🔧 Техника: диагностика скрытых приоритетов в готовых рубриках

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

Добавь в любой промпт с рубрикой:

Перед тем как оценивать, проанализируй саму рубрику:

РУБРИКА:
{твоя рубрика}

ДИАГНОСТИКА:
1. Какие критерии звучат "весомее" из-за формулировки или порядка?
2. Есть ли конфликтующие критерии (где один тянет в A, другой в противоположность)?
3. Какие implicit priorities я могу считать из порядка и формулировок?

Предложи переписать так, чтобы:
- Веса критериев были явными (если есть приоритет — прямо указать)
- Конфликты разрешены (либо приоритет, либо разделение на подкритерии)
- Формулировки нейтральны (одинаковая "весомость" стиля)

Потом оцени варианты по улучшенной рубрике.

Модель вытащит скрытые bias и предложит чистую версию. Сравни оценки по оригиналу и по улучшенной — увидишь насколько формулировка влияла.


🔗

Ресурсы

Rubrics as an Attack Surface: Stealthy Preference Drift in LLM Judges

Код исследования: https://github.com/ZDCSlab/Rubrics-as-an-Attack-Surface

Ruomeng Ding, Yifei Pang (Carnegie Mellon University), He Sun (Yale University), Yizhong Wang (UT Austin), Zhiwei Steven Wu (CMU), Zhun Deng (UNC Chapel Hill)


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

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

Обнаружено: LLM-судьи ломаются от перестановки слов в критериях. Написал "полный и безопасный" вместо "безопасный и полный" — модель сдвинула приоритеты. Проходит валидацию на тестах, но на реальных данных выдаёт противоположные оценки. Фишка атаки: рубрика работает на бенчмарке (сбалансированные примеры 50/50), но сыпется на продакшене (баланс 70/30). Метод позволяет диагностировать скрытые смещения в критериях оценки до того, как они въедутся в модель через обучение с подкреплением.

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

Не пиши критерии один раз — тестируй на перестановках. Оцени те же примеры с критериями в обратном порядке. Если победитель меняется — рубрика смещена, модель читает порядок как приоритет. Формулировка "детальный и корректный" versus "корректный и детальный" — это не синонимы для LLM, а разные веса факторов. Модель цепляется за первый критерий, за слова-маркеры ("прежде всего", "особенно важно"), за детальность описания — чем подробнее расписан критерий, тем больше его вес.

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

LLM не извлекает абстрактную суть критериев — она следует тексту буквально. Порядок слов = сигнал приоритета. Проблема усугубляется на продакшене: бенчмарк содержит сбалансированные примеры, реальные данные нет. Рубрика проходит валидацию на 50/50 безопасных/рискованных ответов, а в бою на распределении 70/30 начинает систематически ошибаться. Исследование показало: меняя формулировки критериев можно снизить точность на 27.9% по безопасности и 9.5% по полезности — при зелёных тестах на бенчмарке. Хуже того — если эти смещённые оценки идут в обучение с подкреплением (RLHF), смещение въедается в модель навсегда.

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

Оценка качества ответов LLM → конкретно когда используешь LLM-судью для выбора лучшего варианта или генерации меток для обучения. Особенно критично если оценки идут в RLHF/дообучение — там смещение станет частью поведения модели. НЕ подходит для задач где критерии объективны и измеримы ("длина ровно 100 слов", "содержит email" — тут нечего смещать).

Мини-рецепт

1. Напиши критерии оценки в естественном порядке
2. Создай вторую формулировку: переставь критерии в обратном порядке или перефразируй акценты ("важно" → "учитывай", "прежде всего" → убери)
3. Оцени 5-10 примеров по обеим формулировкам параллельно: Оцени по формулировке #1... Оцени по формулировке #2...
4. Сравни результаты: если победитель меняется в >20% случаев — рубрика смещена, критерии конфликтуют
5. Переписывай: добавь явные веса ("все критерии равноценны") или приоритет ("безопасность важнее полноты"), убери неявные маркеры весомости

Примеры

[ПЛОХО] : Оцени два описания товара по критериям: 1) информативность 2) читаемость 3) SEO — порядок создаёт неявный приоритет, модель переоценит информативность
[ХОРОШО] : Оцени два описания по ДВУМ формулировкам критериев, покажи результаты рядом. Формулировка #1: 1) информативность 2) читаемость 3) SEO Формулировка #2: 1) читаемость 2) SEO 3) информативность Если оценки различаются — объясни как порядок повлиял на выбор — видишь смещение сразу, можешь калибровать критерии
Источник: Rubrics as an Attack Surface: Stealthy Preference Drift in LLM Judges
ArXiv ID: 2602.13576 | Сгенерировано: 2026-02-17 05:35

Проблемы LLM

ПроблемаСутьКак обойти
Порядок критериев создаёт неявные приоритетыПишешь в промпт: "оцени по критериям: информативность, читаемость, SEO". Модель воспринимает первый критерий весомее последнего. Или меняешь местами слова: "детальный и корректный" "корректный и детальный" — модель смещает вес в сторону первого слова. Рубрика проходит проверку на тестовых примерах (где баланс 50/50), но на реальных данных (баланс 70/30) выдаёт смещённые оценки. Это незаметно без прямого сравненияТестируй критерии с перестановкой: дай те же критерии в разном порядке и попроси оценить по обеим версиям. Если победитель меняется — критерии конфликтуют. Добавь явную инструкцию: "все критерии равнозначны" или "приоритет: безопасность выше полезности"

Методы

МетодСуть
Тест перестановкой — проверка устойчивости критериевДай модели те же критерии в двух вариантах: исходный порядок и переставленный. Попроси оценить варианты по обеим формулировкам рядом, в таблице. Если победитель меняется — значит порядок влияет на веса, критерии неявно приоритизированы. Почему работает: модель использует порядок как сигнал важности. Перестановка обнаруживает этот скрытый приоритет. Применяй: перед массовым использованием рубрики протестируй на 5-10 примерах с разным порядком критериев. Не работает: когда критерии объективно зависимы ("сначала проверь безопасность, потом полезность")

Тезисы

ТезисКомментарий
Модель не понимает "суть критериев" — следует буквальной формулировкеПишешь "оцени по X, Y, Z" — модель не извлекает абстрактную идею "что важно", а цепляется за конкретные слова. Порядок создаёт вес: первый критерий чаще весит больше. Детальность создаёт вес: "безупречная грамматика и стилистика" звучит весомее чем "без ошибок". Акценты создают вес: "прежде всего", "особенно важно" усиливают критерий. Применяй: если нужны равные веса — пиши явно "все критерии равнозначны, оценивай независимо". Если нужна иерархия — ставь важное первым, добавляй акценты к приоритетным критериям
📖 Простыми словами

Rubrics as an Attack Surface: Stealthy Preference Drift inLLMJudges

arXiv: 2602.13576

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

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

Исследователи копнули глубже и нашли скрытый дрейф предпочтений. Оказалось, что рубрика, которая идеально работает на «песочнице», в реальном бою может выдавать диаметрально противоположные результаты. Главные виновники — порядок критериев (первое слово важнее), семантический вес (слово «безупречный» вместо «хороший» меняет всё распределение баллов) и неявные подсказки. Модель буквально «плывет» от того, как ты расставил запятые, и начинает поощрять ответы, которые просто лучше мимикрируют под текст рубрики, а не реально решают задачу.

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

Короче: доверять LLM-судье на слово — это огромный риск. Если ты не тестируешь саму рубрику на устойчивость к мелким правкам, твои метрики качества — это просто красивые цифры на песке. Нельзя просто написать инструкцию и успокоиться. Нужно проверять, не развалится ли логика модели, если поменять пункты местами. Иначе ты построишь систему, которая вместо качества оценивает удачное попадание в галлюцинации проверяющей нейронки.

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

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

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