07|Token 与上下文窗口:为什么它会忘、为什么会贵
本篇目标:这是卷 1(LLM 核心原理)的第一篇。我们将拆解“Token”这个 AI 计费的最小单位,让你看懂账单,并理解为什么聊久了它就“失忆”。
一、Token 是什么?(不是“字”,是“块”)
很多人以为 AI 是按“字数”或“单词数”收费的,其实不是。它的计量单位叫 Token。
1. 怎么理解 Token?
LLM 不识字,它只认识数字。在它眼里,一段话会被切成一个个小碎块,每个碎块就是一个 Token。
- 英文:大约 1 个 Token ≈ 0.75 个单词(或者说 4 个字符)。
- 例如:
apple是 1 个 Token。 programming可能被切成program+ming(2 个 Token)。
- 例如:
- 中文:大约 1 个 Token ≈ 0.5 ~ 0.8 个汉字(取决于模型)。
- 老模型(如 GPT-3.5):中文切得很碎,一个汉字可能要 2-3 个 Token(很贵)。
- 新模型(如 GPT-4o, DeepSeek-V3):优化了中文词表,一个汉字约等于 0.6 ~ 1 个 Token(便宜多了)。
通俗公式:
- 1000 Tokens ≈ 750 个英文单词
- 1000 Tokens ≈ 500-700 个中文字符
2. 为什么这很重要?
因为 Token 就是 钱 和 算力。
- 你发给 AI 的每一句话(Input),要算钱。
- AI 回复你的每一句话(Output),也要算钱(通常更贵)。
- 字数越多,Token 越多,反应越慢,钱扣得越快。
二、上下文窗口(Context Window):它的“短时记忆”
很多新手会问:“为什么我跟 AI 聊了 20 轮,它就把我第 1 轮说的需求忘了?”
答案是:它的脑容量(Context Window)满了,旧记忆被挤出去了。
1. “滑动窗口”机制
想象你在看书,但你的视野(窗口)只能容纳 1000 个字。当你读到第 1001 个字时,第 1 个字就必须移出你的视野。
AI 的对话也是这样:
- 你以为的对话:它记得我们要做的整个项目。
- 实际的对话:每一次你发新消息,系统都会把 [历史记录 + 新消息] 打包,一起发给 AI。
- 当总长度超过上限:系统会强制切掉最早的对话(Truncation)。
2. 常见的窗口大小
- 4k / 8k (GPT-4 初代):约 3000-6000 汉字。聊一会儿就忘。
- 128k (GPT-4o, DeepSeek-V3):约 10 万汉字。能塞进去一整本《哈利波特》第一部。
- 1M / 2M (Gemini 1.5 Pro):约 100 万汉字。能塞进去几十个代码文件。
注意:窗口越大,推理速度越慢,且越容易“迷糊”(大海捞针效应)。不要无脑塞一堆不相关的东西给它。
三、为什么会“忘”?(遗忘的本质)
LLM 本质上是无状态的。它就像一条鱼,只有 7 秒记忆(比喻)。
- 第 1 轮:你发“A”,它回“B”。
- 第 2 轮:你发“C”。
- 系统实际发给 LLM 的是:“A, B, C”。
- LLM 看着这三个字,预测出“D”。
- 第 100 轮:你发“Z”。
- 系统想发“A…Z”,但发现超过 128k 了。
- 系统被迫扔掉“A, B…”,只发“X, Y, Z”。
- LLM 收到“X, Y, Z”,完全不知道曾经有过“A”。
这就是为什么它会“忘”。不是它脑子不好,是你的“提示词(Prompt)”里已经没有那段历史了。
四、为什么会“贵”?(成本陷阱)
1. 计费陷阱:历史记录也要钱
在网页版(如 ChatGPT Plus)你是包月的,没感觉。
但在 API 模式(或者某些按量计费的工具)下,每一次对话,都要把历史记录重新传一遍,重新算钱!
- 第 1 轮:传 100 Token,付 100 Token 的钱。
- 第 2 轮:传 (100+100) Token,付 200 Token 的钱。
- 第 10 轮:传 1000 Token,付 1000 Token 的钱。
结论:聊得越久,每一句话越贵。 就像滚雪球一样。
对策:如果话题结束了,开启一个新对话(New Chat),既省钱,又清空干扰,让 AI 脑子更清醒。
2. 输入 vs 输出(Input vs Output)
通常,Output(它写的字)比 Input(你给的字)更贵(大约贵 3 倍)。
- Input:只要“读”就行,并行计算快。
- Output:要一个字一个字“写”(预测),计算量大。
省钱技巧:
- 多给 Context(便宜)。
- 让它少废话,直接给代码(贵但值)。
- 不要让它“解释一下”,除非你真不懂。
本篇产出:Token 成本估算表(简化版)
当你准备开发一个 AI 功能时,用这个表算算账。(假设费率:Input $2.5/M, Output $10/M —— 这是 GPT-4o 的大概价格,DeepSeek 会便宜 10 倍以上)。
| 任务类型 | 平均 Input (Tokens) | 平均 Output (Tokens) | 单次成本 (GPT-4o) | 单次成本 (DeepSeek-V3) | 备注 |
|---|---|---|---|---|---|
| 代码补全 | 2,000 (上下文) | 50 (几行代码) | $0.0055 (~0.04元) | < 0.001元 | 补全很便宜,因为输出少 |
| 代码解释 | 3,000 (整个文件) | 500 (详细解释) | $0.0125 (~0.09元) | < 0.002元 | 解释很贵,因为废话多 |
| 生成单元测试 | 3,000 (源文件) | 1,000 (测试代码) | $0.0175 (~0.12元) | < 0.003元 | 性价比最高,省人工时间 |
| 长文档总结 | 50,000 (一本书) | 500 (摘要) | $0.13 (~0.9元) | < 0.02元 | 这种任务尽量用便宜模型 |
注:DeepSeek-V3 API 的价格大约是 GPT-4o 的 1/10 甚至更低,所以对于个人开发者,强烈建议首选 DeepSeek 接口。
练习题:为什么 AI 突然傻了?
场景:你把一个 2 万行的代码文件贴给 AI,问它“第 18000 行那个函数怎么改”。
AI 回答:“对不起,我没看到那个函数。” 或者开始胡编乱造。
原因分析:
- 超长截断:2 万行代码可能超过了它的 Input Token 上限,导致第 18000 行根本没传进去。
- 注意力稀释:就像让你在一本字典里找一个字,内容太多,它“看漏了”。
正确做法:
不要把整个文件扔进去。只复制第 18000 行周围的 500 行代码(及相关定义)发给它。 帮它聚焦,它才能聪明。
下一步:既然知道了 Token 是怎么算的,下一章我们将深入那个神秘的参数——Temperature(温度)。为什么有时候 AI 很有创意,有时候又很死板?怎么调节它?
更多推荐



所有评论(0)