Длинный контекст
Вопрос
Модели нужно обрабатывать контекст в 128 тысяч токенов. Какие проблемы возникают и как их решают?
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
Квадратичная стоимость attention и память под матрицу внимания
FlashAttention: тайлинг без материализации n×n
KV-кеш растёт линейно: GQA, квантование кеша, PagedAttention
Позиции: RoPE с масштабированием, дообучение на длинных текстах
Альтернативы: скользящее окно, разреженный attention, SSM, RAG вместо длинного контекста
Что могут спросить следом
- Как проверить, что модель реально использует середину длинного контекста?
- Когда RAG лучше длинного контекста?
Разбор
Первая проблема вычислительная: attention квадратичен, а наивная матрица 128k×128k не влезет в память. FlashAttention считает attention блоками в быстрой памяти GPU и не хранит полную матрицу, это даёт линейную память и большой прирост скорости при том же результате. Для обучения на длинных последовательностях добавляют распараллеливание по длине (context parallelism, ring attention). Вторая проблема: KV-кеш на генерации растёт линейно с длиной и батчем и может занимать больше памяти, чем веса; помогают grouped-query attention, квантование кеша, PagedAttention для эффективного выделения памяти. Третья: позиции. Модель, обученная на 4-8 тысячах токенов, плохо обобщает дальше, поэтому RoPE масштабируют (интерполяция позиций, YaRN и подобные) и дообучают на длинных текстах. Альтернативы: скользящее окно и разреженный attention, модели пространства состояний, а часто практичнее RAG: достать нужные фрагменты, а не держать всё в контексте. Качество проверяю тестами вроде поиска иголки в стоге сена и задачами на рассуждение по длинному тексту, потому что модели склонны хуже использовать середину контекста.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.