当我们与 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 使用量的?

当你输入一段文字时,模型会依次执行以下步骤:

  1. 预处理
    对文本进行规范化(如大小写统一、去除多余空格、Unicode 归一化等)。

  2. 分词(Tokenization)
    按照模型的分词规则(如 BPE)将文本切分为最小的“可识别片段”。

  3. 统计
    计算切分后 token 的数量。
    例如:

    "ChatGPT 是什么?" → ["Chat", "G", "PT", " 是", "什么", "?"] → 共 6 个 token
    
  4. 添加特殊 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 使用量以控制成本或上下文长度。

常见方法如下:

  1. 使用官方分词库
    例如:

    import tiktoken
    tokenizer = tiktoken.encoding_for_model("gpt-4o")
    tokens = tokenizer.encode("你好,今天心情怎么样?")
    print(len(tokens))  # 输出 token 数量
    
  2. 查看模型仓库中的 tokenizer.json
    自定义分词逻辑或验证分词一致性。

  3. 估算法(简易)
    若无 tokenizer,可粗略估计:

  • 中文文本:约 1 字 ≈ 2 token
  • 英文文本:约 1 词 ≈ 1.3 token

六、Token 与向量数据库的结合

在知识检索或 RAG(Retrieval-Augmented Generation)系统中,token 不仅用于计费,还决定了文本切块方式。

一般流程如下:
  1. 文档分块
    使用 tokenizer 控制每块不超过指定 token 数(如 512、1024)。
  2. Tokenization 处理
    确保与模型一致的分词方式。
  3. 向量化存储
    将每个块转化为向量并存入向量数据库(如 FAISS、Milvus、Chroma)。
  4. 检索与生成
    按相似度召回最相关块,再拼接进入模型上下文。

这样可以在保证语义完整性的同时,最大化利用上下文容量。

七、总结

概念 说明
Token 模型处理文本的最小单元(字节或子词)
Tokenizer 负责将文本拆分为 token 的工具
tokenizer.json 模型的分词词典与算法定义
Tiktokenizer 可视化 token 分割的工具
用途 计费、控制上下文长度、文本分块等

那么,如何系统的去学习大模型LLM?

作为一名深耕行业的资深大模型算法工程师,我经常会收到一些评论和私信,我是小白,学习大模型该从哪里入手呢?我自学没有方向怎么办?这个地方我不会啊。如果你也有类似的经历,一定要继续看下去!这些问题啊,也不是三言两语啊就能讲明白的。

所以我综合了大模型的所有知识点,给大家带来一套全网最全最细的大模型零基础教程。在做这套教程之前呢,我就曾放空大脑,以一个大模型小白的角度去重新解析它,采用基础知识和实战项目相结合的教学方式,历时3个月,终于完成了这样的课程,让你真正体会到什么是每一秒都在疯狂输出知识点。

由于篇幅有限,⚡️ 朋友们如果有需要全套 《2025全新制作的大模型全套资料》,扫码获取~
在这里插入图片描述

👉大模型学习指南+路线汇总👈

我们这套大模型资料呢,会从基础篇、进阶篇和项目实战篇等三大方面来讲解。
在这里插入图片描述
在这里插入图片描述

👉①.基础篇👈

基础篇里面包括了Python快速入门、AI开发环境搭建及提示词工程,带你学习大模型核心原理、prompt使用技巧、Transformer架构和预训练、SFT、RLHF等一些基础概念,用最易懂的方式带你入门大模型。
在这里插入图片描述

👉②.进阶篇👈

接下来是进阶篇,你将掌握RAG、Agent、Langchain、大模型微调和私有化部署,学习如何构建外挂知识库并和自己的企业相结合,学习如何使用langchain框架提高开发效率和代码质量、学习如何选择合适的基座模型并进行数据集的收集预处理以及具体的模型微调等等。
在这里插入图片描述

👉③.实战篇👈

实战篇会手把手带着大家练习企业级的落地项目(已脱敏),比如RAG医疗问答系统、Agent智能电商客服系统、数字人项目实战、教育行业智能助教等等,从而帮助大家更好的应对大模型时代的挑战。
在这里插入图片描述

👉④.福利篇👈

最后呢,会给大家一个小福利,课程视频中的所有素材,有搭建AI开发环境资料包,还有学习计划表,几十上百G素材、电子书和课件等等,只要你能想到的素材,我这里几乎都有。我已经全部上传到CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】
在这里插入图片描述
相信我,这套大模型系统教程将会是全网最齐全 最易懂的小白专用课!!

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐