跳到主要内容

百万乃至千万 token 上下文

要解决的问题

营销与产品已开始宣传 1M–10M token 窗口(Llama 4、MiniMax-01 等)。研究与工程需区分:理论窗口、有效理解长度、经济可行长度 三层。

三层定义

层级含义典型瓶颈
理论窗口模型可接受的最大 token 数配置 max_position_embeddings
有效长度Needle/任务成功率高的 LL注意力质量、RoPE
经济长度/task可接受的/task 可接受的 L$KV、prefill FLOPs

技术路径(2025 汇总)

路径思路代表
稀疏 attention每 query 只 attend 子集DSA、NSA
线性/核 attentionO(L)O(L) 近似Lightning、Mamba
层次摘要递归压缩历史Agent 记忆、RAPTOR
外部存储窗口内+向量库RAG + 长窗 hybrid

算力粗算(直觉)

设 hidden HH,层数 NN,全长 prefill attention 仍常近 O(L2)O(L^2)(除非全程稀疏):

  • L=1ML=1\text{M} 时,单次 prefill 在单卡上往往不可行 → 需 分布式 prefill、块稀疏、或检索裁剪
  • 生产更常见:100K 内窗 + 检索 900K

产品形态

  1. 全库载入:法律、基因组、日志(贵、慢)。
  2. 渐进式阅读:先摘要再细读(Agent 循环)。
  3. 编译式上下文:把 1M 编译为 10K 结构化笔记(待验证通用性)。

与百万 token 相关的开放问题

  • 位置编码 在 1M 上是否仍有 相位歧义
  • 训练数据 是否包含足够长依赖,还是仅靠外推?
  • 评测:Needle 在 1M 上通过是否对人类 可读性 有意义?

工程建议

  • 默认 不要 把用户全文塞入 1M;用 检索+引用
  • 监控 TTFT$/query;设硬上限与滑动窗口。
  • 对关键任务做 抽样人工审计,不信单一 Needle 热力图。

局限与注意点

  • 千万 token 多为研究叙事;现行 API 计费下极少满载。
  • 超长输入 安全:prompt 注入面扩大。
  • 个人理解:未来主流是 「有效 200K + 无限外部记忆」 而非真·单窗 10M(待验证)。

检查清单(自学 / 落地)

步骤动作
1阅读官方 primary source(报告、博客、模型卡)
2固定 prompt 与解码参数,在自有验证集上建基线
3记录延迟、成本、上下文长度与是否启用思考模式
4与相邻章节对照,画出与上下游模块的数据流
5paper-reading 或本大纲相关节做深度笔记

常见误区

误区澄清
公开基准 = 产品表现必须用业务端到端任务回归
长窗口 = 长理解需 Needle + 真实文档任务验证
单次实验可定论固定随机种子、数据版本与评测脚本

延伸练习

相关章节