← День 3 · Agentic Engineering

inference academy · Agentic Engineering · материал урока

Почему ваш ИИ тупеет после 100 000 токенов

Миллионное контекстное окно — это не память на миллион токенов. Это лимит входа — и понимание разницы отделяет тех, кто выпускает продукты с агентами, от тех, кто с ними воюет.

Представьте, что вы сидите на выпускном экзамене, но вместо обычных правил профессор говорит: «Берите всё. Каждый учебник, каждую тетрадь, каждый листок конспектов, которого вы когда-либо касались». Вы вкатываете тележку с кипой выше метра. Кажется, это должно дать огромное преимущество.

Потом начинаются вопросы. В аудитории полумрак. Ни у одной книги нет указателя. Несколько книг противоречат друг другу по ключевым темам. И на каждый вопрос у вас тридцать секунд.

Ваша библиотека в полном порядке. Но способность найти, связать и использовать нужное предложение на нужной странице — за тридцать секунд, под давлением — это совсем другое.

Именно в эту ловушку мы попадаем с контекстными окнами ИИ. Модель, которая принимает миллион токенов, не получает миллион токенов одинаково доступной рабочей памяти. У неё есть очень большая комната, полная книг, но нет библиотекаря.

Главное различие, за которое стоит держаться: контекстное окно — это то, сколько модель примет. Оно ничего не говорит о том, останется ли эта информация одинаково легко находимой, одинаково влиятельной и одинаково доступной для рассуждения. Это три разных вопроса — и ответ на все три: нет.

Обрыв, с которого падают все

Люди, которые весь день работают с ИИ, снова и снова видят один и тот же паттерн. Примерно до 50 000 токенов качество отличное. Где-то между 90 000 и 120 000 всё становится странным: модель пропускает факты, которые ей явно дали, нарушает ограничения, которые раньше признала, и выдаёт ответы так, будто они пришли от меньшей и менее аккуратной модели.

У каждой модели обрыв начинается ровно на 100 000? Нет. Бенчмарки показывают кривые, зависящие от модели: одни спотыкаются на 32 000, другие держатся после 128 000. Универсальна форма: качество проседает по мере роста контекста, и чем сложнее задача, тем быстрее оно проседает.

Поэтому полезный вопрос не в том, где начинается обрыв. Он в том, почему обрыв вообще есть. Причин четыре, и они усиливают друг друга так, как обычно усиливает себя невезение.

Причина 1 — середину книги никто не читает

Прочитайте роман на 500 страниц, вернитесь через неделю и проверьте, что вы на самом деле помните. Почти наверняка — первые главы и финал. Длинная середина расплылась.

Языковые модели ведут себя удивительно похоже, и исследователи дали этому явлению формальное имя: эффект Lost in the Middle. Поместите одно и то же доказательство в начало, середину или конец длинного контекста: модель надёжно использует его по краям — и ненадёжно между ними. Положите критическую улику в середину завала на 128 000 токенов, и модель может просто не найти её, хотя технически обработала каждый токен.

шанс, что факт будет использован где ключевой факт находится в контексте начало середина конец мёртвая зона
U-кривая длинного контекста: один и тот же факт, перемещённый по контексту, надёжно используется по краям и ненадёжно в середине — а мёртвая зона растёт вместе с длиной.

Если самое важное правило вашего проекта лежит на строке 3400 огромного промпта, не удивляйтесь, когда его проигнорируют. Модель не халтурит. У неё те же смещения к началу и к недавнему, что и у человеческого читателя, — только зашитые на уровне архитектуры.

Заметка к лекции Если что-то важно, кладите это ближе к началу или ближе к концу. Для вещей, от которых зависит успех или провал, делайте и то и другое. Никогда не доверяйте середине.

Причина 2 — внимание — это бюджет, а толпа всё растёт

Здесь нужен двухминутный взгляд внутрь машины, и он будет окупаться годами.

Когда модель обрабатывает текст, каждый токен смотрит на каждый другой токен и спрашивает: «насколько ты важен для моего смысла?» Слово bank изучает соседей, чтобы выбрать между берегом реки и финансовым учреждением. Этот механизм — самовнимание — центральный двигатель каждой современной языковой модели.

Ключевая деталь: оценки релевантности проходят через функцию softmax, которая заставляет их в сумме давать ровно 1.0. Внимание — фиксированный бюджет. Его можно перераспределить. Увеличить нельзя.

На 10 000 токенов этот бюджет 1.0 делится между 10 000 кандидатами. На 100 000 токенов — тот же бюджет, толпа в десять раз больше. Представьте скаута талантов на открытом прослушивании с жёстким контрактным лимитом: всего 100 секунд внимания. Десять певцов — по десять секунд каждому. Тысяча певцов — по десятой доле секунды. По-настоящему талантливая певица в 47-м ряду не стала тише. Способность скаута её выделить рухнула.

Точнее: модель не размазывает внимание равномерно — softmax может почти весь бюджет зафиксировать на одном очевидно релевантном токене. Настоящая проблема — различение. В большем контексте больше почти совпадений, почти противоречий и правдоподобных самозванцев. Найти «договор 1987 года был подписан в Кито» тривиально, когда это единственный договор в комнате. Это по-настоящему трудно, когда ещё 800 фрагментов упоминают другие договоры в других столицах.

Почувствуйте сами
Потяните ползунок, чтобы увеличить контекст. Бюджет внимания вместе с ним не растёт.
10 000
токенов в контексте
1 / 10 000
средняя доля фиксированного бюджета
10 ms
время скаута на кандидата (из 100 с)

Причина 3 — обходные пути, спрятанные внутри длинных окон

Третья причина — арифметика, и арифметика здесь суровая. В стандартном самовнимании каждый токен сравнивает себя с каждым другим токеном. Контекст из n токенов означает n × n сравнений — квадратичное масштабирование.

n × n = n²
10 000 токенов → ~100 миллионов сравнений
100 000 токенов → ~10 миллиардов сравнений
увеличьте контекст в 10 раз → работы станет в 100 раз больше

Такой рост превращает «быстро» в «невозможно», поэтому инженеры выпускают обходные пути. Некоторые — честные выигрыши: FlashAttention считает ровно тот же результат с куда меньшим трафиком памяти. Другие расплачиваются зрением. Скользящие окна сравнивают только соседние токены — поэтому модель в самом деле не видит то, что выпало за окно. Сжатие ужимает старый контекст в резюме, а резюме по определению теряют детали. Разреженные схемы намеренно пропускают сравнения.

На миллионе токенов бесплатного обеда нет. Каждый механизм, который делает огромное окно доступным по цене, где-то принимает решение смотреть на меньшее.

Причина 4 — тренировали для спринта, вывели на марафон

Окно, напечатанное в спецификации, — не та дистанция, на которой модель тренировали. Обучающие данные в подавляющем большинстве состоят из коротких документов: статей, веток форумов, файлов кода, логов чатов. Даже в датасете на триллион токенов документы, которые действительно превышают 100 000 токенов, — крошечное меньшинство.

Поэтому цепи для задачи «связать что-то на строке 3 с чем-то на строке 3000» получили намного меньше практики, чем цепи для локального, ближнего рассуждения. Знание есть; дальняя проводка тонкая. Инженеры растягивают окна дальше трюками с позиционным кодированием — масштабированием RoPE, техниками вроде YaRN, — и в основном это не даёт всему сломаться. Это не то же самое, что сделать модель сильной на двухстах страницах.

Дать модели большее контекстное окно без дальнобойного обучения — всё равно что дать спринтеру более длинную дорожку и ждать марафона. Ноги работают. Выносливость никто не тренировал.

Найти факт — не то же самое, что думать с его помощью

Ещё одно различие — как раз то, которое спецификации и демо любят размывать.

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

Настоящая работа выглядит так: «Вот 200 разговоров с клиентами за прошлый год. По каким категориям продуктов жалобы повторяются, становятся ли эти жалобы хуже, и какие обещания наша команда дала, но так и не выполнила?» Это сотни обычных, неподписанных иголок, которые нужно найти, посчитать, сравнить и связать друг с другом. Бенчмарки, проверяющие такую многошаговую работу на длинном контексте — BABILong, NoLiMa, — показывают резкие падения по мере роста числа шагов рассуждения.

Тип задачиЧто должна сделать модельПочему длина мешает
ПоискНайти одно заметное предложениеСмещение по позиции; больше приманок
СинтезСоединить много разбросанных фрагментовДоказательства разбросаны; могут конфликтовать
РассуждениеПронести промежуточные выводы через шагиКаждая пропущенная связь ломает цепочку

«Эффективный контекст» — это не число, спрятанное в спецификации. Это кривая, которая сдвигается в зависимости от задачи, от положения доказательств, от количества шума вокруг них и от числа шагов между вопросом и ответом.

Когда ваш агент забывает инструкции

Люди, которые запускают агентов на длинных рабочих процессах, сталкиваются с конкретным, сводящим с ума симптомом: модель перестаёт следовать инструкциям, которые признала в начале. Правила форматирования испаряются. Ограничения, согласованные в первый час, нарушаются в третий. Персона тихо растворяется. Практики называют это выцветанием промпта.

Механизм — обычное разбавление. Инструкция в нулевой позиции должна конкурировать с десятками тысяч более новых токенов за влияние на следующее слово. Недавнее обычно побеждает. Если свежий разговор намекает на что-то отличное от исходного правила, модель следует намёку — не из непослушания, а из-за арифметики.

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

Вы встретите это уже в первую неделю

Всё описанное выше происходит прямо внутри ваших сессий с Claude Code, Codex или Hermes. Сессия, которая идёт весь день, и есть контекст на 100 000 токенов в дружелюбном интерфейсе чата. Вы узнаете симптомы:

Признаки, что сессия просела
  • Она заново задаёт вопросы, на которые вы ответили час назад, или забывает решение, с которым вы оба согласились.
  • Она заново делает уже завершённую работу — или тихо откатывает её.
  • Она противоречит собственному плану из более ранней части сессии.
  • Её предложения становятся всё более расплывчатыми и шаблонными по мере того, как идёт день.
  • Она всё охотнее заявляет «готово», хотя на деле ещё не готово, и становится неряшливее, чем дольше длится сессия.

Ничто из этого не означает, что инструмент сломан. Это значит, что контекст сессии перерос способность модели им пользоваться. Архитектуру вы не почините. Но с ней вполне можно работать — и привычки простые.

Шесть привычек, которые побеждают спад внимания

Проверьте себя

У вас есть бриф на 40 страниц и одно ограничение, которое нельзя нарушать никогда. Куда его поставить?
Ближе к началу или ближе к концу — никогда в середину. Лучший приём: сформулировать его в начале, а затем повторить прямо перед запросом результата. Середина длинного контекста — мёртвая зона U-кривой.
Сессия с агентом идёт весь день, и он только что противоречит решению, которое вы вместе приняли утром. Что происходит и что делать?
Спад внимания: утреннее решение разбавилось целым днём более новых токенов. Попросите резюме для передачи, сохраните решения в файл памяти проекта, закройте сессию и начните заново из файла. Не спорьте с туманным контекстом; замените его.
Верно или неверно: модель, которая принимает 1 000 000 токенов, может одинаково хорошо использовать весь миллион.
Неверно. Окно — это лимит входа, а не память. Сколько модель действительно может использовать, зависит от того, где лежит информация, сколько шума вокруг неё и сколько шагов рассуждения требует задача, — и это качество деградирует задолго до лимита.

Огромное контекстное окно действительно ценно. Просто это не то же самое, что огромный разум. Честная единица измерения — не принятые токены, а релевантные доказательства, надёжно использованные. Пока эти две величины не совпадут, мудрый инженер относится к длинному контексту как к архиву, а для мышления строит модели маленький, хорошо организованный стол.

Библиотека велика. Библиотекарь всё ещё лучше всего работает с коротким списком чтения.