Context Window(上下文窗口)
模型单次推理能"看到"的最大 token 数量,包括输入(prompt + 历史对话)和输出的总和。GPT-4 Turbo 为 128K tokens,Claude 3 为 200K tokens。窗口越大能处理的上下文越长,但注意力会随 token 增多而稀释。
直觉
把 Context Window 想象成模型的"工作台"——它一次只能摊开这么大的桌面。你放上去的所有东西(system prompt、对话历史、检索到的文档、用户最新的问题)加起来不能超过桌面大小。超了就得丢掉一些——通常是最早的对话轮次。
大小怎么算
Context Window 以 token 为单位(不是字符)。一个中文字通常是 1-2 个 token,一个英文单词通常是 1-3 个 token。
| 模型 | Context Window |
|---|---|
| GPT-3.5 | 4K / 16K tokens |
| GPT-4 Turbo | 128K tokens |
| Claude 3.5 | 200K tokens |
| Gemini 1.5 Pro | 1M tokens |
注意:Context Window = 输入 + 输出的总和。128K 的窗口如果输入用了 120K,输出最多只剩 8K。
窗口大 ≠ 用得好
一个常见误解:"128K 够用了,把所有文档塞进去就行。"
研究表明("Lost in the Middle"论文),模型对 context 中间位置的信息利用率显著下降——开头和结尾的内容被记住,中间的被"遗忘"。而且从 Attention 机制看,token 越多每个 token 分到的注意力权重越稀薄(softmax 归一化的结果)。
这就是为什么 RAG 只取 Top-K 相关片段而非把整个知识库塞进去——少而精比多而杂更有效。同样,这也是 Multi-Agent 分工的工程动因之一:与其让一个 Agent 在 128K 窗口里塞 20 个工具描述,不如拆成多个专精 Agent,每个只看自己那几个工具。
与对话轮次的关系
多轮对话中,每一轮的历史消息都占用 Context Window。对话越长,留给当前问题和输出的空间越小。这就是为什么长对话后模型开始"忘记"早期内容——不是真的忘了,是早期的消息被截断了。
引用本术语的文章