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.