Меня зовут Михаил Сальников, я независимый исследователь в области искусственного интеллекта, автор бенчмарка AI Independence Bench и эксперимента с автономным ИИ, известным как Aria. Я почти каждый день читаю статьи в arxiv.org на эту тему и временами натыкаюсь на очень интересные результаты от других исследователей. Решил, что стоит начать делиться с хабровчанами самыми примечательными из них (а если бы я продолжил писать только про свои работы, статьи выходили бы раз в пару месяцев 🙂)
Сегодня хочу рассказать вам о результатах недавнего исследования Context Rot Evaluation (CRE), которое показало, что большие контекстные окна работают не так, как мы думаем. Крупнейшие ИИ-вендоры ведут агрессивную гонку контекстных окон: 128K токенов стали минимально необходимым стандартом, а некоторые модели заявляют и о поддержке миллионов. Многие из нас привыкли верить, что «Effective Context Window» — это монолитное пространство, где модель одинаково хорошо видит каждое слово. Однако свежее исследование доказывает обратное: внутри огромных файлов скрывается «слепая зона». Модели могут блестяще рассуждать о начале или о конце документа, но их логика буквально рассыпается, если суть задачи находится в середине.
И речь идёт не о привычной проблеме поиска фактов (retrieval), которую мы знали по тестам «Иголка в стоге сена» и работе «Lost in the Middle» (Liu et al., 2023), а о фундаментальном коллапсе рассуждений (reasoning). Этот «провал середины» для поиска фактов известен ещё с 2023 года — но на логике его системно показали впервые. Почему ИИ страдает избирательной амнезией и как учёные вывели современные модели на чистую воду? Разберём четыре главных инсайта, которые нам даёт это исследование.
Методология CRE: как учёные обнаружили «контекстную гниль»
Но сначала немного о методике. Авторы исследования разработали бенчмарк Context Rot Evaluation (CRE), который позволяет глубоко проанализировать способности ИИ к логике в больших контекстах. В отличие от старых бенчмарков типа NIAH, которые проверяли лишь способность найти слово «лимон» 🍋 среди текста о котах 🐱, CRE фокусируется на умении решать задачи GSM8K (математика) и ARC-Challenge (научные тесты) внутри «шума».
Всего протестировали 9 моделей в два раунда. Начальный сет — пять моделей: Qwen 2.5-7B-Instruct, MiMo-v2-Flash, GLM-4.7-FlashX, DeepSeek-V3.2 (в reasoning-режиме) и Kimi k2.5. Второй раунд — четыре новейших релиза от тех же вендоров: DeepSeek-V4-Pro, MiMo-V2.5-Pro, Kimi-K2.6 и GLM-5.1. Эксперимент строился на трёх переменных:
-
Позиция задачи: сравнение точности, когда задача стоит в конце (зона комфорта) и ровно в середине.
-
Тип «филлера» (шума): текст вокруг варьировался по степени «перекрытия» с задачей.
-
with_solutions— обучающие примеры с решениями (высокое сходство); -
questions_only_v2— только вопросы без ответов (среднее); -
neutral_text— нейтральный текст из Wikipedia и новостей (низкое).
-
-
Длина контекста: испытания на уровнях 8K, 32K и 64K токенов.
Инсайт №1: коллапс логики в середине контекста
Результаты показали, что «позиционная уязвимость» — это факт, а не случайность. Как только задача перемещается в середину, точность некоторых моделей падает до уровня угадывания. Причём этот коллапс наблюдается не только на длинных контекстах, но даже на коротких.
Ниже — точность (Accuracy) на контексте 64K при заполнении примерами с решениями (with_solutions):
|
Модель |
Конец (End) |
Середина (Mid) |
Падение (Drop) |
|---|---|---|---|
|
Qwen 2.5-7B |
94% |
0% |
−94 pp |
|
MiMo-v2-Flash |
96% |
8% |
−88 pp |
|
GLM-4.7-FlashX |
90% |
56% |
−34 pp |
|
Kimi k2.5 |
98% |
92% |
−6 pp |
|
DeepSeek-V3.2 (reasoning) |
98% |
98% |
0 pp |
Ключевое наблюдение: у уязвимых моделей падение усиливается с ростом контекста. Например, MiMo-v2-Flash теряет всего −12 pp на 8K, −24 pp на 32K — и обрушивается на −88 pp на 64K (точность в середине = всего 8%). При этом «иммунные» модели вроде DeepSeek-V3.2 держат 0 pp на всех уровнях (по крайней мере, на этом типе шума — но об этом ниже).
Особенно иронично, что новейшие модели частично исправили ситуацию для похожего на задачу шума, но всё равно провалились на других типах данных. Например, MiMo-V2.5-Pro сократила падение с −88 до −32 pp относительно предшественницы — это прогресс, но всё ещё критическая уязвимость.
Инсайт №2: «эффект помех» — когда шум становится ответом
Исследование вскрыло основной режим отказа: помеха от ответов (filler-answer interference). Если в филлер вставлены ответы на другие задачи, модель не просто «забывает» условия своей задачи — она галлюцинирует, подставляя вместо решения данные из окружающего её шума.
Статистика поражает: 76% ошибок в середине контекста связаны с тем, что модель выдаёт ответ, относящийся к окружающему «филлеру», а не к самой задаче (против всего 22% ошибок в конце текста). ИИ буквально теряет фокус и переключается на то, что видит рядом. Если поблизости в тексте есть похожий математический пример, нейросеть с высокой вероятностью выдаст ответ от него, даже если логически он не подходит.
Инсайт №3: маркетинговая завеса — о чём молчат вендоры
В ходе аудита официальных отчётов (Model Cards) четырёх ведущих лабораторий (DeepSeek, Xiaomi, Moonshot, Zhipu) выяснилось шокирующее несоответствие.
-
Реальность: из 28 ячеек в главных таблицах результатов вендоров ровно 0 (ноль) содержали данные тестов позиционной устойчивости (NIAH, RULER, LongBench-семейство и т.п.). Ещё в 4 ячейках такие тесты встречаются — но запрятаны в ablation-разделы и проверки на уменьшенной 9B-модели, а не в витрину готового продукта.
-
Маркетинг: в то же время 20 из 28 ячеек гордо демонстрировали успехи в кодинге (SWE-Bench) и агентских задачах.
Разработчики выпячивают общие показатели, но фактически игнорируют «контекстную гниль». Это создаёт ложное чувство безопасности: вы покупаете модель с «отличным кодингом», но она может оказаться бесполезной при анализе сложной логики в середине длинного документа.
Инсайт №4: магия дублирования
Чтобы окончательно подтвердить, что проблема именно в позиции, а не в нехватке знаний, учёные провели тест middle_dup: что будет, если вопрос из середины просто скопировать и вставить ещё раз в самый конец контекста?
-
На коротком контексте (8K) точность мгновенно возвращается к норме — в пределах ±4 pp у всех девяти моделей.
-
На длинном контексте (64K) восстановление лишь частичное (например, Qwen и GLM-4.7-FlashX всё равно показывают результат на 10–12 pp хуже базового).
Это подтверждает ироничный факт: модель «знает», как решить задачу, но «включает» логику только тогда, когда вопрос находится в её зоне комфорта — в финальных строках.
Вся картина одним взглядом: где «отключается» логика
Вместо простыни цифр — одна тепловая карта. По строкам — все 9 моделей (сверху начальный сет, под пунктиром — новые релизы), по столбцам — три типа шума × три длины контекста. Цвет ячейки = падение точности в середине (Drop = точность в середине − точность в конце, в pp): чем краснее, тем сильнее коллапс; зелёный — модель держится. Точные значения подписаны прямо в ячейках, так что ничего не потеряно (GSM8K, N=50, seed=42).
Что моментально считывается с картинки:
-
🟥 Средний блок (
questions_only_v2) красный почти целиком — это и есть главный вывод: «вопросы без ответов» вокруг задачи ломают всех, включая новые релизы и даже невозмутимую DeepSeek-V3.2. -
🟩 Левый блок (
with_solutions) у новых релизов позеленел — апгрейд реально помог: на 64K три из четырёх держатся в пределах ±6 pp, тогда как старый MiMo-v2-Flash проваливается на −88. -
🟩 Правый блок (
neutral_text) почти весь зелёный — нейтральная проза безвредна. Единственное исключение — Qwen, у которого уязвимость растёт даже без «отвлекающих» ответов рядом (−30 на 64K).
💡 Главный, но недооценённый вывод: дело не в самой «середине», а в том, чем именно она окружена. Один и тот же сдвиг позиции безобиден среди нейтрального текста и катастрофичен, когда вокруг — похожие задачи без ответов. Поэтому «новые модели всё починили» — миф: на
questions_only_v2проваливаются все, включая флагманы.
Примечание: для Qwen на нейтральном филлере приведены значения, комбинированные по двум сидам (−29/−30 pp); по одному сиду в приложении — −32 pp. Серые ячейки
n/a— авторы не измеряли нейтральный шум для новых релизов.
А чтобы убедиться, что эффект не привязан к математике, авторы повторили прогон на ARC-Challenge (научные вопросы формата A/B/C/D):
Тренд тот же, хотя статистически значимым (после поправки Бонферрони) оказался лишь провал Qwen. И любопытная деталь: апгрейд лечит не всегда — MiMo-V2.5-Pro на ARC оказалась хуже предшественницы (−22 pp против −6 pp), хотя на GSM8K та же модель прогрессировала. Так что «новее = стабильнее» — упрощение, которое работает не везде.
Как нам жить с «контекстной гнилью»?
Сам термин «Context Rot» (контекстная гниль) пришёл из индустрии — его использовали в Chroma Research для деградации поиска; CRE же впервые переносит его на reasoning-сторону, то есть на логические рассуждения, а не только на поиск данных. Мы стоим перед фактом: огромные контекстные окна — это наполовину маркетинговая фикция, пока архитектуры не станут позиционно-стабильными.
Для разработчиков и пользователей из этого вытекает несколько простых правил:
-
Не верьте агрегированным метрикам. Усреднённый скор в 80% может скрывать 100% на концах и 0% в середине.
-
Тестируйте «слепую зону». При оценке модели всегда проверяйте выполнение задачи, спрятанной в глубине документа.
-
Учитывайте интерференцию. Чем больше контекст похож на саму задачу, тем выше риск того, что модель «сворует» ответ из шума.
-
Дублируйте критичное. Если задача решается по длинному документу, дублируйте ключевой промпт в самом конце (эффект middle_dup).
«Заявленные 128K токенов — это размер багажника, но не гарантия того, что ИИ найдет там нужный инструмент».
После того как мы всё это прочитали, стоит задуматься: готовы ли мы доверить ИИ анализ многостраничного юридического контракта или техзадания на 100 страниц, зная, что его логика может «испариться» ровно на 15-й странице? 🤔
Немного критики от меня
Сразу бросается в глаза, что авторы исследования почему-то не стали проверять самые передовые западные модели, а сконцентрировались на моделях из Китая. Это несколько ограничивает общую картину, поэтому мне захотелось повторить эксперимент с моделями OpenAI, Google, Anthropic и т.п.
Оценочно проверка одной модели обойдётся примерно в 30 млн входных токенов. Это, наверное, многовато для моих бюджетов, но я что-нибудь наверняка придумаю — не факт, что нужно настолько много, чтобы сделать выводы (я люблю ультра-бюджетные эксперименты). Если эта статья заинтересует читателей, это станет дополнительной мотивацией продолжить. 🙂 Пишите в комментариях — буду рад почитать ваши взгляды на эту проблему.
P.S. У меня есть скромный телеграм-канал, куда я чаще пишу свои исследовательские мысли, но я не рвусь его рекламировать. Однако если вам вдруг окажется интересно — его несложно найти.
Автор: Tassdesu


