你有没有这种经历:跟豆包聊了半天,它突然把你十分钟前说的话忘了?这不是它不用心,是它的"工作台"就那么大。这一课讲清楚三件事:模型眼里的文字单位叫 Token;模型一次能摊开在桌上看的字数上限叫 上下文窗口(Context Window);以及——它超了这个上限会发生什么。
这一课是理解"为什么长文本要花钱、为什么会忘事"的关键,也是下一课"记忆"的铺垫。
先破除一个误会:大模型不是一个字一个字读你的输入的。它眼里根本没有"汉字""英文单词"这种概念。在它处理之前,有一道叫分词器(Tokenizer)的工序,会把你的整段文字切成一个个token(词块),模型才开始工作。
token 是什么?你可以把它想成"半个字到一个常用词之间的小块"。常见的词直接是一个 token,生僻的词会被拆成几段再拼起来。
英文例子:单词 unbelievable 对人来说是一个词,但分词器可能把它切成 un + believ + able 三块。为什么这么切?因为这三块在训练文本里都很常见,拼成各种词时都能复用(unhappy、unclear、believable、readable……)。
中文直觉:中文没有空格,分词器会按字和常见词组切。经验值:中文大约 1 个汉字 ≈ 1~2 个 token(常用字偏 1,生僻字偏 2);英文大约 1 个常用单词 ≈ 1~1.5 个 token。
为什么要知道这个?因为 API 收费、上下文上限,全都是按 token 算的,不是按"字数"算的。你以为发了 1000 字,可能花了 1500 个 token 的钱。
就是模型这一次回答时,最多能同时"看见"多少个 token。它像一张工作台的桌面大小:桌上摆得下的材料,模型才能参考;摆不下的,它真的就看不见了——不是它"忘了",是物理上没放进去。
| 档位 | 大约对应中文 | 能放下什么 | 典型用途 |
|---|---|---|---|
| 4K~8K | 约 3~6 千字 | 几轮对话 + 短提问 | 早期模型、简单聊天 |
| 32K | 约 2~3 万字 | 一篇长文 + 对话 | 读一篇中短篇小说 |
| 128K | 约 8~12 万字 | 一整本书 + 对话历史 | 长文档分析、整本书问答 |
| 200K | 约 15~20 万字 | 几本书 + 大量资料 | Claude 常见档位 |
| 1M+(百万级) | 约 70~100 万字 | 上百份文档同时喂入 | 代码库整体分析、超长资料汇总 |
| 组成 | 占多少 | 说明 |
|---|---|---|
| 系统提示 | 固定小份 | "你是谁、怎么说话",每轮都在 |
| 对话历史 | 越聊越多 | 前面所有问答,每轮都重新塞一遍 |
| RAG 材料 | 按需波动 | 检索回来的文档片段,临时拼进来 |
| 当前问题 | 很小 | 你这一轮真正问的那句 |
| 考法 | 出题形式 | 应对 |
|---|---|---|
| Token 折算 | 问中文 1 字约多少 token | 1~2 个 |
| 窗口构成 | 问哪四类塞进上下文 | 系统提示/历史/RAG/当前问题 |
| 超窗行为 | 问超窗会怎样 | 静默截断早期内容 |
| 窗口 vs 记忆 | 问窗口是不是长期记忆 | 不是,关对话就没 |
真题基础1. 关于 Token,下面哪种说法正确?
真题中档2. 一个 128K token 的上下文窗口,大致能装下多少中文?
真题中档3. 对话太长、超过上下文窗口时,系统通常怎么做?
真题拔高4. 为什么说"上下文窗口 ≠ 模型的长期记忆"?
| 天 | 任务 | 自检 |
|---|---|---|
| 第 1 天 | 读②③,理解 token 和分词器 | 能手算一句话大概多少 token |
| 第 2 天 | 读④窗口档位表,背知识点卡 | 说清 128K 对应多少字 |
| 第 3 天 | 读⑤⑥,做基础 1-6 | 基础全对 |
| 第 4 天 | 做中档 7-11 | 说清超窗三件事 |
| 第 5 天 | 做⑦真题 + 拔高 12-16 | 区分窗口与记忆 |
| 第 6-7 天 | 合上书口述"窗口里装了什么" | 不看资料全说对 |