newsmode
search
Меню
arrow_back Назад

P6: Context Rot – Hamel’s Blog - Hamel Husain

auto_awesomeКраткое саммари

Исследовательница из Chroma Kelly Hong представила концепцию «Context Rot» — деградации производительности LLM по мере увеличения длины входного контекста. В серии экспериментов над 18 современными моделями было показано, что даже при простых задачах точность падает с ростом контекста, особенно при семантическом (а не лексическом) поиске и наличии отвлекающей информации. Популярный бенчмарк Needle in a Haystack оказался нерепрезентативным для реальных сценариев, поскольку опирается на простое лексическое совпадение. Ни одна модель не показала стабильного превосходства во всех тестах: Claude чаще воздерживается от ответа при неуверенности, тогда как GPT чаще галлюцинирует. Исследование подчёркивает, что RAG и продуманная инженерия контекста остаются критически важными, несмотря на рост контекстных окон до миллиона токенов.

As part of our LLM Evals course, I hosted Kelly Hong, a researcher at Chroma, to discuss her research on “Context Rot.” Despite the narrative that RAG is dead because of large context windows (e.g. 1 million tokens), Kelly’s research shows that performance is not uniform. As you add more information, models become increasingly unreliable, even on simple tasks. This phenomenon, which Kelly coined as “Context Rot,” is worth paying attention to if you are building AI applications. Kelly’s talk breaks down the experiments that uncovered this issue and highlights why thoughtful context engineering and retrieval is more important than ever.

В рамках нашего курса по оценке LLM я пригласил Kelly Hong, исследовательницу из Chroma, чтобы обсудить её работу о «деградации контекста» (Context Rot). Несмотря на распространённое мнение, что RAG мёртв благодаря большим контекстным окнам (например, в миллион токенов), исследование Kelly показывает, что производительность моделей неравномерна. По мере добавления информации модели становятся всё менее надёжными даже при выполнении простых задач. Этот феномен, который Kelly назвала «Context Rot», заслуживает внимания каждого, кто создаёт AI-приложения. В своём докладе Kelly разбирает эксперименты, выявившие эту проблему, и объясняет, почему продуманная инженерия контекста и извлечение информации важны как никогда.

Below is an annotated version of her presentation.

Ниже — аннотированная версия её презентации.


👉 These are the kinds of things we cover in our AI Evals course. You can learn more about the course here. 👈

👉 Именно такие темы мы разбираем на нашем курсе AI Evals. Узнать больше о курсе можно здесь. 👈


Annotated Presentation

Аннотированная презентация

Title Slide

This slide introduces the concept of “Context Rot,” a term coined by Chroma to describe how an LLM’s performance becomes increasingly unreliable as the length of its input context grows. The research evaluates 18 state-of-the-art LLMs and finds that, contrary to the assumption of uniform context processing, performance degrades significantly with longer inputs.

Этот слайд представляет концепцию «Context Rot» — термин, введённый Chroma для описания того, как производительность LLM становится всё менее надёжной по мере роста длины входного контекста. Исследование оценивает 18 современных LLM и обнаруживает, что вопреки предположению о равномерной обработке контекста, производительность значительно снижается при увеличении длины входных данных.

The Rise of Long Context Windows

Major LLM providers prominently advertise massive context windows—often 1 million tokens or more—as a key feature of their frontier models like Gemini, Claude, and GPT-4.1. This marketing suggests that models can effectively process and utilize vast amounts of information.

Крупнейшие провайдеры LLM активно рекламируют огромные контекстные окна — часто в миллион токенов и более — как ключевую особенность своих передовых моделей: Gemini, Claude и GPT-4.1. Такой маркетинг создаёт впечатление, что модели способны эффективно обрабатывать и использовать колоссальные объёмы информации.

The Common Assumption: More Context is Better

The availability of large context windows has led to the common assumption that providing more context is always beneficial. This has inspired new use cases, such as large-scale code analysis and extensive document synthesis. Benchmarks like the “needle in a haystack” test, which often show near-perfect retrieval accuracy across the entire context window, appear to reinforce this assumption, creating a potentially misleading picture of model capabilities.

Доступность больших контекстных окон привела к расхожему предположению, что предоставление большего объёма контекста всегда полезно. Это вдохновило новые сценарии использования: масштабный анализ кода и синтез обширных документов. Бенчмарки вроде теста «иголка в стоге сена» (needle in a haystack), часто демонстрирующие почти идеальную точность извлечения по всему контекстному окну, казалось бы, подтверждают это предположение, создавая потенциально обманчивую картину возможностей моделей.

Explaining the “Needle in a Haystack” (NIAH) Benchmark

The Needle in a Haystack (NIAH) test is a simple retrieval task where a specific fact (the “needle”) is placed within a long document (the “haystack”), and the model is asked to retrieve it. Kelly explains that this benchmark primarily assesses direct lexical matching. As seen in the example, the query and the needle share many of the same words (“best writing advice,” “college classmate”). This makes the task relatively easy and not representative of real-world scenarios, which often require more complex semantic understanding where direct word overlap is minimal.

Тест Needle in a Haystack (NIAH) — это простая задача на извлечение информации: конкретный факт («иголка») помещается в длинный документ («стог сена»), и модель должна его найти. Kelly объясняет, что этот бенчмарк по сути проверяет прямое лексическое совпадение. Как видно из примера, запрос и «иголка» содержат множество одинаковых слов («best writing advice», «college classmate»). Это делает задачу относительно простой и нерепрезентативной для реальных сценариев, которые часто требуют более сложного семантического понимания с минимальным пересечением слов.

Experiment 1: Adding Ambiguity (Semantic vs. Lexical Matching)

To test performance on more realistic tasks, Chroma’s first experiment introduced ambiguity. They compared a lexical matching task (similar to the original NIAH) with a semantic matching task, where the answer contained the same core information but was phrased differently, requiring the model to understand meaning beyond direct word overlap. The results show a clear trend: while performance on lexical matching remains relatively high, performance on the more complex semantic matching task degrades significantly as the input context grows longer.

Чтобы проверить производительность на более реалистичных задачах, в первом эксперименте Chroma ввела неоднозначность. Сравнивались задача на лексическое совпадение (аналогичная оригинальному NIAH) и задача на семантическое совпадение, где ответ содержал ту же суть, но был сформулирован иначе, требуя от модели понимания смысла, а не буквального совпадения слов. Результаты показали чёткую тенденцию: если производительность при лексическом совпадении остаётся относительно высокой, то при более сложном семантическом совпадении она значительно снижается по мере увеличения входного контекста.

Implications of Ambiguity in Real-World Applications

This slide illustrates the real-world implications of the previous experiment using a financial report analysis example. A user is unlikely to know the exact phrasing in a document to formulate a perfect lexical query. Instead, they will ask a more ambiguous, semantic question like “How is our overseas expansion going?” This requires the model to connect “overseas expansion” to specific countries and revenue figures. As Experiment 1 showed, this is precisely the kind of task where performance degrades with longer contexts.

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

Experiment 2: Adding Distractors

The second experiment investigates how performance is affected by distractors—pieces of information that are semantically similar to the correct answer but are incorrect. In the example, the correct “needle” is writing advice from a “college classmate.” The distractors include similar advice from a “college professor” or advice about writing essays in different styles. These distractors mimic the kind of noise often found in real-world documents.

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

Visualizing the Distractor Setup

This slide provides a simple visual model of the experiment. The researchers tested the LLM’s performance under three conditions: with no distractors, with one distractor, and with four distractors placed in the context alongside the correct needle.

Этот слайд даёт простую визуальную модель эксперимента. Исследователи тестировали производительность LLM в трёх условиях: без дистракторов, с одним дистрактором и с четырьмя дистракторами, размещёнными в контексте рядом с правильной «иголкой».

Results: Performance Degrades with More Distractors

The results of the distractor experiment show two clear trends. First, across all model groups, performance degrades as the input length increases. Second, performance also degrades as the number of distractors increases. The combination of long context and distracting information proves particularly challenging for LLMs, causing a significant drop in accuracy.

Результаты эксперимента с дистракторами демонстрируют две чёткие тенденции. Во-первых, во всех группах моделей производительность снижается с увеличением длины входных данных. Во-вторых, производительность также падает с ростом числа дистракторов. Сочетание длинного контекста и отвлекающей информации оказывается особенно сложным для LLM, вызывая значительное падение точности.

Implications of Distractors in Domain-Specific Contexts

This experiment is highly relevant to real-world applications, especially in domain-specific contexts like finance or law. Documents in these fields often contain highly similar, templated information where only small details (like a year or a name) differ. These similar pieces of information act as natural distractors, making it difficult for the model to retrieve the correct fact, a problem that is exacerbated by longer contexts.

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

Analyzing Failure Modes: Model Hallucinations vs. Abstention

When the models failed in the 4-distractor condition, the researchers analyzed how they failed. A key finding was that models often hallucinate by confidently providing an answer based on one of the distractors, rather than abstaining (stating “I don’t know”). This tendency varies by model family: Claude models are more likely to abstain when uncertain, whereas GPT models have the highest rate of hallucination, confidently returning an incorrect answer.

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

Experiment 3: Shuffling Haystack Content

This experiment tested whether models process context in a structured, order-sensitive manner. A “needle” (a sentence about writing advice) was placed in a coherent essay. Because the needle disrupts the essay’s logical flow, it stands out. The same needle was also placed in a “haystack” of randomly shuffled, unrelated sentences, where it should logically blend in more. The hypothesis was that the model would find it easier to retrieve the needle from the coherent essay where it was an anomaly.

Этот эксперимент проверял, обрабатывают ли модели контекст структурированно и с учётом порядка. «Иголку» (предложение с советом по писательству) помещали в связное эссе. Поскольку «иголка» нарушает логический поток эссе, она выделяется. Ту же «иголку» помещали и в «стог сена» из случайно перемешанных, не связанных друг с другом предложений, где она логически должна раствориться. Гипотеза состояла в том, что модели будет проще найти «иголку» в связном эссе, где та является аномалией.

Surprising Results: Models Perform Better on Shuffled Context

Counter-intuitively, the results showed that models performed slightly better when the haystack was randomly shuffled. This surprising finding suggests that LLMs do not necessarily process context in the linear, structured way humans do and that a disruption in logical flow can actually make a key piece of information harder, not easier, to find.

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

Experiment 4: Conversational Memory

This experiment tested conversational memory using the LongMemEval benchmark. Models were tested under two conditions: a “focused” condition with only the relevant conversational history (around 100 tokens), and a “full” condition where the context was padded with irrelevant conversations up to 120k tokens. The results clearly show that all Claude models perform significantly better in the focused condition, demonstrating that irrelevant information degrades performance quickly.

В этом эксперименте тестировалась разговорная память с помощью бенчмарка LongMemEval. Модели проверялись в двух условиях: «сфокусированном» — только с релевантной историей разговора (около 100 токенов), и «полном» — где контекст дополнялся нерелевантными диалогами до 120 тысяч токенов. Результаты наглядно показали, что все модели Claude работают значительно лучше в сфокусированном режиме, что подтверждает: нерелевантная информация быстро ухудшает производительность.

Experiment 5: Text Replication Task

This experiment involved a very simple task: replicating a given text of repeated words. Despite the simplicity, all models showed a significant drop in performance as the input length increased. Some models exhibited strange failure modes; for example, at long input lengths, Claude models would refuse to generate the output, citing concerns about copyrighted material, while Gemini models would produce completely random outputs.

Этот эксперимент включал предельно простую задачу: воспроизвести заданный текст из повторяющихся слов. Несмотря на простоту, все модели продемонстрировали значительное снижение производительности с увеличением длины входных данных. Некоторые модели показали странные режимы сбоя: например, при большой длине контекста модели Claude отказывались генерировать вывод, ссылаясь на нарушение авторских прав, а модели Gemini выдавали совершенно случайный текст.

Key Takeaways

The research provides three takeaways:

Исследование предлагает три основных вывода:

  • LLM performance is not uniform across input lengths, even for simple tasks.
  • Simply having the right information in the context is not enough; how that information is presented matters significantly.
  • As a result, thoughtful context engineering is critical for building reliable AI applications.
  • Производительность LLM неравномерна при разной длине входных данных, даже для простых задач. Одного лишь наличия нужной информации в контексте недостаточно — способ её подачи имеет решающее значение. Поэтому продуманная инженерия контекста критически важна для создания надёжных AI-приложений.

    Context Engineering Example: Orchestrator and Subagents

    Kelly provides a practical example of context engineering for a coding agent with a long-running task.

    Kelly приводит практический пример инженерии контекста для кодирующего агента с длительной задачей.

  • Naive Approach: Append the entire conversation history, including every tool call and output, to the context. This causes the context to grow quickly and become bloated with irrelevant information (e.g., the full content of a file read), leading to context rot.
  • Better Approach: Use a main “orchestrator” agent that breaks the task into subtasks and spawns “subagents” for each one. Each subagent operates with its own clean, focused context. It completes its subtask and returns only the most relevant information to the orchestrator, which maintains a concise, filtered history. This prevents context overload and improves reliability.
  • Наивный подход: добавлять всю историю разговора, включая каждый вызов инструмента и его результат, в контекст. Из-за этого контекст быстро разрастается и засоряется нерелевантной информацией (например, полным содержимым прочитанного файла), что приводит к деградации контекста. Улучшенный подход: использовать главного агента-«оркестратора», который разбивает задачу на подзадачи и запускает «субагентов» для каждой из них. Каждый субагент работает со своим чистым, сфокусированным контекстом. Он выполняет подзадачу и возвращает оркестратору только самую релевантную информацию, а тот поддерживает компактную, отфильтрованную историю. Это предотвращает перегрузку контекста и повышает надёжность.

    Further Reading

    The presentation concludes by directing the audience to the full technical report and other related research on Chroma’s website, research.trychroma.com.

    В завершение презентации аудиторию направляют к полному техническому отчёту и другим связанным исследованиям на сайте Chroma — research.trychroma.com.


    Q&A Session

    Сессия вопросов и ответов

  • Is the Needle in a Haystack (NIAH) benchmark pointless? (Timestamp: 06:54) It’s not pointless, but its utility has diminished. It was useful for evaluating older models, which did show performance degradation on the task. However, modern frontier models can now perform very well on this simple, lexically-driven task, which makes the benchmark unrepresentative of real-world use cases that require deeper semantic reasoning.

  • Did the research find that one model consistently resists context rot better than others across all tasks? (Timestamp: 23:57) No, performance was “all over the place” and highly task-dependent. There was no single model that ranked first across all experiments. For example, Claude Sonnet 4 performed best on the repeated words task, while GPT-4.1 was the top performer on the Needle in a Haystack task. Each model has different strengths, and no model currently excels at all long-context tasks.

  • What is your advice for developers trying to find and mitigate context rot in their applications? (Timestamp: 27:32) Start by qualitatively analyzing your system. Run a few examples with both short, focused context and long context bloated with irrelevant information. Compare the outputs: what did the model miss with the long context? What irrelevant information could be removed? There’s no single, generalizable solution, as optimal context engineering is highly application-dependent. A good starting point is to carefully examine the data you’re providing to the model and how you can make it more concise and relevant.

  • Prior research found a U-shaped retrieval curve, where information at the very beginning and very end of the context is recalled best. Does that still hold true? (Timestamp: 29:06) In Chroma’s experiments, they did not observe this U-shaped pattern. They tested placing the “needle” at various positions throughout the context—from the beginning to the middle to the end—and found no consistent performance advantage for any particular position. While putting important information at the start or end is a common piece of advice, this research suggests it may not be a reliable solution for mitigating context rot.

  • Бесполезен ли бенчмарк Needle in a Haystack (NIAH)? (Таймкод: 06:54) Он не бесполезен, но его ценность снизилась. Он был полезен для оценки старых моделей, которые действительно показывали падение производительности на этой задаче. Однако современные передовые модели отлично справляются с этим простым лексическим заданием, что делает бенчмарк нерепрезентативным для реальных сценариев, требующих более глубокого семантического рассуждения. Выявило ли исследование модель, которая стабильно лучше сопротивляется деградации контекста во всех задачах? (Таймкод: 23:57) Нет, результаты оказались «разбросанными» и сильно зависели от задачи. Ни одна модель не заняла первое место во всех экспериментах. Например, Claude Sonnet 4 лучше всех справился с задачей на повторяющиеся слова, тогда как GPT-4.1 лидировал в тесте Needle in a Haystack. У каждой модели свои сильные стороны, и ни одна пока не превосходит остальных во всех задачах на длинный контекст. Какой совет вы дадите разработчикам, пытающимся обнаружить и устранить деградацию контекста в своих приложениях? (Таймкод: 27:32) Начните с качественного анализа вашей системы. Прогоните несколько примеров с коротким, сфокусированным контекстом и с длинным контекстом, раздутым нерелевантной информацией. Сравните результаты: что модель упустила при длинном контексте? Какую нерелевантную информацию можно убрать? Универсального решения не существует, поскольку оптимальная инженерия контекста сильно зависит от приложения. Хорошей отправной точкой будет внимательный анализ данных, которые вы передаёте модели, и поиск способов сделать их более лаконичными и релевантными. Ранние исследования обнаружили U-образную кривую извлечения, при которой информация в самом начале и конце контекста запоминается лучше всего. Это всё ещё актуально? (Таймкод: 29:06) В экспериментах Chroma этот U-образный паттерн не наблюдался. Исследователи размещали «иголку» в разных позициях контекста — в начале, середине и конце — и не обнаружили устойчивого преимущества для какой-либо позиции. Хотя совет размещать важную информацию в начале или конце широко распространён, данное исследование указывает, что это может быть ненадёжным способом борьбы с деградацией контекста.


    👉 These are the kinds of things we cover in our AI Evals course. You can learn more about the course here. 👈

    👉 Именно такие темы мы разбираем на нашем курсе AI Evals. Узнать больше о курсе можно здесь. 👈


    Video

    Видео

    Here is the full video:

    Вот полное видео: