揭秘大模型背后的秘密:Token计算方法完全解析,让你更懂AI的运作方式!
Token是大语言模型处理文本的最小单元,介于字和词之间的"子词"或"字节序列"。不同模型采用不同分词算法(如BPE、WordPiece等),导致同一文本在不同模型中Token数量不同。Token计算涉及文本预处理、分词、统计和添加特殊标记等步骤,影响计费、上下文长度和推理速度。开发者可通过官方库或tokenizer.json文件精确计算Token用量,在RAG系统中还用于文本分块和向量化存储。理
当我们与 ChatGPT 或其他大型语言模型(LLM)对话时,系统往往会告诉我们一个词:Token(标记)。
无论是计费、上下文长度,还是推理速度,几乎所有关键指标都和它有关。
但问题是:
“Token 到底是什么?一个字、一个词,还是别的什么?”
其实,Token 是语言模型在理解和生成文本时的最小处理单元。它并不完全等同于字或词,而是介于两者之间的“子词(subword)”或“字节序列(byte sequence)”。
下面,我们就结合一个可视化例子,一步步拆解这个概念。
一、Token 是怎么被“切”出来的?
来看这张可图片 :

这是一款名为 Tiktokenizer 的工具,用来展示 OpenAI 模型(如 GPT-4o)在处理文本时是如何将输入分解为 Token 的。
左侧是对话内容:
System: You are a helpful assistant
User: LLM 中的 Token 是如何计算的?
右侧则展示了模型真正“看到”的内部结构,每个颜色块就是一个 token,对应底部的一串数字编号。
比如:
<|im_start|>system<|im_sep|>You are a helpful assistant<|im_end|>
这行其实已经包含了多个隐藏的特殊 token,用于表示:
- 对话的角色(system、user、assistant)
- 消息的起止位置(im_start、im_end)
- 以及内容分隔符(im_sep)
最终,整条输入被编码为 26 个 token。
这 26 个 token 的序列就是模型真正“看到”的输入,而不是原始文本。
二、Token 的“词典”:tokenizer.json
在开源模型(如 LLaMA、Mistral、BERT 等)中,模型的分词规则通常保存在名为 tokenizer.json 的文件中。
它定义了模型的词汇表和 token 映射关系,结构大致如下:
{
"version": "1.0",
"added_tokens": [
{
"id": 151643,
"content": "<|endoftext|>"
},
...
],
"model": {
"type": "BPE",
"vocab": {
"!": 0,
"\"": 1,
"#": 2,
"$": 3,
...
}
}
}
其中:
- added_tokens:保存一些特殊符号(如句首
<|bos|>、句尾<|eos|>、文本结束符<|endoftext|>等)。 - model.type:指定分词算法类型(如 BPE、WordPiece、SentencePiece 等)。
- vocab:模型的“词典”,key 是 token,value 是其对应的 ID。
三、模型是如何计算 Token 使用量的?
当你输入一段文字时,模型会依次执行以下步骤:
-
预处理
对文本进行规范化(如大小写统一、去除多余空格、Unicode 归一化等)。 -
分词(Tokenization)
按照模型的分词规则(如 BPE)将文本切分为最小的“可识别片段”。 -
统计
计算切分后 token 的数量。
例如:"ChatGPT 是什么?" → ["Chat", "G", "PT", " 是", "什么", "?"] → 共 6 个 token -
添加特殊 token
根据模型架构自动补充特殊标记(如 <|im_start|>、<|im_end|> 等),这些也会计入 token 数量。
⚠️ 注意:
- 英文单词往往被拆成多个 token(例如 “intelligence” → [“intelli”, “gence”])
- 中文则常以单字为单位(每个汉字通常对应 1~2 个 token)
- 空格、标点、甚至换行符也会被单独计入 token!
四、不同模型的分词方式并不相同
| 模型 | 分词算法 | 特点 |
|---|---|---|
| GPT 系列 | BPE (Byte Pair Encoding) | 基于字节的子词合并算法,兼容多语言 |
| BERT / RoBERTa | WordPiece | 按词根和词缀切分,偏向英语 |
| T5 / Flan | SentencePiece | 无需语言预分词,直接学习字符序列 |
| LLaMA / Mistral | BPE + 自定义特殊 token | 优化多语言性能 |
因此,同一句话在不同模型中的 token 数可能相差很大。
这也是为什么调用不同模型 API 时,计费结果会不同的原因。
五、在服务中如何计算 Token 用量?
如果你在开发一个基于 LLM 的应用(比如聊天机器人、知识问答系统),通常需要实时计算 token 使用量以控制成本或上下文长度。
常见方法如下:
-
使用官方分词库
例如:import tiktoken tokenizer = tiktoken.encoding_for_model("gpt-4o") tokens = tokenizer.encode("你好,今天心情怎么样?") print(len(tokens)) # 输出 token 数量 -
查看模型仓库中的 tokenizer.json
自定义分词逻辑或验证分词一致性。 -
估算法(简易)
若无 tokenizer,可粗略估计:
- 中文文本:约 1 字 ≈ 2 token
- 英文文本:约 1 词 ≈ 1.3 token
六、Token 与向量数据库的结合
在知识检索或 RAG(Retrieval-Augmented Generation)系统中,token 不仅用于计费,还决定了文本切块方式。
一般流程如下:
- 文档分块:
使用 tokenizer 控制每块不超过指定 token 数(如 512、1024)。 - Tokenization 处理:
确保与模型一致的分词方式。 - 向量化存储:
将每个块转化为向量并存入向量数据库(如 FAISS、Milvus、Chroma)。 - 检索与生成:
按相似度召回最相关块,再拼接进入模型上下文。
这样可以在保证语义完整性的同时,最大化利用上下文容量。
| 概念 | 说明 |
|---|---|
| Token | 模型处理文本的最小单元(字节或子词) |
| Tokenizer | 负责将文本拆分为 token 的工具 |
| tokenizer.json | 模型的分词词典与算法定义 |
| Tiktokenizer | 可视化 token 分割的工具 |
| 用途 | 计费、控制上下文长度、文本分块等 |
七、AI大模型从0到精通全套学习大礼包
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
只要你是真心想学AI大模型,我这份资料就可以无偿共享给你学习。大模型行业确实也需要更多的有志之士加入进来,我也真心希望帮助大家学好这门技术,如果日后有什么学习上的问题,欢迎找我交流,有技术上面的问题,我是很愿意去帮助大家的!
如果你也想通过学大模型技术去帮助就业和转行,可以扫描下方链接👇👇
大模型重磅福利:入门进阶全套104G学习资源包免费分享!

01.从入门到精通的全套视频教程
包含提示词工程、RAG、Agent等技术点
02.AI大模型学习路线图(还有视频解说)
全过程AI大模型学习路线


03.学习电子书籍和技术文档
市面上的大模型书籍确实太多了,这些是我精选出来的


04.大模型面试题目详解


05.这些资料真的有用吗?
这份资料由我和鲁为民博士共同整理,鲁为民博士先后获得了北京清华大学学士和美国加州理工学院博士学位,在包括IEEE Transactions等学术期刊和诸多国际会议上发表了超过50篇学术论文、取得了多项美国和中国发明专利,同时还斩获了吴文俊人工智能科学技术奖。目前我正在和鲁博士共同进行人工智能的研究。
所有的视频由智泊AI老师录制,且资料与智泊AI共享,相互补充。这份学习大礼包应该算是现在最全面的大模型学习资料了。
资料内容涵盖了从入门到进阶的各类视频教程和实战项目,无论你是小白还是有些技术基础的,这份资料都绝对能帮助你提升薪资待遇,转行大模型岗位。


智泊AI始终秉持着“让每个人平等享受到优质教育资源”的育人理念,通过动态追踪大模型开发、数据标注伦理等前沿技术趋势,构建起"前沿课程+智能实训+精准就业"的高效培养体系。
课堂上不光教理论,还带着学员做了十多个真实项目。学员要亲自上手搞数据清洗、模型调优这些硬核操作,把课本知识变成真本事!

如果说你是以下人群中的其中一类,都可以来智泊AI学习人工智能,找到高薪工作,一次小小的“投资”换来的是终身受益!
应届毕业生:无工作经验但想要系统学习AI大模型技术,期待通过实战项目掌握核心技术。
零基础转型:非技术背景但关注AI应用场景,计划通过低代码工具实现“AI+行业”跨界。
业务赋能 突破瓶颈:传统开发者(Java/前端等)学习Transformer架构与LangChain框架,向AI全栈工程师转型。
👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓
更多推荐


所有评论(0)