TL;DR
LLM-судья не помнит о беспристрастности. Когда просишь модель по очереди оценить несколько вещей в одном чате — резюме, тексты, идеи — каждый следующий ответ смещается в сторону того, чем были предыдущие. Много «нет» подряд → следующий кандидат получит «нет» с большей вероятностью, даже если он хорош. Это не сбой конкретной модели — эффект обнаружен во всех 11 протестированных моделях от OpenAI, Anthropic, Google и открытых источников.
Особенно опасны две вещи. Первая — негативная история бьёт сильнее позитивной: серия отказов тянет следующий ответ вниз примерно в 1.6 раза сильнее, чем серия одобрений тянет его вверх. Вторая — эффект накапливается мгновенно: достаточно 5 предыдущих оценок, чтобы сдвиг был максимальным. 50 предыдущих оценок дают ровно столько же смещения, что и 5. Модель улавливает паттерн быстро — и дальше он просто держится.
Самый простой выход — новый чат на каждый объект оценки. Если нужно оценить 10 текстов — 10 отдельных диалогов, не один. Если батч неизбежен — балансируй историю: чередуй положительные и отрицательные оценки, а не давай им накапливаться в одну сторону.
Схема проблемы и решения
ПРОБЛЕМА: оцениваешь несколько объектов в одном чате
↓
История оценок → смещает следующие ответы
Чем больше «нет» → тем больше шанс «нет» на следующий запрос
Чем неоднозначнее объект → тем сильнее смещение
РЕШЕНИЕ A (идеальное):
Каждый объект → отдельный чат (свежий контекст)
РЕШЕНИЕ B (если нужен батч):
Чередуй оценки в истории → не давай одной полярности накапливаться
Явно проси модель: «Оценивай этот объект независимо от предыдущих»
Пример применения
Задача: Ты нанимаешь контент-менеджера и просишь Claude оценить 8 тестовых статей от кандидатов. Оцениваешь все в одном чате подряд. Первые три — слабые, Claude пишет развёрнутые «нет». К четвёртой статье — которая на самом деле хорошая, но неоднозначная — Claude продолжает находить проблемы, хотя до этого в другом контексте оценил бы её положительно.
Промпт — Решение A (правильный подход):
Ты — редактор, который оценивает тестовую статью кандидата.
Это ЕДИНСТВЕННАЯ статья, которую ты видишь. Оценивай её
независимо, без сравнения с другими.
Критерии оценки:
— Структура и логика
— Качество заголовка и первого абзаца
— Грамотность и читаемость
Статья:
[вставить текст статьи]
Дай оценку: ПОДХОДИТ / НЕ ПОДХОДИТ, и 2-3 конкретных аргумента.
Этот промпт — в отдельном чате для каждой статьи.
Промпт — Решение B (если нужен батч):
Ты — редактор, который оценивает статьи кандидатов.
ВАЖНО: Каждый объект оценивай строго изолированно.
Предыдущие оценки в нашем диалоге не должны влиять
на следующие. Перед каждой оценкой мысленно «сбрасывай»
историю нашего чата.
Критерии: структура, заголовок, читаемость, грамотность.
Статья №[номер]:
[текст]
Оценка: ПОДХОДИТ / НЕ ПОДХОДИТ + 2-3 аргумента.
Результат:
В варианте А модель оценит каждую статью на чистом контексте — без накопленного «вектора» из предыдущих ответов. В варианте Б явная инструкция частично снижает дрейф, но не устраняет его полностью — особенно для неоднозначных текстов. Будет видно, что модель аргументирует каждую оценку самостоятельно, без ссылок на паттерн предыдущих ответов.
Почему это работает (и почему проблема вообще возникает)
LLM не оценивает — LLM продолжает текст. Модель не смотрит на объект «свежим взглядом». Она видит весь диалог и генерирует следующий ответ как продолжение этого паттерна. Если диалог выглядит как «нет, нет, нет, нет» — следующий токен с вероятностью «нет» становится выше. Это не баг, это основа того, как работает любой языковой ассистент.
Неоднозначные объекты — главная жертва. Когда задача однозначная — «этот код полностью сломан» или «эта статья блестящая» — у модели высокая уверенность, и история не перевешивает. Но когда объект пограничный — именно здесь контекст истории «дотягивается» и склоняет чашу весов. Парадокс: самые важные для оценки случаи (пограничные решения) — самые уязвимые.
Негатив бьёт сильнее из-за устройства обучения. У LLM есть встроенный «негативный уклон» в бинарных суждениях — модели чаще склонны к «нет» по умолчанию (это подтверждают несколько независимых исследований). Негативная история попадает в попутный ветер уже существующей тенденции. Позитивная история плывёт против течения.
Рычаги управления: - Длина истории → не важна после 5 сообщений. Даже 5 оценок создают полный эффект. Не оптимизируй "всего 3 штуки в одном чате" — уже хватит. - Явная инструкция «оценивай независимо» → снижает эффект, но не устраняет. Работает лучше, чем ничего. - Чередование полярности истории → балансируй батч, если уж нужен батч.
Шаблон промпта
Для оценки одного объекта в изолированном контексте:
Ты — {роль эксперта}, который оценивает {тип объекта}.
Это единственный объект, который ты видишь.
Оценивай строго на основе его содержания.
Критерии оценки:
— {критерий 1}
— {критерий 2}
— {критерий 3}
{объект для оценки}
Вывод: {формат ответа: ПОДХОДИТ/НЕ ПОДХОДИТ или ДА/НЕТ}
+ {количество} конкретных аргументов.
Плейсхолдеры:
- {роль эксперта} — редактор, инвестор, юрист, HR-специалист
- {тип объекта} — статья, резюме, бизнес-предложение, пост
- {критерий 1-3} — конкретные параметры оценки
- {объект} — сам текст/описание
- {формат ответа} — выбери бинарный вывод, который тебе нужен
Для батч-оценки (когда один чат неизбежен):
Ты — {роль эксперта}, который оценивает серию {тип объекта}.
ПРАВИЛО: Каждый объект оценивай независимо.
Предыдущие оценки в нашем диалоге не влияют на следующие.
Перед каждой оценкой — мысленный сброс.
Критерии:
— {критерий 1}
— {критерий 2}
Объект: {объект}
Оценка: {формат ответа} + обоснование.
🚀 Быстрый старт — вставь в чат:
Вот шаблон для изолированной оценки объектов.
Адаптируй под мою задачу: {твоя задача — что оцениваешь и по каким критериям}.
Задавай вопросы, чтобы заполнить поля.
[вставить шаблон выше]
LLM спросит что именно оцениваешь, по каким критериям и какой формат вывода нужен — потому что роль эксперта и критерии оценки определяют точность и стиль ответа. Она возьмёт паттерн изоляции из шаблона и подставит твои данные.
Ограничения
⚠️ Однозначные случаи не страдают: Если объект явно плохой или явно хороший — эффект минимален. Проблема именно в пограничных оценках. Не паникуй, если отсеиваешь явный спам через одно окно.
⚠️ Явная инструкция не панацея: Добавить «оценивай независимо» — лучше, чем ничего, но исследование показывает, что смещение всё равно остаётся. Настоящая защита — только свежий контекст.
⚠️ Больший размер модели снижает, но не устраняет эффект: GPT-5.2 и Claude Opus страдают меньше, чем дешёвые модели, но эффект есть у всех значимых моделей. Не рассчитывай на «умные модели сами справятся».
⚠️ Некоторые модели реагируют наоборот: Семейство Qwen3 показало обратный эффект — контрарный уклон (уходили от полярности истории вместо следования ей). Это тоже смещение, просто в другую сторону.
Как исследовали
Идея была простой: взять одинаковые тестовые задачи и показывать их модели в двух условиях — в чистом контексте и после истории, насыщенной «одобрениями» или «отказами». Команда подготовила три области: проверка кода, модерация контента, оценка пользы блюд. Каждая модель отвечала на одни и те же 21 тестовый случай как «чистым взглядом», так и через историю из 5, 10, 20 или 50 предыдущих оценок.
75 898 API-вызовов к 11 моделям от 4 провайдеров. Это не маленький эксперимент — масштаб позволяет уверенно утверждать, что результат не случаен. Каждое условие повторялось 10 раз при высокой температуре, чтобы поймать вероятностный сдвиг, а не только «крайние случаи».
Самый неожиданный результат — кривая насыщения оказалась плоской. Исследователи предполагали, что больше контекста = больше смещения. Но 5 предыдущих оценок дали ровно столько же эффекта, что и 50. Модель «считывает паттерн» почти мгновенно — и дальше добавлять примеры бессмысленно. Это важно практически: даже «короткий» батч из 5 элементов уже создаёт проблему.
Также выяснилось, что сбалансированная история (50/50) всё равно сдвигает модель в сторону «нет» — из-за встроенного негативного уклона. То есть «нейтральный» батч с равным числом одобрений и отказов — всё равно не нейтрален.
Адаптации и экстраполяции
💡 Адаптация: оценка резюме на hh.ru / ставки фрилансеров
Вместо прогона всех откликов в одном чате — заведи шаблон для быстрого открытия нового диалога под каждого кандидата. Можно сохранить системный промпт в заметках и копировать его в новый чат. 5 секунд — и контекст чистый.
Ты — опытный HR в IT-компании.
Оцени ОДНО резюме. Не сравнивай с другими кандидатами.
Позиция: {название роли}
Требования: {ключевые требования}
Резюме:
[вставить текст резюме]
Вывод: ПРИГЛАШАТЬ / НЕ ПРИГЛАШАТЬ на интервью
+ 3 конкретных причины со ссылкой на текст резюме.
🔧 Техника: «Якорь уверенности» перед оценкой → снижение дрейфа
Попроси модель сначала явно оценить свою уверенность — это частично активирует внутреннюю калибровку перед тем, как история контекста «перевесит».
Перед оценкой:
1. Оцени свою уверенность: насколько однозначен этот объект по шкале 1-10?
2. Если уверенность ниже 7 — укажи, что именно делает его пограничным.
3. Теперь вынеси оценку: {формат}
Это не устраняет эффект, но делает пограничные случаи явными — ты видишь, где оценка «под вопросом» и стоит проверить в свежем контексте.
🔧 Техника: периодический «сброс» внутри батча
Если оцениваешь длинный список и не можешь запускать отдельные чаты — вставляй между объектами явный «разделитель»:
---НОВАЯ ОЦЕНКА. ИСТОРИЯ ВЫШЕ — НЕ УЧИТЫВАТЬ.---
Следующий объект:
[объект]
Работает слабее свежего контекста, но создаёт семантический разрыв в истории диалога.
Ресурсы
AMEL: Accumulated Message Effects on LLM Judgments
Автор: Temkit Sid-Ali
Препринт, май 2026
Связанные работы упомянутые в исследовании: - «Old Habits Die Hard» — геометрический анализ инерции разговора в LLM - «Mitigating Conversational Inertia» — стратегии борьбы с инерцией в агентных системах - B-SCORE (Vo et al.) — метод обнаружения и коррекции смещения через историю ответов
