aaihubhub
大模型原理游戏课:模型工坊 16 关 · 第 2 课 / 共 16 课 ↗ AI 教程

02|分词关卡:文字如何变成模型能读的整数

用子词词表理解 token 边界、序列长度与多语言成本。

author
↗ 3 阅读
LESSON BRIEFING02 / 16
第 2 / 16 关

切分符文

把文本看成可复用的子词零件,而不是天然存在的“词”。

常见片段越容易复用,序列通常越短。

CHECKPOINT

分词器为什么常使用子词?

用子词词表理解 token 边界、序列长度与多语言成本。

模型不直接读取字符,也不知道人类眼中的“词”。分词器更像仓库配件员:先用库存里已有的片段尽可能覆盖文本,再把每个片段换成一个整数编号。

先建立整机直觉

不要先背术语。先问三个工程问题:这一阶段接收什么形状的数据、做了哪一种变换、结果交给谁。只要数据流清楚,公式就不再是孤立符号。

核心机械结构

  • 训练分词器时会从字节或字符出发,合并高频相邻片段,形成容量固定的词表。
  • 同一段意思在不同语言、空格和标点形式下可能得到完全不同的 token 数。
  • 特殊 token 表示角色、边界、工具调用或停止条件;它们是协议的一部分,而非普通可见文字。

跟着一个例子走

“unbelievable”可能被拆成“un|believ|able”,陌生产品名则可能碎成更多片段。中文不依赖空格分词,常见字词可以成片,生僻组合可能退回更细粒度。序列越长,注意力和缓存成本越高。

阅读例子时,把“固定权重”和“本次请求产生的激活”分别标记。前者在训练后保存,后者会随输入变化;混淆两者会导致对记忆、隐私和性能的错误判断。

容易掉进的坑

token 不是稳定的“一个汉字”或“一个英文单词”。不要用字符数直接估算上下文,也不要假设两种语言翻译后成本相同。

动手工坊

  1. 选三句含数字、代码、中文和 emoji 的文本,预测边界后再用真实 tokenizer 核对。
  2. 比较加入和去掉前导空格时的 token id,解释为何空格也参与编码。
  3. 为一个 8k token 的窗口制定输入预算:系统规则、证据、用户问题和输出各占多少。

完成后不要只保存结果。记录输入、参数、观察和结论,换一组输入重复实验。一个现象只有在可重复时才是证据。

检查点

你应能解释词表大小、覆盖能力与序列长度之间的三角权衡。

回到页面上方的互动任务,调节两个控制量并完成选择题。答对后,本关会在浏览器中记为完成并获得 XP。

参考与延伸

  • https://mlx.void.app/zh
  • https://huggingface.co/docs/tokenizers/index

本课程为 aiHubHub 原创改写。外部站点只用于核对概念范围与交互启发,正文、例子、练习和界面均重新设计。