1. 上下文窗口的本质解析
当我们在使用大语言模型时,经常会遇到"上下文窗口"这个概念。简单来说,它就像是我们与模型对话时的"记忆容量"。但这里的记忆并非传统意义上的存储,而是模型在一次交互中能够处理和参考的文本范围。
1.1 Token与字符的换算关系
大多数现代大模型(如GPT系列)使用子词级别的tokenization方法。一个token通常对应0.75-1个英文单词,或2-4个中文字符。例如:
- 英文:"Hello" → 1 token
- 中文:"你好" → 2-3 tokens
这种差异导致同样长度的中英文文本,token数量可能相差2-3倍。这也是为什么中文环境下更容易快速耗尽上下文窗口。
1.2 窗口边界的实际影响
假设一个模型的上下文窗口是8k tokens:
- 输入提示(prompt)占用了3k tokens
- 模型生成(response)占用了2k tokens
- 那么实际可用的"记忆空间"只剩下3k tokens
这个限制会直接影响:
- 多轮对话的连贯性
- 长文档处理的完整性
- 复杂任务的分解执行能力
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 主流模型的窗口规格对比
2.1 闭源商业模型
| 模型名称 | 上下文窗口(tokens) | 特点 |
|---|---|---|
| GPT-4 Turbo | 128k | 目前商业API中最大的标准窗口 |
| Claude 3 | 200k | 超长文档处理专用 |
| Gemini 1.5 | 1M | 实验性支持超长上下文 |
2.2 开源模型
| 模型名称 | 默认窗口 | 可扩展性 |
|---|---|---|
| LLaMA 2 | 4k |
