AI 课件库 › 大模型与生成式 AI › 分词与词表
分词器实验台
Tiktokenizer · 教学工具 tiktokenizer.vercel.app,2023
同一句话,换一个模型就换一种切法。输入任意中英文,实时看到它被切成哪些词元、每个词元的编号是多少、一共几个词元;通义、DeepSeek、GPT-4o、GPT-2 等十几种分词器随意对照。
交互实验(可直接投屏)
原作是一个完整的网页应用,下面直接嵌入;屏幕小或要投影时,点「全屏打开实验」更清楚。
动手三步
- 在左侧输入框里敲一句中文,右上角词元数实时变化,右侧上框按颜色显示切分结果、下框显示每个词元的编号
- 点右上角的分词器按钮,依次换成 Qwen、DeepSeek-R1、gpt-4o、cl100k_base,同一句话看词元数怎么从 15 涨到 27
- 再换到 gpt2,同一句中文会涨到 48 个词元,颜色块碎成一堆
- 勾上「显示空白字符」,看空格和换行各自算几个词元
- 选对话模型时左侧会多出一个对话编辑器:加消息、改角色,看特殊词元是怎么拼进去的
课堂怎么用
- 开场第一分钟就能立住的一个事实:同一句中文,Qwen 15 个词元、GPT-4o 18 个、GPT-3.5 那套 27 个、GPT-2 要 48 个。国产模型的中文词表不是噱头,是真金白银的上下文长度与调用成本
- 讲「模型看不到汉字」:在 gpt2 下输入几个汉字,看它被切成一串字节编号,再回头解释大模型为什么数不清「谢谢里有几个谢字」
- 讲上下文窗口与计费:让学生把自己写的提示词贴进去,数出真实词元数,再乘上模型单价
- 讲对话模板:加一条助手消息,看特殊词元怎么把角色信息编码进去,说明系统提示词不是玄学而是拼字符串
- 接 C-10 大模型三维可视化:那件从词元嵌入开始讲,这件正好补上「词元是怎么来的」这半截
思考题
- 同一句中文,Qwen 切出 15 个词元、GPT-2 切出 48 个,这个差距会影响什么?
- GPT-2 下输入汉字,编号大多在一百到二百五十之间,这说明它在拿什么当最小单位?
- 为什么英文单词前面的空格常常和单词一起算作一个词元?
已知限制
- 开源模型保留 7 个(通义、DeepSeek-R1、Yi、phi-2、CodeLlama 两档、falcon)。上游清单里的 Llama 3 与 Gemma 是受限仓库,要逐个在网页上接受模型许可才能下载,构建期拿不到,已移除
- 语音识别模型的分词器虽然能下到,但在本页对任何输入都返回空切分,一并移除
- 两个文本向量模型被原作代码直接拒绝(提示模型可能太新),已从清单移除;其余编码与模型全部保留
- 切分结果里的词元本身、以及模型与编码的名字一律保留原文不译:词元是模型真正看到的东西,名字是要照着查文档的标识符
- 只做分词,不生成文本,也不显示模型输出
- 两档 CodeLlama 用的是同一套词表,切分结果完全相同
- 分词器词表来自各模型的公开仓库,跟随各自许可,只含词表与配置、不含模型权重
原作 Tiktokenizer(Tat Dat Duong,教学工具 tiktokenizer.vercel.app,2023),MIT 许可(原文),界面已中文化。