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)
