AI Token 是什么?一篇讲清楚
如果你用过 ChatGPT、Claude、Gemini、DeepSeek,或者接触过 AI API 和 AI 中转站,大概率会看到一个词:Token。
很多人第一次看到它会误解,以为 token 是“字数”、是“字符数”,甚至是某种加密货币。其实在大模型语境里,AI Token 更像是模型读写内容时使用的最小计量单位。你发给 AI 的问题、系统提示词、历史对话、文件内容,以及 AI 生成的回答,都会被拆成 token 来处理。
简单说:AI 不是直接按自然语言里的字、词、句来工作,而是先把文本切成 token,再基于这些 token 做理解、推理和生成。
可以先记住三个点:
- 输入 token:你发给 AI 的内容,包括问题、系统提示词、历史对话、文档片段和代码上下文。
- 输出 token:AI 生成的回答。模型每生成一段文字,背后都是逐个 token 预测出来的。
- 主要影响:token 越多,请求越长,消耗越高,响应也可能更慢。
不同模型使用的分词器不完全一样,所以同一段文字在不同模型里的 token 数可能不同。
Token 不是字数,也不是字符数
人读一句话时,会自然理解成词语、短语和语义。但模型不能直接处理人类语言,它需要先把文本转换成数字。这个转换过程通常会先经过分词器,也就是 tokenizer。
Tokenizer 会把文本切成一小段一小段的 token。一个 token 可能是:
- 一个完整英文单词,比如
hello - 一个英文单词的一部分,比如
un、believ、able - 一个标点符号,比如
.、,、? - 一个空格加词片段,比如
AI - 一个中文字符,也可能是几个中文字符组成的片段
- 一段代码里的符号、缩进、括号或变量名片段
所以 token 不等于字数,也不等于字符数。英文里,一个常见单词可能接近一个 token;复杂单词可能被拆成多个 token。中文里,一个汉字可能是一个 token,也可能和相邻字符组合成 token,具体取决于模型使用的 tokenizer。
举个直观例子:
AI is useful.可能会被拆成AI、is、useful、.这类片段。今天帮我写一段产品介绍可能会被拆成多个中文片段。const price = tokens * rate会包含单词、空格、符号和变量名片段。
这些拆法只是帮助理解的示意,不代表所有模型的精确结果。你真正需要记住的是:token 是模型内部处理文本的单位,不是人类排版里的字数单位。
AI 为什么要用 token?
大模型的核心任务,是根据前面的内容预测下一个 token。它不是一次性“写出整篇回答”,而是一步一步生成:
- 你输入问题。
- 系统把问题、历史消息、工具说明等内容切成 token。
- 模型根据已有 token 预测下一个 token。
- 新 token 加入上下文,模型继续预测下一个 token。
- 重复这个过程,直到回答完成或达到长度限制。
比如你问:
用三句话解释什么是 AI Token。
模型会先处理你的问题,然后逐步生成回答。你看到的是完整句子,但模型背后是在持续预测一个又一个 token。
这也是为什么输出很长时会更慢:因为模型需要生成更多 token。你让 AI 写一段 100 字总结,通常比写一篇 3000 字文章更快、更便宜。
输入 token 和输出 token 有什么区别?
AI 使用里通常会区分两类 token:
- 输入 token:你发给模型的全部内容。
- 输出 token:模型生成出来的回答内容。
输入 token 不只是你最后发的那一句话,还可能包括:
- 系统提示词,比如“你是一个专业翻译”
- 当前用户问题
- 前面的多轮聊天历史
- 粘贴进去的文章、合同、代码或日志
- 工具调用结果
- 应用预置的格式要求和安全规则
输出 token 则是 AI 真正回答给你的内容。
举个例子:你让 AI 总结一篇长文章。你粘贴的原文有 12,000 token,这些是输入 token;AI 生成了 800 token 的摘要,这些是输出 token。一次请求总共处理了 12,800 token,但输入和输出通常会按不同价格计算。
同样是一次提问,真正消耗的 token 可能差很多。关键不在问题看起来长不长,而在你带给模型的上下文有多少。
- 普通聊天:输入少,输出也少。例如问一个概念,输入几十到几百 token,回答几百 token。
- 长文总结:输入很大,输出较小。文章、会议纪要、合同、日志会成为主要输入成本。
- 写作和代码:输入输出都可能很大。需求、上下文、参考材料和最终生成内容都会消耗 token。
Token 会影响上下文窗口
你可能听过“128K 上下文”“1M 上下文”这类说法。这里的 K 通常指 token 数量,不是中文字符数,也不是英文单词数。
上下文窗口可以理解成模型一次请求里最多能看到多少 token。它包括:
- 系统提示词
- 用户输入
- 对话历史
- 检索出来的资料
- 工具返回结果
- 模型准备生成的回答空间
假设一个模型支持 128K token 上下文,这不等于它能稳定读完 128K 个汉字,也不等于你可以无限塞资料。所有内容都会一起占窗口。如果你把一份很长的文档、很多轮聊天历史和很长的输出要求放在一起,就可能超过上下文限制。
超过限制后,常见结果是:
- 请求直接失败。
- 应用自动裁剪较早的聊天记录。
- 系统把长内容压缩成摘要。
- 模型看不到你以为它能看到的某些细节。
所以在做长文档分析、代码库问答、客服知识库、RAG 检索时,token 不是抽象概念,而是直接决定“模型到底看到了多少内容”的限制。
Token 会影响费用
如果你用的是 AI API、中转站额度或按量计费工具,费用通常和 token 数直接相关。很多模型会把输入 token 和输出 token 分开计价,因为生成输出通常比读取输入更贵。
看一个假设例子:
- 某模型输入价格是每 100 万 token 1 美元。
- 输出价格是每 100 万 token 5 美元。
- 你的一次请求用了 8,000 输入 token。
- AI 生成了 1,000 输出 token。
那么成本大概是:
- 输入成本:8,000 / 1,000,000 * 1 = 0.008 美元
- 输出成本:1,000 / 1,000,000 * 5 = 0.005 美元
- 总成本:0.013 美元
这只是为了说明计算方式,不代表某个具体模型的真实价格。实际费用要看模型、服务商、缓存、倍率、套餐和是否经过中转站。
下面是帮助理解的粗略场景,不是精确计数。真实 token 数要用对应模型的 tokenizer 或服务商账单查看。
| 任务 | 主要输入 | 主要输出 | 成本重点 |
|---|---|---|---|
| 问一个概念 | 一句问题和少量历史 | 几段解释 | 输出长度 |
| 总结一篇文章 | 完整原文 | 摘要和要点 | 输入长度 |
| 分析代码问题 | 报错、代码、日志、需求 | 原因和修改建议 | 代码上下文 |
为什么同一句话在不同平台 token 数不同?
因为不同模型可能使用不同 tokenizer。即使同一家公司的不同模型,分词规则也可能变化。
比如同一句中文,在模型 A 里可能被拆成 20 个 token,在模型 B 里可能是 17 个或 25 个。英文、代码、Emoji、特殊符号、JSON、Markdown 表格,也都可能出现差异。
所以估算 token 时要注意三点:
- 精确 token 数要看对应模型的 tokenizer。
- 服务商账单里的消耗才是最终计费依据。
- 不要用“字数”直接等同于 token 数。
日常使用时不必为每个句子手动数 token。你只需要知道:内容越长,历史越多,文件越大,输出越详细,token 消耗就越高。
怎么减少不必要的 token 消耗?
减少 token 不是为了让回答变短,而是为了让模型看到更有效的信息。
几个实用方法:
- 不要反复粘贴同一份材料。
- 长文档先让 AI 提取结构,再分段处理细节。
- 问代码问题时,只给相关文件、报错和调用链,不要整仓库乱贴。
- 多轮对话变长后,让 AI 先总结当前结论,再用总结开启新对话。
- 对批量任务设置清晰输出格式,避免模型生成太多解释。
- 简单分类、改写、提取任务可以用便宜模型。
- 需要严格控制成本时,限制最大输出长度。
比如你要让 AI 改一段产品介绍,不要把整个官网都贴进去。更好的输入是:目标用户、产品卖点、当前文案、希望的语气、输出长度。这样 token 更少,答案反而更稳定。
常见误解
误解一:token 越多,模型越聪明。
不是。更大的上下文窗口只是让模型有机会看到更多内容,不代表它一定会理解得更好。无关内容太多,反而会稀释重点。
误解二:中文一个字就是一个 token。
不一定。中文 token 和字符的关系取决于 tokenizer,不能简单一比一换算。
误解三:会员用户不用管 token。
普通会员产品会把 token 细节隐藏起来,但背后的模型仍然按 token 处理内容。你遇到的长度限制、上传限制、回答截断,本质上仍然和 token 有关。
误解四:token 就是钱。
token 是计量单位,不是价格本身。价格由模型、服务商、输入输出类型、缓存策略和套餐决定。
结论:理解 token,才能理解 AI 的限制和成本
AI Token 是大模型处理文本的基本单位。它不是字数,不是字符数,也不是加密货币。
理解 token 后,很多 AI 使用问题都会变得清楚:
- 为什么长对话会变慢或遗忘早期内容?
- 为什么总结长文档比问一句话贵?
- 为什么 API 会区分输入价格和输出价格?
- 为什么同样一篇文章,不同模型消耗不一样?
- 为什么控制上下文比一味堆材料更重要?
一句话总结:token 决定模型一次能看多少、生成多少,以及大多数按量计费场景下要花多少钱。