Token 是模型读写文本的基本单位,上下文窗口是一次生成时可参考 token 的总容量。系统规则、当前问题、历史消息、文档和预留输出都会占用空间;超出后内容可能被截断、压缩或无法处理。
Token 不是字数
分词器可能把一个英文单词切成多个 token,也可能把常见字符组合并。中文、代码、数字和特殊符号的比例各不相同,因此“一个 token 等于几个字”只能做非常粗略的估计。
需要精确预算时应使用对应模型的分词工具;日常使用更实用的信号是:回答开始忽略早期条件、附件处理不完整或输出突然被截断。
上下文里装了什么
- 产品预设的系统规则与工具说明
- 当前问题和此前对话历史
- 上传文档、检索片段或工具返回结果
- 模型已经生成的中间内容
- 为最终答案预留的输出空间
长任务的稳妥拆法
- 01
按语义单元切分
按章节、议题或函数拆,而不是按固定字符从中间切断。
- 02
固定中间格式
每段输出同样的字段,如结论、证据、限制、待确认,便于后续合并。
- 03
压缩但保留索引
将完成的部分压成摘要,同时保留原文编号,以便回查。
- 04
新会话重申规则
切换对话时重新提供目标、约束、术语表和已确认结论,不假设模型记得。
上下文越大,不等于结果自动越好
更大的窗口允许放入更多材料,但无关内容也会竞争注意力。把十份文档全塞进去,不如先筛选与问题相关的章节,再要求逐条引用。
可追溯性比容量更重要:即使材料能装下,也要设计原文编号、证据字段和核验步骤。
你可能还想问
删除旧消息能释放上下文吗?
取决于产品是否真的从后续请求中移除该消息。开始一个新对话通常更明确,但要重新提供必要背景。
为什么文档没超上限也会漏内容?
容量只是能否放入,不代表每处都被同等关注。结构、相关性、问题方式和模型能力都会影响覆盖。
分段会不会失去全文联系?
会有风险,所以每段应使用统一字段,并在合并阶段显式检查跨段冲突、重复和依赖关系。
参考资料
本文为面向普通使用者的解释与操作建议。关键概念参考以下一手资料:
- Vaswani 等《Attention Is All You Need》Transformer 架构的一手论文资料。