百万 Token 上下文窗口
机遇与陷阱。
百万 Token 上下文窗口 是 CoddyKit 上的免费 AI Prompt Engineering 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 AI Prompt Engineering 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 AI Prompt Engineering 课程共包含 4 节课。
一百万个令牌能带来什么
百万令牌上下文窗口让您可以直接将整个代码库、文档语料库或数小时的转录文本放入上下文中——无需检索系统。其承诺是一切皆在上下文中:模型直接对原始材料进行推理,而不是对有损摘要进行推理。
- 对整个代码库进行推理和重构。
- 不分块地综合多个文档。
- 能够保留早期细节的长期对话。
但容量并不等于有效利用。
容量与有效上下文
宣传的窗口大小是上限,并不保证各个位置都能被均匀召回。有效上下文——模型能够可靠检索并进行推理的范围——通常更小,而且不同位置的效果并不均匀。
请将窗口视为价值不均匀的预算:靠近边缘的令牌比埋在中间的令牌更容易被召回。
延迟与成本的现实
注意力成本会随上下文长度增长,首个令牌的生成时间也会增长。一个包含一百万个令牌的提示,即使答案很短,也可能意味着数秒的预填充延迟和高昂的单次调用成本。
- 对于超大提示,预填充占据主要延迟。
- 无论输出大小如何,成本都会随输入令牌数增长。
- 塞入不需要的上下文,就是花钱让模型感到困惑。
# Rough mental model: input tokens drive both $ and prefill ms.
# 900k tokens of haystack to answer one question is rarely optimal.干扰与稀释
更多上下文可能会损害准确性。无关材料会稀释注意力,并引入模型可能抓住不放的干扰项。针对具体问题时,一份聚焦于 2 万个令牌的提示通常胜过一份嘈杂的 50 万个令牌的提示。
原则是:纳入有助于完成任务的内容,排除仅仅可能相关的内容。
何时长上下文胜过检索
当任务需要检索会造成割裂的全局性、贯穿各处的推理时,长上下文更有优势,例如“找出整个代码仓库中违反这一不变量的每个位置”“调和全部十份合同之间的矛盾”。分块检索可能会遗漏跨越多个区块的联系。
请使用完整上下文进行综合;在庞大语料库中查找少量精确内容时,则使用检索。
何时检索胜过长上下文
当相关内容所占比例很小且稳定时,检索更有优势。从 50,000 页中获取相关的 5 页,比塞入全部 50,000 页并希望模型找到它们更便宜、更快,而且通常更准确。
- 针对静态语料库的频繁查询 → 建立一次索引,以低成本进行检索。
- 一次性的全局综合 → 使用长上下文。
许多系统会结合两者:先通过检索缩小范围,再用长上下文进行综合。
def route(task):
if task.is_global_synthesis: return 'long_context'
if task.relevant_fraction < 0.05: return 'retrieval'
return 'hybrid'位置是一种资源
由于召回效果会随位置变化,内容放在哪里是一个设计决策。请将任务指令和最关键的材料放在模型召回效果最好的边界处,并避免把必须使用的事实埋在中间深处。
请有意识地管理位置,而不要让它由拼接顺序的偶然性决定。
验证长上下文召回
绝不要假设模型使用了某个埋藏的事实。请对它进行探测。在已知深度插入一个已知的探针事实,然后要求模型找出它;在信任模型用于生产环境之前,请测量不同深度下的召回效果,以刻画您的模型在您的提示形态下的表现。
canary = 'The internal code name is BLUE_HERON.'
# Place at depth d, then ask: 'What is the internal code name?'
# Sweep d across the window to map recall vs position.压缩胜过累积
在长期的智能体会话中,请不要让上下文无限增长。请定期进行压缩:将过时的对话轮次摘要为紧凑的状态对象,并丢弃原始历史记录。这样既能保留有效信号,又能回收预算并减少稀释。
累积是默认做法,也是陷阱;压缩才是应遵循的纪律。
state = summarize(old_turns) # dense facts, decisions, open items
context = [system, state] + recent_turns混合架构
最强的设计会融合多种策略:检索一组聚焦的候选内容,有意识地安排其位置,缓存稳定的前缀,并压缩对话。长上下文只是预算管理工具箱中的一种工具,而不是工程实践的替代品。
- 检索以缩减。
- 调整位置以显露。
- 缓存以降低成本。
- 压缩以维持。
决策启发式规则
在使用完整窗口之前,请先问自己:
- 任务需要全局推理,还是只需精准查找?精准查找 → 检索。
- 相关内容所占比例是否很小且稳定?是 → 检索或缓存。
- 超大提示的预填充延迟和成本是否可以接受?否 → 缩小范围。
- 我是否验证过所依赖深度位置上的召回效果?如果没有,请先进行探测。
容量意味着许可,而不是计划。
快速检查
您必须回答一个狭窄的事实性问题。该问题的答案大约只存在于一个包含4万页的静态档案中的3页里,而您每天要运行此查询数千次。
回顾:百万令牌窗口
巨大的窗口是一种非均匀的预算,并不等于可以免费回忆。有效上下文小于容量,延迟和成本会随输入增加,而无关材料会稀释准确性。请将长上下文用于全局综合,将检索用于查找特定信息,其余情况使用混合方案——将关键内容放在高召回区域,缓存稳定前缀,压缩过长的会话,并始终在相信埋藏的事实之前探测召回能力。
常见问题解答
「百万 Token 上下文窗口」课时是免费的吗?
是的 — 「百万 Token 上下文窗口」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 AI Prompt Engineering 课程的其余内容,请升级到 CoddyKit PRO。 AI Prompt Engineering 课程共包含 4 节课。
「百万 Token 上下文窗口」这节课中我会学到什么?
机遇与陷阱。 你通过在浏览器中直接运行的动手代码来练习 AI Prompt Engineering,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 AI Prompt Engineering 需要有经验吗?
无需任何先前经验。CoddyKit 上的 AI Prompt Engineering 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。
「百万 Token 上下文窗口」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 AI Prompt Engineering 课中编写并运行代码吗?
能。每节 AI Prompt Engineering 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。