你有没有这种感觉?看了很多Transformer 和大语言模型(LLM)文章,却被搞得一头雾水,感觉始终差了那么一点点才能真正理解它们?别担心,你不是一个人!
今天,我们将深入探讨 LLM 中一个至关重要的核心概念——Token。对我个人而言,正是彻底搞懂了“词元(Token)”和“分词器”(Tokenizer)的那一刻,才真正迎来了我学习 Transformer 的“第一次顿悟”。这可能是我在整个大模型学习过程中,唯一一次从头到尾都感觉思路清晰、理解透彻的体验。
虽然“Token”看起来只是个基础概念,但它却是所有大模型(包括 DeepSeek 和 Claude 等)进行推理、训练和优化的底层起点。没有 Token,这些强大的模型就无法理解和生成我们所使用的文字。
无论你是刚刚踏入大模型世界的新手,还是在实践中被 Token 限制所困扰的开发者,这篇文章都将帮助你从根本上理清思路,让你对 Token 有一个醍醐灌顶的认识!
一、Token是什么:文字的“积木块”
你可以把Token想象成文字的“积木块”。在中文里,一个Token可能是一个字,也可能是几个字组成的词;在英文里,一个Token可能是一个单词,也可能是一个标点符号,甚至是单词的一部分。AI通过识别和处理这些“积木块”来理解我们输入的内容,并基于这些“积木块”来生成新的文本。
为什么需要Token呢?因为将文字拆解成更小的单元,可以帮助AI更高效地处理和学习语言。就像我们搭建乐高模型一样,小的积木块能让我们搭建出更复杂、更精细的模型。我们学习语言也是先学词,再学句子,段落,文章。对于AI来说,Token就是它理解和生成语言的基础,是其强大语言能力的秘密武器。
二、Token的演变:从“语义碎片”到“智能量具”
早期挑战:手工规则与词典的局限
在NLP早期,Token的生成远未标准化。英文等拉丁语系依靠空格分词,而中文等没有空格的语言则面临语义模糊的困境。分词技术如同“手工量具”,效率低下且难以统一。
- 英文分词:虽然空格提供了天然分隔,但这种方法忽略了语素结构,例如“unhappiness”无法分解为“un”和“happiness”,导致语义细粒度丢失。
- 中文分词:由于没有空格,早期中文分词严重依赖人工构建的词典。例如,“人工智能”必须在词表中明确定义,否则可能被误拆。这种方法效率低,且难以应对新词(OOV),如“元宇宙”。
- 语义粒度困境:选择分词粒度面临两难。单词级分词(如英文全词或中文整词)保留了较多语义,但词表规模庞大,增加了计算负担。字符级分词则简化了词表,但语义变得零散,模型难以捕捉完整含义。
统计机器学习的曙光:概率模型的初步智能
为了克服规则分词的局限,统计机器学习方法开始兴起,标志着分词从“手工”向“智能”的转变。
- HMM 和 CRF: 1998年SIGHAN评测推动隐马尔可夫模型(HMM)和条件随机场(CRF)这些分词算法成为主流。这些算法通过标注语料学习词边界和语义规律,提高了分词精度。然而,这些方法高度依赖高质量的标注语料,成本高昂,且对新词和多语言场景的泛化能力有限。像2006年CoNLL多语言分词评测显示,统计模型在资源稀缺语言(如阿拉伯语)上F1值低于70%,暴露泛化的瓶颈。
Transformer前的转折:子词概念的启迪
在Transformer架构出现前的关键五年,子词建模技术已悄然完成从探索到实用的飞跃。它的演进并非源于词向量模型的直接推动,而是由跨语言建模需求和神经机器翻译系统的实践压力驱动。
- 词嵌入的局限与启示(2013–2014) Word2Vec 虽成功实现了词的语义向量化,但采用全词级Token导致在形态丰富语言中的泛化能力不足:例如“runner”与“running”之间的形态联系无法被建模;在土耳其语等黏着语中,未登录词(OOV)率高达15%。 Mikolov 团队在2014年的后续研究中首次指出:“处理形态丰富语言需要更细粒度的表示”(arXiv:1402.3722),这一认知成为子词建模研究的间接催化剂。
- 神经机器翻译的直接驱动(2015) 神经机器翻译(NMT)技术在双语对齐中遭遇稀有词瓶颈。2015年,Sennrich 等人在 EMNLP 发表里程碑论文,提出基于频率合并规则的 Byte Pair Encoding(BPE)方法,在德英翻译任务中使 BLEU 得分提升2.4个点。自此,子词成为NMT中稀有词处理的标准解决方案,以有效缩小词表、提升建模粒度和泛化能力。
- 子词方法的扩散与成熟(2015–2017) 随后几年中,Google 的 GNMT 系统在 WordPiece 的基础上,结合语言模型概率而非仅靠频率进行子词合并,进一步优化分词效果。同期 FastText 引入字符 n-gram 提升词向量质量,但主要影响仍局限于词表示领域,与NMT主线的子词方法并行发展。
截至 2017 年 Transformer 架构提出之前,子词建模已在神经机器翻译中成为主流实践,为后续大模型的统一分词机制奠定了技术基础。Transformer并未发明子词机制,而是在已有成果上广泛采纳与整合,推动其走向跨任务、跨语言的“统一语义量具”。
三、 Transformer时代:Token的“统一度量衡”
Transformer模型的出现标志着自然语言处理(NLP)领域的一场革命,将“Token”重新定义为语义理解与计算效率之间的统一接口。以自注意力机制为核心,Transformer模型将Token视为语言的基本单位,使其能无缝处理不同语言和任务。这一时代将“分裂的、语言特定的”分词过程转变为一种标准化、智能化的“度量体系”,如同一个用于语义精准度的通用尺子。
3.1 Transformer的革命:Token作为语义与计算的桥梁
Transformer架构于2017年提出,借助自注意力机制根据上下文动态评估每个Token的重要性,使Token成为语义解释和计算效率的基石。与早期依赖固定词或字符切分的模型不同,Transformer使用由高级分词器动态定义的灵活Token单位。这一转变使Token成为语言处理的统一“通用货币”,架起了人类语言与机器计算之间的桥梁。例如,一个Transformer模型可以同时处理英文“I’m learning AI”和中文“我爱学习”,其中的Token作为语义测量的标准“刻度”,实现跨语言的统一表达。
3.2 现代分词器:智能化“量具”的崛起
Transformer时代的分词器(Tokenizer),如BPE(Byte-Pair Encoding)、WordPiece、SentencePiece和Tiktoken,相较于以往基于规则或词典的传统方法,是一次重大飞跃。这些“智能量具”能动态适应语言模式,在保持语义丰富性的同时兼顾计算效率。
-
Byte-Pair Encoding(BPE):GPT模型的核心分词方法,BPE从字符级别出发,迭代合并出现频率最高的字符对,构建紧凑而表达力强的词表。例如,“I’m learning AI”可能被BPE分为[“I”, “'m”, " learn", “ing”, " AI", “.” ],保留“learn”和“ing”等词缀,既捕捉语义细节又保持词表简洁。BPE的优势在于其数据驱动的特性,能高度适应新词和多种语言。
-
WordPiece:BERT所采用的分词器,优化合并策略以最大化语言模型性能,优先保留语义相关性。例如,“unhappiness”可被分为[“un”, “##happiness”],其中“##”前缀表示是词的延续部分。这种方式增强了语义连贯性,尤其适用于问答等需精细语义理解的任务。
-
SentencePiece:一种语言无关型多种分词器封装工具,融合了BPE、WordPiece和Unigram算法,将文本视为原始字符序列,无需依赖空格等语言特定边界。例如,对于中文“我爱学习”,SentencePiece可分为[“我”, “爱”, “学”, “习”](字符级)或[“我爱”, “学习”](接近词级),依据训练语料调整切分粒度。其语言通用性使其成为像LLaMA等多语种模型的理想选择,统一了英文、中文、日文等多种语言的分词方式。
-
Tiktoken:OpenAI开发的高效分词器,专为优化大模型(如GPT系列)设计,基于BPE算法。Tiktoken将文本分解为子词单元,例如英文“I’m learning AI”可能分为[“I”, “'m”, " learning", " AI"],中文“我爱学习”可分为[“我”, “爱”, “学习”]或更细粒度单元,视训练语料而定。其特点是速度快、词表紧凑,显著降低Token数量,从而提升编码效率和模型性能。Tiktoken特别适合处理多语言场景,广泛应用于OpenAI的API服务,简化跨语言文本处理。
3.3 示例:分词的实际运作
四、特殊Token:文字里的“交通标志”
将 特殊Token 比喻为 交通标识 是一个非常贴切且直观的方式!这个类比能清晰体现特殊Token在自然语言处理中的 引导、规范和约束 作用。以下是具体对比:
特殊Token 像交通标识一样工作
特殊Token | 交通标识类比 | 作用说明 |
---|---|---|
[CLS] | 起点标志 (如高速公路入口) | 标记输入的开始,模型从这里“出发”理解整个文本。 |
[SEP] | 车道分隔线 或 红绿灯 | 分隔不同句子或文本段(如问答中的问题和答案),防止“撞车”(信息混淆)。 |
[PAD] | 缓冲带 或 占位路障 | 填充空白以保证所有输入长度一致(像统一车道宽度),避免“车辆”(数据)错位。 |
[UNK] | 未知路段警告 (如“施工中”) | 提醒模型遇到生僻词(像无法通行的道路),需要绕行或特殊处理。 |
道路起止牌 (如“起点/终点”) | 标明文本生成的开始和结束,避免模型“超速行驶”(无限生成)。 | |
[MASK] | 临时封闭路段 (如“请绕行”) | 遮盖部分文本要求模型预测(像封路后司机需自行选择替代路线)。 |
五、 理解Tokenizer的意义
如果你的模型是 HuggingFace Transformers 格式(如 LLaMA、ChatGLM、DeepSeek-MoE 等),可以直接加载模型进行推理:
from transformers import AutoModelForCausalLM, AutoTokenizer
model_path = "path/to/your/local/model" # 替换为你的模型路径(如 "deepseek-ai/deepseek-moe-16b")
tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(model_path, device_map="auto")
input_text = "tokenizer是什么?"
inputs = tokenizer(input_text, return_tensors="pt").to("cuda") # 使用 GPU
outputs = model.generate(**inputs, max_new_tokens=200)
response = tokenizer.decode(outputs[0], skip_special_tokens=True)
print("模型回复:", response)
当学习完上面的分词器(Tokenizer),是不是一下就能看懂上面代码了。你现在已经可以做初级大模型工程师啦。
六、Token计数:为什么数量这么重要?
你可能会问,Token多少影响什么?我们使用大模型对话,输入那么长的prompt输出那么多的文字,没见哪里有影响啊。其实关系可大了!Token计数通常用于衡量文本的复杂性或处理成本。例如,AI模型(如LLM)处理文本时,输入和输出的Token数量会影响计算资源消耗和费用。现在只是向调用API的客户收费。如果你是通过API访问模型的开发者和企业,那就要非常关注啦。Token消耗越多,钱包会“疼”。
七、总结
Token是大模型处理语言的基石,而分词器则是将文本转化为Token的“魔法引擎”。从经典的WordPiece、BPE,到现代的SentencePiece与Tiktoken,分词器的作用远超简单编码。它不仅关乎文本处理效率,还直接影响模型的语言理解能力、训练成本及推理性能。希望这篇文章能让你深入理解Token与分词器的核心价值!只有掌握Token的奥秘,我们才能更自如地驾驭大模型,释放其无限潜力。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。