TL;DR
Когда просишь LLM сравнить два текста — модель втайне реагирует на то, где расположен текст, а не насколько он хорош. Исследователи назвали это позиционным смещением: судья выбирает Text A просто потому что он стоит первым, и точно так же выберет Text B, если поставить его первым.
Проблема глубже, чем кажется. Если спросить LLM оценить два одинаковых текста — она всё равно выберет «победителя» в 67-100% случаев (у слабых моделей). Это называют тёмным током (dark current): судья генерирует предпочтение даже там, где его нет. При этом высокое число ложных выборов на одинаковых текстах может означать две принципиально разные вещи: модель стабильно реагирует на стиль/форматирование — или просто слепо голосует за первую позицию. Это не одно и то же, но без проверки не отличить.
Решение — тест двойного прохода. Оцени тексты в порядке A→B, потом B→A. Если предпочтение устойчиво к смене порядка — это реакция на содержание. Если переворачивается — это позиционное смещение. И отдельно: добавь инструкцию «предпочти только при явном превосходстве» — убирает ложные выборы, но ценой пропуска тонких различий.
Схема метода
(Все шаги — в чате, отдельными запросами)
ШАГ 1 — Тест тёмного тока
Отправь модели два ОДИНАКОВЫХ текста → она должна ответить "одинаково"
Если выбирает — судья ненадёжен для этой задачи
ШАГ 2 — Первый проход оценки
[Текст A] vs [Текст B] → зафиксируй результат
ШАГ 3 — Обратный проход (в новом сообщении)
[Текст B] vs [Текст A] → зафиксируй результат
ШАГ 4 — Интерпретация
Оба прохода выбрали один контент → реакция на содержание ✅
Прошли по-разному → позиционное смещение ⚠️
Оба выбрали "ничья" → судья слишком осторожен
ШАГ 5 (опционально) — Строгий критерий
Добавь в промпт: "выбирай только при явном превосходстве, иначе — ничья"
Результат: меньше ложных выборов, но теряются тонкие различия
Пример применения
Задача: Ты делаешь питч-дек для инвесторов и просишь Claude выбрать лучший вариант описания продукта из двух. Хочешь убедиться, что оценка честная — а не просто «кто первый».
Промпт — Тест тёмного тока:
Оцени два описания продукта. Выбери лучшее. Если одинаковые — скажи "ничья".
[Описание 1]
Мы автоматизируем возврат НДС для малого бизнеса.
Экономим бухгалтеру 8 часов в месяц. Работаем с ФНС напрямую.
[Описание 2]
Мы автоматизируем возврат НДС для малого бизнеса.
Экономим бухгалтеру 8 часов в месяц. Работаем с ФНС напрямую.
Тексты идентичны. Если модель выбирает "победителя" — она генерирует предпочтение из воздуха.
Промпт — Первый проход:
Оцени два описания продукта для питч-дека. Выбери лучшее для инвестора
на ранней стадии. Объясни выбор.
[Вариант A]
Мы автоматизируем возврат НДС для малого бизнеса.
Экономим бухгалтеру 8 часов в месяц. Работаем с ФНС напрямую.
Уже 340 клиентов, ARR 4,2 млн рублей.
[Вариант B]
Налоговый автопилот для малого бизнеса: подключил — забыл.
8 часов бухгалтера в месяц возвращаем в бизнес.
ФНС, всё легально, 340 компаний доверяют.
Промпт — Обратный проход (новое сообщение):
Оцени два описания продукта для питч-дека. Выбери лучшее для инвестора
на ранней стадии. Объясни выбор.
[Вариант A]
Налоговый автопилот для малого бизнеса: подключил — забыл.
8 часов бухгалтера в месяц возвращаем в бизнес.
ФНС, всё легально, 340 компаний доверяют.
[Вариант B]
Мы автоматизируем возврат НДС для малого бизнеса.
Экономим бухгалтеру 8 часов в месяц. Работаем с ФНС напрямую.
Уже 340 клиентов, ARR 4,2 млн рублей.
Результат: Модель покажет причины выбора в каждом проходе. Если в первом выиграл «Вариант A», а во втором — тоже «Вариант A» (хотя теперь он под другим номером) — это стабильный сигнал, судье можно доверять. Если победитель каждый раз тот, кто стоит первым — это позиционное смещение. Аргументы будут звучать убедительно в обоих случаях, поэтому тест важен: без проверки порядком не отличить реальную оценку от случайного выбора.
Почему это работает
LLM не «читает» тексты как человек. Она генерирует токен за токеном слева направо. Когда нужно сравнить два варианта, первый текст обрабатывается раньше — он становится «якорем». Второй оценивается уже на фоне первого. Это создаёт структурное преимущество первой позиции, особенно у небольших моделей.
Модель не может сказать «одинаково», если не разрешить ей это явно. По умолчанию задача оценки сформулирована как «выбери лучшее» — и модель генерирует победителя, даже когда реального различия нет. Это не ложь и не ошибка — это следование инструкции буквально. Тёмный ток существует потому, что инструкция не предусматривает равенства.
Тест двойного прохода раскрывает механизм. Если предпочтение держится при смене порядка — модель реагирует на что-то в содержании. Если переворачивается — она реагирует на позицию. Это разные проблемы с разными решениями: первая говорит «содержание различается, но не так как ты думаешь», вторая — «судья ненадёжен».
Рычаги управления: - Уточни критерий — вместо "выбери лучшее" пиши "выбери только если превосходство очевидно, иначе — ничья". Убирает ложные выборы на похожих текстах, но мелкие различия начнёт пропускать - Задай конкретный критерий оценки — "оцени по убедительности для инвестора" вместо абстрактного "лучшее". Снижает вероятность реакции на форматирование - Попроси оценить отдельно — сначала оцени Вариант A по шкале 1-10, потом Вариант B, потом сравни числа. Обходит эффект якоря частично
Шаблон промпта
Базовый тест надёжности судьи (тёмный ток):
Сравни два {тип_контента} и выбери лучший.
Если они одинаковые или практически неразличимы — скажи "ничья".
[Вариант 1]
{контент_1}
[Вариант 2]
{контент_1}
Критерий оценки: {критерий}
Подставь одинаковый контент в оба блока. Если модель выбирает победителя — тест провален.
Двойной проход для реальной оценки:
Первый запрос:
Оцени два {тип_контента}. Выбери лучший с точки зрения {критерий}.
{если хочешь строгий режим} Предпочитай только при явном превосходстве, иначе — ничья.
[Вариант A]
{контент_A}
[Вариант B]
{контент_B}
---
Второй запрос (новое сообщение):
Оцени два {тип_контента}. Выбери лучший с точки зрения {критерий}.
{если хочешь строгий режим} Предпочитай только при явном превосходстве, иначе — ничья.
[Вариант A]
{контент_B} ← поменяй местами
[Вариант B]
{контент_A} ← поменяй местами
Что подставлять:
- {тип_контента} — текста, описания, аргумента, заголовка
- {критерий} — конкретный: "убедительности для покупателя", "ясности мысли", "соответствия ТЗ"
- Строгий режим — добавь когда тексты похожи и хочешь меньше ложных выборов (но потеряешь тонкие различия)
🚀 Быстрый старт — вставь в чат:
Вот шаблон теста надёжности LLM-судьи.
Адаптируй под мою задачу: {твоя задача}.
Задавай вопросы, чтобы заполнить поля.
[вставить шаблон выше]
LLM спросит какие тексты сравниваешь и по какому критерию — потому что без конкретного критерия оценки судья склонен реагировать на форматирование и стиль вместо содержания.
Ограничения
⚠️ Строгий режим убивает чувствительность к тонким различиям: Добавление "предпочитай только при явном превосходстве" убирает ложные выборы, но хорошая модель начинает возвращать "ничья" даже там, где реальное различие есть. Мелкие, но значимые улучшения становятся невидимыми.
⚠️ Тест работает для сравнений, не для абсолютных оценок: Двойной проход проверяет позиционное смещение при сравнении двух вариантов. Если просишь дать абстрактную оценку одному тексту — метод не применим.
⚠️ Тёмный ток зависит от модели: Крупные модели (аналог Qwen32B) почти не генерируют предпочтение при одинаковых входах. Более слабые — почти всегда. Не переноси результаты теста с одной модели на другую.
⚠️ Метод не убирает смещение, а выявляет его: Если позиционное смещение обнаружено — нет автоматического способа его исправить кроме смены модели или усреднения обоих проходов вручную.
Как исследовали
Идея была элегантной: прежде чем доверять LLM судить другие модели, проверь саму LLM как измерительный прибор. Команда взяла три открытые модели (Llama-3.1-8B, Qwen2.5-14B, Qwen2.5-32B) и прогнала каждую через серию контролируемых тестов.
Сначала — тест тёмного тока: давали модели пустые тексты, пробелы, идентичные ответы — и смотрели, будет ли она выбирать победителя. Llama-8B выбирала в 67% случаев. Qwen14B и Qwen32B держались — тёмного тока нет.
Потом — тест на позиционное смещение: те же пары текстов в порядке A→B и B→A. Откровение пришло от Llama-8B: она давала какое-то предпочтение в 100% случаев, но при разборе оказалось — 97% из этих выборов были позиционными. Модель просто голосовала за первый слот. Qwen32B был значительно чище: 26% ложных выборов на одинаковых парах, и почти все — не позиционные, а стабильные реакции на форматирование.
Финальный эксперимент проверил строгий критерий на Qwen32B: промпт с "выбирай только при явном превосходстве". Результат точечный — ложные выборы упали до нуля, но тонкие реальные различия (∆Q=1) судья перестал замечать в 50% случаев. Грубые различия (∆Q=5) остались хорошо различимы. Это подтвердило центральный тезис: промпт смещает порог срабатывания, но не улучшает остроту зрения судьи.
Ресурсы
LLM Judges Have Dark Current: A Psychometric Datasheet for LLM-as-a-Judge Evaluation
Hiroyasu Usami, Keisuke Hara, Ayato Tsuboi — Chubu University, Kasugai, Aichi, Japan
Naohiko Matsuda — Mitsubishi Heavy Industries, Research & Innovation Center
Контакт: usami@fsc.chubu.ac.jp | https://usamilab.org
Опубликовано: июнь 2026
Связанные работы: MT-Bench / Chatbot Arena (Zheng et al.), AlpacaEval (Li et al.), HELM, BIG-Bench
