Что такое Context Window
Context window в большой языковой модели (LLM) относится к объему текста, который модель может учитывать при генерации ответа, влияя на ее способность понимать и генерировать связный текст.
Context window — это критический параметр в LLM, определяющий объем информации, которую модель может обрабатывать одновременно. Это количество токенов (слов или частей слов), которое модель учитывает при генерации вывода. Больший context window позволяет модели учитывать больше информации, что потенциально приводит к более обоснованным и связным ответам, особенно для задач, требующих долгосрочных зависимостей, таких как суммирование длинных документов или участие в расширенных беседах. Однако больший context window также увеличивает вычислительные затраты и требования к памяти.
Размер context window существенно влияет на производительность модели. Модели с большими context window могут поддерживать контекст в течение более длительных взаимодействий, понимать сложные взаимосвязи внутри текста и генерировать более релевантные и точные выводы. И наоборот, модели с меньшими context window могут испытывать трудности с задачами, требующими понимания информации, представленной ранее во входных данных, что потенциально приводит к менее связным или контекстно неуместным ответам.
graph LR
Center["Что такое Context Window"]:::main
Pre_computer_science["computer-science"]:::pre --> Center
click Pre_computer_science "/terms/computer-science"
Rel_large_language_model["large-language-model"]:::related -.-> Center
click Rel_large_language_model "/terms/large-language-model"
Rel_hallucination_ai["hallucination-ai"]:::related -.-> Center
click Rel_hallucination_ai "/terms/hallucination-ai"
Rel_token["token"]:::related -.-> Center
click Rel_token "/terms/token"
classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
linkStyle default stroke:#4b5563,stroke-width:2px;
🧠 Проверка знаний
🧒 Простыми словами
Это как блокнот у большой языковой модели; она может запомнить только то, что помещается на текущей странице, когда пишет свой ответ.
🤓 Expert Deep Dive
Размер контекстного окна, обычно измеряемый в токенах, является критически важным архитектурным параметром, напрямую влияющим на способность LLM выполнять задачи, требующие учета дальних зависимостей. Трансформерные архитектуры, доминирующие в современных LLM, используют механизмы самовнимания. Вычислительная сложность стандартного самовнимания растет квадратично ($O(N^2)$) с длиной последовательности $N$ (размером контекстного окна), что делает очень большие окна непомерно дорогими с точки зрения памяти и вычислений. Это стимулировало исследования в области эффективных вариантов внимания, таких как разреженное внимание (например, Longformer, BigBird), линейное внимание и генерация с дополненным поиском (RAG). RAG, например, дополняет LLM внешней системой поиска знаний, эффективно расширяя ее доступный "контекст" за пределы фиксированного окна путем динамического извлечения релевантной информации. Архитектурные решения, такие как позиционные кодировки (например, абсолютные, относительные, роторные), также влияют на то, насколько хорошо модель может интерпретировать позиции токенов в окне. Крайние случаи включают катастрофическое забывание при дообучении на новых данных и упомянутую проблему "потери в середине", когда оценки внимания могут ухудшаться для токенов, расположенных далеко от начала или конца запроса.