上下文窗口

为什么有些模型能读整本书,有些只能读一页?

上下文 长文本 位置编码
阅读时间约 8 分钟
Chapter 01

什么是上下文窗口?

当你和 AI 对话时,模型并不会记住之前所有的交互。它只能"看到"当前请求中传入的所有内容——这就是上下文窗口(Context Window)。上下文窗口是模型在单次请求中能处理的最大 Token 数量,包括输入和输出。

你可以把它想象成一张书桌:桌子越大,你能同时铺开的资料就越多,翻阅起来就越方便。如果桌子太小,你就只能一次看一页纸,无法交叉参考多份文档。

上下文窗口 = 最大输入 Token 数 + 最大输出 Token 数。例如一个 128K 上下文窗口的模型,可以一次性读入约 10 万字的文本并给出回复。

// 互动演示:上下文窗口大小

拖动滑块,感受不同上下文大小能容纳的信息量:

4K tokens
约等于一篇短文(3,000 字)

上下文窗口就像你的书桌——桌子越大,能同时翻阅的资料越多。

Chapter 02

上下文窗口简史

短短几年间,模型的上下文窗口经历了三个数量级的增长。从 GPT-2 的 1,024 个 Token 到如今百万级的上下文,AI 能"一次看完"的内容呈指数级扩大。

// 互动演示:上下文窗口时间线

2019
GPT-2
1,024 tokens
2020
GPT-3
2,048 → 4,096 tokens
2023
GPT-4
8K / 32K / 128K tokens
2024
Claude 3
200K tokens
2025-2026
Claude Opus 4.6 / GPT-5.4
1M+ tokens

关键洞察:5 年间增长了 1000 倍。从只能处理一段话,到能一次读完数十本书。

从便签纸到整面墙——AI 的"工作台"在指数级扩大。

Chapter 03

为什么不能无限长?

既然更长的上下文如此有用,为什么不把它做到无限大呢?答案是:计算和内存代价

注意力计算是 O(N²)

Transformer 的注意力机制需要让每个 Token 与其他所有 Token 交互。上下文长度翻倍,计算量就变成原来的 4 倍。这就是所谓的二次方复杂度。

KV Cache 线性增长

在推理时,模型会将每一层的 Key 和 Value 向量缓存起来(即 KV Cache)。上下文越长,缓存占用的显存就越多。1M Token 的 KV Cache 可能需要数个 GB 的显存。

首 Token 延迟增加

输入越长,模型在预填充阶段需要处理的 Token 就越多,用户等待第一个输出字符的时间(TTFT)也就越长。

// 互动演示:计算与内存成本

拖动滑块观察上下文长度对计算和内存的影响:

1K上下文长度100K
1x
注意力计算量 O(N²)
1x
KV Cache 内存 O(N)

权衡之道:更长的上下文 = 更强的能力,但也意味着更慢、更贵。这就是为什么模型厂商会提供不同上下文大小的版本。

上下文越长,AI 需要"回忆"的东西越多——就像考试时参考资料越多,翻找答案也越慢。

Chapter 04

位置编码

Transformer 的注意力机制本身是无序的——它把输入看成一个集合,而不是一个序列。这意味着如果不加额外信息,"猫追狗"和"狗追猫"在模型眼里完全一样。

为了让模型理解词的顺序,我们需要位置编码(Positional Encoding)。

绝对位置编码

最初的 Transformer 使用固定的正弦/余弦函数生成位置向量,每个位置都有唯一的编码。简单直观,但难以外推到训练时未见过的长度。

RoPE(旋转位置编码)

Rotary Position Embedding 是当前的主流方案。它将位置信息编码为向量的"旋转角度",天然支持相对位置关系,并且可以通过技术手段(如 YaRN、NTK-aware scaling)外推到更长的上下文。

ALiBi 等方案

ALiBi(Attention with Linear Biases)直接在注意力分数上加一个与距离成正比的偏置,无需额外的位置向量。不同方案各有优劣,但目标一致:让模型知道谁在前、谁在后

// 互动演示:位置编码的作用

切换"有/无位置编码",观察注意力模式的变化:

每个词都有明确的位置标记,模型能区分语序。

位置编码就像书的页码——没有页码,再好的内容也是散页。

Chapter 05

总结

🧠

上下文 = AI 的工作记忆

上下文窗口是模型在一次对话中能"看到"的所有内容,决定了它能处理多少信息。

📈

5 年增长 1000 倍

从 GPT-2 的 1K 到如今的 1M+,上下文窗口的增长速度堪称惊人。

更长 = 更慢更贵

注意力的 O(N²) 复杂度和 KV Cache 的线性增长,让超长上下文的代价不容忽视。

📍

位置编码保证顺序

没有位置编码,Transformer 就无法区分词序,RoPE 是当前最流行的方案。

上下文窗口决定了 AI 一次能"看"多少——从一段话到一整本书,能力的边界在不断扩展。

下一篇:模型蒸馏