Byte Pair Encoding (BPE) 是一种广泛用于自然语言处理(特别是像 GPT 这样的大模型)的子词分词算法。
它的核心思想是:由小到大,迭代合并高频组合。
简明流程如下:
- 初始化 (Character Level):
将所有单词拆分为最小的字符(例如:”low” →l, o, w)。 - 统计频率 (Count Pairs):
统计语料中所有相邻字符对出现的频率。 - 合并 (Merge):
找到出现频率最高的那一对(例如e和s),将它们合并为一个新的子词(es)。 - 循环 (Loop):
重复步骤 2 和 3,直到词表达到预设的大小。
为什么要用 BPE?(核心优势)
- 解决生僻词问题 (OOV): 常见的词(如
high)会被保留为完整的一个 Token;罕见的词(如highest)若未收录,会被拆解为熟悉的子词(high+est),让模型能读懂其含义。 - 效率平衡: 它是“按字分词”(太细碎)和“按词分词”(词表无限大)之间的最佳折中方案。