Представьте, что вы сидите на выпускном экзамене, но вместо обычных правил профессор говорит: «Берите всё. Каждый учебник, каждую тетрадь, каждый листок конспектов, которого вы когда-либо касались». Вы вкатываете тележку с кипой выше метра. Кажется, это должно дать огромное преимущество.
Потом начинаются вопросы. В аудитории полумрак. Ни у одной книги нет указателя. Несколько книг противоречат друг другу по ключевым темам. И на каждый вопрос у вас тридцать секунд.
Ваша библиотека в полном порядке. Но способность найти, связать и использовать нужное предложение на нужной странице — за тридцать секунд, под давлением — это совсем другое.
Именно в эту ловушку мы попадаем с контекстными окнами ИИ. Модель, которая принимает миллион токенов, не получает миллион токенов одинаково доступной рабочей памяти. У неё есть очень большая комната, полная книг, но нет библиотекаря.
Обрыв, с которого падают все
Люди, которые весь день работают с ИИ, снова и снова видят один и тот же паттерн. Примерно до 50 000 токенов качество отличное. Где-то между 90 000 и 120 000 всё становится странным: модель пропускает факты, которые ей явно дали, нарушает ограничения, которые раньше признала, и выдаёт ответы так, будто они пришли от меньшей и менее аккуратной модели.
У каждой модели обрыв начинается ровно на 100 000? Нет. Бенчмарки показывают кривые, зависящие от модели: одни спотыкаются на 32 000, другие держатся после 128 000. Универсальна форма: качество проседает по мере роста контекста, и чем сложнее задача, тем быстрее оно проседает.
Поэтому полезный вопрос не в том, где начинается обрыв. Он в том, почему обрыв вообще есть. Причин четыре, и они усиливают друг друга так, как обычно усиливает себя невезение.
Причина 1 — середину книги никто не читает
Прочитайте роман на 500 страниц, вернитесь через неделю и проверьте, что вы на самом деле помните. Почти наверняка — первые главы и финал. Длинная середина расплылась.
Языковые модели ведут себя удивительно похоже, и исследователи дали этому явлению формальное имя: эффект Lost in the Middle. Поместите одно и то же доказательство в начало, середину или конец длинного контекста: модель надёжно использует его по краям — и ненадёжно между ними. Положите критическую улику в середину завала на 128 000 токенов, и модель может просто не найти её, хотя технически обработала каждый токен.
Если самое важное правило вашего проекта лежит на строке 3400 огромного промпта, не удивляйтесь, когда его проигнорируют. Модель не халтурит. У неё те же смещения к началу и к недавнему, что и у человеческого читателя, — только зашитые на уровне архитектуры.
Причина 2 — внимание — это бюджет, а толпа всё растёт
Здесь нужен двухминутный взгляд внутрь машины, и он будет окупаться годами.
Когда модель обрабатывает текст, каждый токен смотрит на каждый другой токен и спрашивает: «насколько ты важен для моего смысла?» Слово bank изучает соседей, чтобы выбрать между берегом реки и финансовым учреждением. Этот механизм — самовнимание — центральный двигатель каждой современной языковой модели.
Ключевая деталь: оценки релевантности проходят через функцию softmax, которая заставляет их в сумме давать ровно 1.0. Внимание — фиксированный бюджет. Его можно перераспределить. Увеличить нельзя.
На 10 000 токенов этот бюджет 1.0 делится между 10 000 кандидатами. На 100 000 токенов — тот же бюджет, толпа в десять раз больше. Представьте скаута талантов на открытом прослушивании с жёстким контрактным лимитом: всего 100 секунд внимания. Десять певцов — по десять секунд каждому. Тысяча певцов — по десятой доле секунды. По-настоящему талантливая певица в 47-м ряду не стала тише. Способность скаута её выделить рухнула.
Точнее: модель не размазывает внимание равномерно — softmax может почти весь бюджет зафиксировать на одном очевидно релевантном токене. Настоящая проблема — различение. В большем контексте больше почти совпадений, почти противоречий и правдоподобных самозванцев. Найти «договор 1987 года был подписан в Кито» тривиально, когда это единственный договор в комнате. Это по-настоящему трудно, когда ещё 800 фрагментов упоминают другие договоры в других столицах.
Причина 3 — обходные пути, спрятанные внутри длинных окон
Третья причина — арифметика, и арифметика здесь суровая. В стандартном самовнимании каждый токен сравнивает себя с каждым другим токеном. Контекст из n токенов означает n × n сравнений — квадратичное масштабирование.
100 000 токенов → ~10 миллиардов сравнений
увеличьте контекст в 10 раз → работы станет в 100 раз больше
Такой рост превращает «быстро» в «невозможно», поэтому инженеры выпускают обходные пути. Некоторые — честные выигрыши: FlashAttention считает ровно тот же результат с куда меньшим трафиком памяти. Другие расплачиваются зрением. Скользящие окна сравнивают только соседние токены — поэтому модель в самом деле не видит то, что выпало за окно. Сжатие ужимает старый контекст в резюме, а резюме по определению теряют детали. Разреженные схемы намеренно пропускают сравнения.
На миллионе токенов бесплатного обеда нет. Каждый механизм, который делает огромное окно доступным по цене, где-то принимает решение смотреть на меньшее.
Причина 4 — тренировали для спринта, вывели на марафон
Окно, напечатанное в спецификации, — не та дистанция, на которой модель тренировали. Обучающие данные в подавляющем большинстве состоят из коротких документов: статей, веток форумов, файлов кода, логов чатов. Даже в датасете на триллион токенов документы, которые действительно превышают 100 000 токенов, — крошечное меньшинство.
Поэтому цепи для задачи «связать что-то на строке 3 с чем-то на строке 3000» получили намного меньше практики, чем цепи для локального, ближнего рассуждения. Знание есть; дальняя проводка тонкая. Инженеры растягивают окна дальше трюками с позиционным кодированием — масштабированием RoPE, техниками вроде YaRN, — и в основном это не даёт всему сломаться. Это не то же самое, что сделать модель сильной на двухстах страницах.
Дать модели большее контекстное окно без дальнобойного обучения — всё равно что дать спринтеру более длинную дорожку и ждать марафона. Ноги работают. Выносливость никто не тренировал.
Найти факт — не то же самое, что думать с его помощью
Ещё одно различие — как раз то, которое спецификации и демо любят размывать.
Есть класс тестов под названием иголка в стоге сена: спрятать одно необычное предложение — «секретное слово — хурма» — внутри очень длинного документа, а потом попросить модель его вспомнить. Модели проходят это на впечатляющих длинах, и маркетингу это нравится. Но это ещё и самая лёгкая возможная задача: одна заметная иголка, нулевая конкуренция.
Настоящая работа выглядит так: «Вот 200 разговоров с клиентами за прошлый год. По каким категориям продуктов жалобы повторяются, становятся ли эти жалобы хуже, и какие обещания наша команда дала, но так и не выполнила?» Это сотни обычных, неподписанных иголок, которые нужно найти, посчитать, сравнить и связать друг с другом. Бенчмарки, проверяющие такую многошаговую работу на длинном контексте — BABILong, NoLiMa, — показывают резкие падения по мере роста числа шагов рассуждения.
| Тип задачи | Что должна сделать модель | Почему длина мешает |
|---|---|---|
| Поиск | Найти одно заметное предложение | Смещение по позиции; больше приманок |
| Синтез | Соединить много разбросанных фрагментов | Доказательства разбросаны; могут конфликтовать |
| Рассуждение | Пронести промежуточные выводы через шаги | Каждая пропущенная связь ломает цепочку |
«Эффективный контекст» — это не число, спрятанное в спецификации. Это кривая, которая сдвигается в зависимости от задачи, от положения доказательств, от количества шума вокруг них и от числа шагов между вопросом и ответом.
Когда ваш агент забывает инструкции
Люди, которые запускают агентов на длинных рабочих процессах, сталкиваются с конкретным, сводящим с ума симптомом: модель перестаёт следовать инструкциям, которые признала в начале. Правила форматирования испаряются. Ограничения, согласованные в первый час, нарушаются в третий. Персона тихо растворяется. Практики называют это выцветанием промпта.
Механизм — обычное разбавление. Инструкция в нулевой позиции должна конкурировать с десятками тысяч более новых токенов за влияние на следующее слово. Недавнее обычно побеждает. Если свежий разговор намекает на что-то отличное от исходного правила, модель следует намёку — не из непослушания, а из-за арифметики.
Исправление некрасивое, но рабочее: повторяйте вводные модели прямо перед действием. Ещё раз сформулируйте цель, жёсткие ограничения и формат вывода непосредственно перед тем, как просить результат, — как хороший режиссёр даёт заметки перед каждым дублем. Не потому, что актёры забыли пьесу, а потому что объём промежуточных репетиций действительно велик.
Вы встретите это уже в первую неделю
Всё описанное выше происходит прямо внутри ваших сессий с Claude Code, Codex или Hermes. Сессия, которая идёт весь день, и есть контекст на 100 000 токенов в дружелюбном интерфейсе чата. Вы узнаете симптомы:
- Она заново задаёт вопросы, на которые вы ответили час назад, или забывает решение, с которым вы оба согласились.
- Она заново делает уже завершённую работу — или тихо откатывает её.
- Она противоречит собственному плану из более ранней части сессии.
- Её предложения становятся всё более расплывчатыми и шаблонными по мере того, как идёт день.
- Она всё охотнее заявляет «готово», хотя на деле ещё не готово, и становится неряшливее, чем дольше длится сессия.
Ничто из этого не означает, что инструмент сломан. Это значит, что контекст сессии перерос способность модели им пользоваться. Архитектуру вы не почините. Но с ней вполне можно работать — и привычки простые.
Шесть привычек, которые побеждают спад внимания
-
1Одна задача — одна сессия. Свежая сессия ничего не стоит; просевшая стоит целого дня. Когда задача закончена — или сессия начинает казаться туманной — закрывайте её и начинайте с чистого листа.
-
2Записывайте решения в файлы, а не в чат. Файлы памяти проекта (
CLAUDE.md,AGENTS.md,notes.md) заново читаются в начале каждой сессии. История чата только деградирует. Если решение будет важно завтра, сегодня ему место в файле. -
3Передавайте дела между сессиями. Завершайте длинные сессии просьбой: «Напиши резюме для передачи: что сделано, что мы решили, что дальше, чего избегать». Следующую сессию начинайте с того, что агент его читает. Десять строк резюме лучше ста тысяч токенов истории.
-
4Повторяйте вводные перед большим запросом. Прямо перед важной просьбой заново сформулируйте цель, ограничения и нужный формат — даже если уже говорили это утром. Режиссёрские заметки перед каждым дублем.
-
5Отбирайте, а не сваливайте. Дайте агенту три релевантных файла, а не всю папку; сообщение об ошибке, которое ломает запуск, а не весь лог. Сфокусированный контекст на 8 000 токенов почти всегда побеждает раздутый контекст на 100 000.
-
6Делите большие задачи на этапы. Спецификация → сборка → проверка, каждая в своей сессии с маленьким чистым контекстом. Цепочку с контрольными точками легко отлаживать; один героический забег на 150 000 токенов — нет. (Если вы когда-нибудь будете строить ИИ-продукты, эти же привычки превратятся в поиск, сжатие и пайплайны — та же физика, слова крупнее.)
Проверьте себя
У вас есть бриф на 40 страниц и одно ограничение, которое нельзя нарушать никогда. Куда его поставить?
Сессия с агентом идёт весь день, и он только что противоречит решению, которое вы вместе приняли утром. Что происходит и что делать?
Верно или неверно: модель, которая принимает 1 000 000 токенов, может одинаково хорошо использовать весь миллион.
Огромное контекстное окно действительно ценно. Просто это не то же самое, что огромный разум. Честная единица измерения — не принятые токены, а релевантные доказательства, надёжно использованные. Пока эти две величины не совпадут, мудрый инженер относится к длинному контексту как к архиву, а для мышления строит модели маленький, хорошо организованный стол.
Библиотека велика. Библиотекарь всё ещё лучше всего работает с коротким списком чтения.
Источники
- Liu et al., Lost in the Middle: How Language Models Use Long Contexts (2023).
- Hsieh et al., RULER: What's the Real Context Size of Your Long-Context Language Models? (2024).
- Modarressi et al., NoLiMa: Long-Context Evaluation Beyond Literal Matching (2025).
- Kuratov et al., BABILong: Testing the Limits of LLMs with Long Context Reasoning-in-a-Haystack (2024).
- Hong et al., Context Rot: How Increasing Input Tokens Impacts LLM Performance (2025).
- Dao et al., FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness (2022).
- Chen et al., Extending Context Window of Large Language Models via Positional Interpolation (2023).