返回笔记
基础概念

Token 化和分词:大模型如何"读"文字

Token 分词 BPE Tokenizer NLP

我们知道大模型处理的是 token,但 token 到底是什么?为什么要分词?这篇文章讲清楚。

计算机不能直接读文字

大模型本质上是数学函数,只能处理数字。所以必须把文字转成数字序列。这个过程叫分词

什么是 Token

Token 是文本被切分后的最小单元。一个 token 可能是:

  • 一个完整的英文单词(如 "hello")
  • 单词的一部分(如 "ing"、"tion")
  • 一个中文汉字(如 "语"、"言")
  • 一个标点符号(如 "."、"?")

BPE 算法

目前主流的分词算法是字节对编码。它的思路是:

  1. 从字符级别开始
  2. 统计哪些字符对经常一起出现
  3. 把最常见的字符对合并成一个新 token
  4. 重复直到达到预设的词汇表大小

这样做的好处是:常见词占一个 token,罕见词被拆成更小的子词单元,不会出现 OOV(词汇表外)问题。

Token 的花费

  • 英文大约 1 token ≈ 0.75 个单词
  • 中文大约 1 token ≈ 1.5 个汉字
  • API 按 token 计费,所以了解分词规则有助于优化成本

Tokenizer 对模型的影响

分词方式直接影响模型表现:

  • 中英文混用:如果不合理,代码和自然语言混在一起的场景效率会很低
  • 数字处理:有些 tokenizer 会把"12345"当成1个数字 token,有些会拆成多个
  • 编程语言:对代码场景需要特殊优化