向AI转型的程序员都关注公众号 机器学习AI算法工程
你有没有想过:当你在ChatGPT输入框里敲下“今天天气怎么样?”,大模型是怎么“听懂”这句话的?
核心秘密就藏在Token里。它是连接人类语言和AI的“翻译单元”,所有大模型处理的文本,最终都会被拆成一个个Token。
今天我们从零拆解Token的本质、Context Window、编码解码机制、Tokenizer训练,再到完整的输入输出流程,附带可运行代码,看完你就能讲清楚大模型的基础工作原理。
一、Token到底是什么?不是字也不是词
很多人以为Token是“字”或者“词”,其实都不对。Token是大模型处理文本的最小单位,它可以是:
-
一个完整的词:比如“apple”可能是一个Token -
词的一部分:比如“unhappily”可能拆成“un”“happy”“ly”三个Token -
一个汉字:中文里大多数字符都是一个Token -
一个标点或空格:比如“,”“?”都可能是独立Token
💡 通俗理解:
Token就像AI的“文字积木”,所有句子都是用这些积木拼出来的。AI不认识“字”或“词”,只认识这些积木。
为什么要用Token而不是直接用字/词?
- 解决生僻词问题
:比如“ChatGPT”如果被拆成“Chat”“GPT”两个Token,模型就能处理新出现的词 - 平衡效率与灵活性
:太细(按字母)会导致序列太长,太粗(按词)会处理不了生僻词 - 跨语言统一
:不管中文、英文、代码,都用同一套Token体系处理
二、Context Window:模型能记住多少“话”?
Context Window(上下文窗口)就是模型一次能处理的Token最大数量。超过这个数量的文本,模型就“记不住”了。
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
注意:1个Token≈1-2个汉字(中文),≈4个英文字符(英文)。所以128k Token的窗口,能处理很长的文档了。
三、编码与解码:文本和Token ID的转换
大模型的输入是数字,不是文字。所以要把文本转成Token ID(编码),输出时再把Token ID转回文本(解码)。
1. 编码(文本→Token ID)
比如输入“Hello World”,经过Tokenizer处理:
2. 解码(Token ID→文本)
模型输出的是Token ID,要转回人类能读懂的文本:
四、Tokenizer是怎么训练出来的?BPE算法通俗讲
Tokenizer(分词器)是把文本拆成Token的工具,它的训练过程是从大量文本里统计规律,自动学会怎么拆词最合理。
最常用的是BPE(Byte Pair Encoding)算法,训练步骤很简单:
-
从最基础的字符开始:比如所有英文字母、汉字、标点都作为初始Token -
统计所有相邻Token对的出现频率,把最高频的对合并成一个新Token -
重复第二步,直到达到预设的Token表大小(比如5万个)
举例:
初始:["u", "n", "h", "a", "p", "p", "i", "l", "y"](对应“unhappy”)
第一次合并:“un”出现频率高 → 合并成["un", "h", "a", "p", "p", "i", "l", "y"]
第二次合并:“happy”出现频率高 → 合并成["un", "happy", "l", "y"]
第三次合并:“ly”出现频率高 → 最终["un", "happy", "ly"]
这样训练出来的Tokenizer,既能处理常见词(整个词作为一个Token),也能处理生僻词(拆成子词Token),效率很高。
五、全流程推演:从输入到输出每一步都发生了什么?
以用户输入“今天天气怎么样?”为例,完整流程是:
关键特点:自回归生成——每次只生成一个Token,然后把之前生成的所有Token再输入模型,继续生成下一个,直到结束。
六、实战代码:用Python看Token数量、编码解码
我们用Hugging Face的transformers库,实际演示Token的处理过程:
1. 中文Tokenizer示例(Bert)
2. GPT系列Tokenizer示例(tiktoken)
3. 计算Context Window占用
机器学习算法AI大数据技术
搜索公众号添加: datanlp
长按图片,识别二维码
阅读过本文的人还看了以下文章:
整理开源的中文大语言模型,以规模较小、可私有化部署、训练成本较低的模型为主
基于40万表格数据集TableBank,用MaskRCNN做表格检测
《深度学习入门:基于Python的理论与实现》高清中文PDF+源码
2019最新《PyTorch自然语言处理》英、中文版PDF+源码
《21个项目玩转深度学习:基于TensorFlow的实践详解》完整版PDF+附书代码
PyTorch深度学习快速实战入门《pytorch-handbook》
【下载】豆瓣评分8.1,《机器学习实战:基于Scikit-Learn和TensorFlow》
李沐大神开源《动手学深度学习》,加州伯克利深度学习(2019春)教材
【Keras】完整实现‘交通标志’分类、‘票据’分类两个项目,让你掌握深度学习图像分类
如何利用全新的决策树集成级联结构gcForest做特征工程并打分?
Machine Learning Yearning 中文翻译稿
斯坦福CS230官方指南:CNN、RNN及使用技巧速查(打印收藏)
中科院Kaggle全球文本匹配竞赛华人第1名团队-深度学习与特征工程
不断更新资源
深度学习、机器学习、数据分析、python
搜索公众号添加: datayx

