Назад к подготовке

Long context в LLM: проблемы и способы решения

Какие проблемы возникают при использовании длинного контекста в LLM и какими подходами их адресуют?

Ответить самому

Сначала сформулируйте ответ как на собеседовании, затем откройте разбор и оцените себя.

Загрузка

Короткий ответ

Long context увеличивает стоимость attention/KV cache, может ухудшать поиск нужных фактов и выходить за режим, на котором модель обучалась. Помогают RAG, chunking/summarization, sparse/sliding-window attention, positional scaling и optimized kernels вроде FlashAttention.

Полный разбор

Первая проблема вычислительная. Dense self-attention на обучении имеет квадратичную стоимость по длине последовательности, а inference сильно платит за prefill attention и растущий KV cache. Очень длинные prompts увеличивают latency, memory pressure и serving cost.

Вторая проблема - качество. Модель могла обучаться или дообучаться на ограниченном context range; за его пределами positional generalization и attention behavior могут деградировать. Даже внутри заявленного context window модель может пропускать информацию в середине, переиспользовать начало/конец или не выбрать релевантное evidence среди большого числа distractors.

Mitigations работают на нескольких уровнях. На product/system уровне обычно не стоит складывать все в prompt: используют RAG, metadata filters, reranking, chunking, compression и summaries, чтобы в prompt попадало только релевантное evidence. На model level: longer-context training, RoPE/positional scaling variants, sparse attention, sliding-window/block attention, landmark/global tokens и memory-подходы. На systems level: KV-cache management, paged attention и FlashAttention-style kernels.

FlashAttention улучшает IO/memory efficiency exact attention; сам по себе он не заставляет модель семантически понимать произвольно длинный контекст. RAG и summarization уменьшают нужный объем контекста, а sparse/block attention меняет паттерн attention, чтобы длинные последовательности были дешевле.

Теория

Long context - это и systems problem, и relevance problem: более дешевый attention полезен, но модели все равно нужно дать правильное evidence в пригодной форме.

Типичные ошибки

  • Сказать только "use FlashAttention" и проигнорировать retrieval quality.
  • Смешать размер context window с гарантированной способностью использовать все токены.
  • Забыть KV cache memory и prefill latency во время inference.
  • Использовать RAG как buzzword без retrieval, reranking или chunking.

Как отвечать на собеседовании

  • Раздели ответ на compute, memory, quality и mitigation layers.
  • Явно отличи exact-kernel optimizations от подходов, которые уменьшают или перестраивают context.