几年前的大模型,Context Window 还只有 1K、2K Token。
现在 128K 已经很常见,Gemini、DeepSeek、Kimi 等模型更是把 Context 推到了 1M 甚至更长。
但 Context Window 并不是把一个参数从 2048 改成 1000000 就结束了。
最原始的 Full Attention 里,每个 Token 都要和前面的 Token 建立 Attention。Context 越长,计算量会近似按照 N² 增长。
从 1K 到 1M,Context 增长了 1000 倍,潜在的 Attention 关系数量却可以增长到约 100 万倍。
过去几年,大模型一直在解决这件事。
FlashAttention 没有减少 Attention,而是通过分块计算和 Online Softmax,避免巨大的 Attention Matrix 在显存里反复搬运。
Sparse Attention 更进一步:不是所有历史都需要看,有些 Attention 直接不算。
到了 Serving 阶段,新的瓶颈又变成了 KV Cache。
于是有了 MQA / GQA:少存几份 KV。
DeepSeek 的 MLA 又进一步:每个 Token 的 KV 本身也可以压缩。
到了百万 Context,哪怕每个 KV 已经很小,100 万个历史 Entry 依然很贵。
于是 HCA 开始把多个历史 Token 合成更少的 Entry;KDA 更进一步,把历史持续写进一个固定大小的 Memory State。
所以 Context 从 1K 走到 1M,背后其实是一条很清楚的技术演化:
全部算
→ 算得更快
→ 少算
→ 少存 KV
→ 压缩 KV
→ 压短历史
→ 历史变成状态
这篇用几张图,把 Full Attention、FlashAttention、Sparse Attention、GQA、MLA、HCA 和 KDA 一步一步讲清楚。
看完你应该就能理解,大模型的 Context Window 到底是怎么越做越长的。
#AI反常识howto #howto入门codex #榨干软件howto #howto投资 #vibecoding #大模型








