Деградация контекста — когда больше значит хуже
Деградация контекста
Когда больше контекста делает хуже
Естественный инстинкт при использовании ИИ — дать ему всё. Вставить весь документ. Включить каждое сообщение. Добавить весь контекст, какой найдёшь. Больше информации значит лучшие ответы, верно?
Не всегда. Есть феномен, который интуитивно знает каждый, кто зубрил к экзамену: есть лимит того, сколько можно держать в уме сразу. А вещи в середине исчезают первыми.
Прежде чем говорить о том, как это влияет на ИИ-модели, посмотрим, как это влияет на вас.
Тест памяти
Вам покажут 15 слов, по одному за раз. Каждое появляется примерно на 1,5 секунды. Постарайтесь запомнить как можно больше.
Затем введите слова, которые помните, через запятую или пробел.
Слова, которые вы вспомнили, скорее всего, группируются в начале и конце списка. Середина теряется. Это эффект первичности–недавности — и LLM показывают то же смещение.
Инструкции в начале и конце контекстного окна выполняются. Середина закапывается. Поэтому больше контекста не равно лучшим результатам — и поэтому «Lost in the Middle» (Liu et al., 2023) нашёл падения точности на 30%+, когда ключевые факты попадали в центр длинных контекстов.
U-образная кривая
То, что вы только что испытали, имеет имя: эффект серийной позиции. Психологи изучают его больше века. Элементы в начале списка выигрывают от первичности (их больше репетируют), а элементы в конце — от недавности (они ещё свежи). Середина не получает ни того преимущества.
Захватывающая часть: большие языковые модели демонстрируют тот же паттерн. В 2023 исследователи Стэнфорда проверили, что происходит, когда ключевой факт помещают в разные позиции внутри длинного контекста. Точность была наивысшей, когда факт появлялся в самом начале или самом конце, — и падала больше чем на 30%, когда он был зарыт в середине.
Это не причуда. Это структурно. Паттерны внимания трансформеров естественно придают больший вес краям контекстного окна.
Что это значит для промптинга
Если вы вставляете 20-страничный документ в промпт и спрашиваете о чём-то на странице 11, модель скорее пропустит это, чем что-то на странице 1 или 20. Это имеет реальные последствия для структурирования контекста.
Опасный паттерн: системный промпт, сообщения чата 1, 2, ..., ключевая инструкция зарыта здесь, ..., сообщение чата 18, последнее сообщение пользователя.
Более безопасный паттерн: системный промпт, ключевая инструкция (заранее), сообщения чата 1, 2, ..., сообщение чата 18, последнее сообщение пользователя, ключевая инструкция (повторена).
Практический совет прост: помещайте важнейшие инструкции в начало и конец контекста. Если ограничение обязательно должно выполняться, укажите его заранее в системном промпте и повторите ближе к концу. Не полагайтесь на то, что модель придаст равный вес всему между.
Это отправная точка, а не потолок. По мере роста беглости вы откроете всё более изощрённые способы структурировать контекст так, чтобы модель надёжно понимала, что важно, — используя то, где в окне находится информация, что включать, а что вырезать и как удерживать критические инструкции от сползания в мёртвую зону. Цель всегда та же: сделать очевидным для Claude то, что вам реально нужно.
Общая картина
Деградация контекста — причина, по которой «просто дайте больше контекста» не всегда ответ. Каждый кусок контекста, который вы добавляете, толкает другие куски дальше в середину — мёртвую зону внимания. Это главное противоречие инженерии контекста: не только что включать, но куда это класть и что оставить вне.
Ключевой вывод: больше контекста не равно лучшим результатам. Внимание модели конечно. Курируйте безжалостно, размещайте стратегически и повторяйте важное.
Ваш собственный тест памяти уже сказал вам это. Слова в середине исчезли. То же происходит внутри каждой длинной беседы, каждого вставленного документа, каждого контекстного окна, забитого под завязку. Исправление — не больше, а умнее.