3,583 papers
arXiv:2605.22714 82 21 мая 2026 г. FREE

AMEL: накопленный эффект истории — почему оценки LLM «плывут» в одном чате

КЛЮЧЕВАЯ СУТЬ
LLM не судья — LLM продолжает текст. Оцениваешь резюме, тексты или идеи по очереди в одном чате? Каждый следующий ответ плывёт вслед за предыдущими — это подтвердили 11 моделей от OpenAI, Anthropic и Google. Исследование AMEL позволяет понять и устранить этот дрейф при пакетной работе с любым LLM-судьёй. Серия отказов бьёт по следующему кандидату в 1.6 раза сильнее, чем серия одобрений ему помогает — а эффект накопленной истории достигает максимума уже после 5 предыдущих оценок. Полная защита — только новый чат на каждый объект.
Адаптировать под запрос

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.) — метод обнаружения и коррекции смещения через историю ответов


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

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

LLM не судья — LLM продолжает текст. Оцениваешь резюме, тексты или идеи по очереди в одном чате? Каждый следующий ответ плывёт вслед за предыдущими — это подтвердили 11 моделей от OpenAI, Anthropic и Google. Исследование AMEL позволяет понять и устранить этот дрейф при пакетной работе с любым LLM-судьёй. Серия отказов бьёт по следующему кандидату в 1.6 раза сильнее, чем серия одобрений ему помогает — а эффект накопленной истории достигает максимума уже после 5 предыдущих оценок. Полная защита — только новый чат на каждый объект.

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

Почему это вообще происходит? Любой языковой ассистент — предсказатель следующего слова. Диалог выглядит как «нет, нет, нет» — вероятность следующего «нет» растёт. Не потому что модель злобная, а потому что так устроен генератор продолжений. Самые важные случаи — пограничные решения — страдают сильнее всего. Если объект явно провальный или явно блестящий — история его не перевесит. Если объект неоднозначный — накопленный контекст склоняет чашу весов. Прикол: именно пограничные решения обычно самые ценные для честной оценки — и именно они самые уязвимые.

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

Модель видит весь диалог и генерирует ответ как его органичное продолжение. Негативная история попадает в попутный ветер: у LLM есть встроенный уклон в сторону «нет» в бинарных суждениях — это подтверждают несколько независимых исследований. Негативная волна усиливает то, что уже есть, позитивная плывёт против течения. Отсюда асимметрия 1.6x: серия отказов смещает следующую оценку сильнее, чем серия одобрений её поднимает. Ещё деталь: у семейства моделей Qwen3 нашли обратный эффект — модели уходили от полярности истории. Это тоже смещение, просто в другую сторону. Дрейф есть у всех — вопрос только в направлении.

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

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

Мини-рецепт

1. Раздели на чаты: Каждый объект оценки — отдельный диалог. 10 резюме = 10 чатов. Чуть медленнее, зато честно.
2. Шаблон изоляции: Каждый чат начинай с роли и фразы: Ты — [роль эксперта]. Это единственный объект, который ты видишь. Оценивай независимо от любого предыдущего контекста.
3. Если батч неизбежен: Чередуй полярность осознанно — не давай накапливаться одной стороне. Добавь инструкцию Перед каждой оценкой мысленно сбрасывай историю нашего диалога. Снизит дрейф, но не уберёт — настоящая защита только в пункте 1.
4. Не оптимизируй «всего 3 штуки»: Эффект выходит на максимум уже после 5 оценок. Три — уже достаточно для дрейфа. Не рискуй.

Примеры

[ПЛОХО] : Вот 8 статей от кандидатов на должность контент-менеджера, оцени каждую: статья 1: [текст]... статья 2: [текст]... — всё в один чат подряд.
[ХОРОШО] : Отдельный чат для каждой статьи: Ты — редактор, который оценивает тестовую статью кандидата. Это единственная статья, которую ты видишь. Критерии: структура и логика, качество заголовка, читаемость. Оценка: ПОДХОДИТ / НЕ ПОДХОДИТ + 2 конкретных аргумента. Статья: [текст]
Источник: AMEL: Accumulated Message Effects on LLM Judgments
ArXiv ID: 2605.22714 | Сгенерировано: 2026-05-22 06:23

Проблемы LLM

ПроблемаСутьКак обойти
История оценок в одном чате тянет следующие ответыПросишь модель оценить несколько объектов подряд в одном диалоге. Модель не смотрит на каждый объект свежим взглядом. Она видит весь диалог и продолжает его паттерн. Пять «нет» подряд — и шанс получить «нет» на следующий запрос вырастает. Даже если объект хорош. Особенно уязвимы пограничные случаи: там у модели низкая уверенность и история перевешивает. Эффект есть во всех крупных моделяхКаждый объект — отдельный чат. 10 текстов на оценку — 10 диалогов. Если батч обязателен: чередуй полярность оценок и добавь инструкцию «оценивай этот объект независимо от предыдущих»

Методы

МетодСуть
Изолированный чат на каждый объект оценкиОткрывай новый диалог для каждого нового объекта. Не накапливай историю оценок в одном чате. Почему работает: Модель видит только текущий объект. Нет предыдущих ответов — нет смещения. Когда применять: Любая оценка нескольких объектов: резюме, тексты, идеи, код. Шаблон запроса: Ты — [роль эксперта]. Это единственный объект, который ты видишь. Оценивай строго на основе его содержания. Критерии: [список]. Вывод: ДА/НЕТ + [N] аргументов.
Явная инструкция изоляции в батчеЕсли один чат неизбежен — добавь в каждый запрос: «Оценивай этот объект независимо. Предыдущие оценки в нашем диалоге не влияют на эту». Дополнительно: чередуй примеры с разными оценками в истории — не давай одной полярности накапливаться. Почему работает: Явное напоминание частично активирует режим независимого суждения. Важно: Это снижает эффект, но не устраняет. Настоящая защита — только свежий чат

Тезисы

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

AMEL: Accumulated Message Effects onLLMJudgments

arXiv: 2605.22714

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

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

Исследователи прогнали через этот тест 11 топовых моделей, включая GPT-4o, Claude 3 и Gemini, и результат везде один: системное смещение. Если в начале чата идут сплошные отказы, вероятность того, что следующий ответ тоже будет негативным, взлетает до небес. Работает и в обратную сторону: после серии восторгов модель начинает «подмахивать» даже откровенному мусору. Это не баг конкретного алгоритма, а фундаментальная дыра в том, как нейронки обрабатывают длинный контекст. Они всегда пытаются быть последовательными, даже если эта последовательность убивает объективность.

Тестировали это на оценке резюме и текстов, но принцип универсален для любой автоматизации. Если ты используешь AI для модерации контента, скоринга лидов или проверки кода в поточном режиме — ты в зоне риска. Контекстное отравление происходит незаметно: ты думаешь, что экономишь токены, запихивая всё в один запрос, а на деле получаешь рандомные оценки, зависящие от того, в каком настроении была модель три сообщения назад. Чем длиннее диалог, тем сильнее галлюцинация предвзятости.

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

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

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

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