定义
上下文窗口指的是大型语言模型 (LLM) 在单次交互中可以处理或“记住”的最大输入文本(提示)和输出文本(补全)量。这个容量以 token(标记)来衡量,一个 token 大致相当于一个单词或一个子词单元。
为什么它很重要
上下文窗口的大小直接决定了 LLM 可以处理任务的复杂性和范围。更大的窗口允许模型在更长的对话中保持连贯性,分析大量的文档,并在不丢失整体思路的情况下引用复杂输入的前部内容。
工作原理
驱动大多数现代 LLM 的基于 Transformer 的模型,在定义的 token 限制内顺序处理信息。当输入超出上下文窗口时,模型必须截断最旧的信息,这实际上会导致它“忘记”对话或文档的开头部分。
常见用例
- 文档摘要: 一次性分析整个法律简报或研究论文。
- 长篇聊天机器人: 在延长的用户会话中保持对话历史。
- 代码生成: 允许模型参考大型代码库以实现准确的补全。
- 数据分析: 处理提供的作为文本输入的冗长日志或数据集。
主要优势
- 提高连贯性: 使模型能够生成更具上下文相关性和一致性的输出。
- 深度分析: 允许对大型数据集或文档进行整体审查。
- 复杂任务处理: 支持需要引用先前指令或数据的多步骤推理。
挑战
- 成本和延迟: 更大的上下文窗口需要更多的计算资源(VRAM 和处理时间),从而增加了 API 成本和响应延迟。
- 注意力衰减: 即使窗口很大,模型有时也难以对放置在输入最开头或最末尾的信息给予同等权重。
相关概念
- 分词 (Tokenization): 将原始文本分解成模型可理解的离散 token 的过程。
- 注意力机制 (Attention Mechanism): 允许模型在上下文内衡量不同 token 之间重要性差异的核心架构组件。
- 微调 (Fine-Tuning): 在特定数据上调整预训练模型,以在受限的上下文中提高性能。