百万乃至千万 token 上下文
要解决的问题
营销与产品已开始宣传 1M–10M token 窗口(Llama 4、MiniMax-01 等)。研究与工程需区分:理论窗口、有效理解长度、经济可行长度 三层。
三层定义
| 层级 | 含义 | 典型瓶颈 |
|---|
| 理论窗口 | 模型可接受的最大 token 数 | 配置 max_position_embeddings |
| 有效长度 | Needle/任务成功率高的 L | 注意力质量、RoPE |
| 经济长度 | /task可接受的L$ | KV、prefill FLOPs |
技术路径(2025 汇总)
| 路径 | 思路 | 代表 |
|---|
| 稀疏 attention | 每 query 只 attend 子集 | DSA、NSA |
| 线性/核 attention | O(L) 近似 | Lightning、Mamba |
| 层次摘要 | 递归压缩历史 | Agent 记忆、RAPTOR |
| 外部存储 | 窗口内+向量库 | RAG + 长窗 hybrid |
算力粗算(直觉)
设 hidden H,层数 N,全长 prefill attention 仍常近 O(L2)(除非全程稀疏):
- L=1M 时,单次 prefill 在单卡上往往不可行 → 需 分布式 prefill、块稀疏、或检索裁剪。
- 生产更常见:100K 内窗 + 检索 900K。
产品形态
- 全库载入:法律、基因组、日志(贵、慢)。
- 渐进式阅读:先摘要再细读(Agent 循环)。
- 编译式上下文:把 1M 编译为 10K 结构化笔记(待验证通用性)。
与百万 token 相关的开放问题
- 位置编码 在 1M 上是否仍有 相位歧义?
- 训练数据 是否包含足够长依赖,还是仅靠外推?
- 评测:Needle 在 1M 上通过是否对人类 可读性 有意义?
工程建议
- 默认 不要 把用户全文塞入 1M;用 检索+引用。
- 监控 TTFT 与 $/query;设硬上限与滑动窗口。
- 对关键任务做 抽样人工审计,不信单一 Needle 热力图。
局限与注意点
- 千万 token 多为研究叙事;现行 API 计费下极少满载。
- 超长输入 安全:prompt 注入面扩大。
- 个人理解:未来主流是 「有效 200K + 无限外部记忆」 而非真·单窗 10M(待验证)。
检查清单(自学 / 落地)
| 步骤 | 动作 |
|---|
| 1 | 阅读官方 primary source(报告、博客、模型卡) |
| 2 | 固定 prompt 与解码参数,在自有验证集上建基线 |
| 3 | 记录延迟、成本、上下文长度与是否启用思考模式 |
| 4 | 与相邻章节对照,画出与上下游模块的数据流 |
| 5 | 在 paper-reading 或本大纲相关节做深度笔记 |
常见误区
| 误区 | 澄清 |
|---|
| 公开基准 = 产品表现 | 必须用业务端到端任务回归 |
| 长窗口 = 长理解 | 需 Needle + 真实文档任务验证 |
| 单次实验可定论 | 固定随机种子、数据版本与评测脚本 |
延伸练习
相关章节