BPE 算法完整步骤
分类: 预训练与微调 · 难度: 中级 · 关联讲座: L07
BPE 算法完整步骤
本文详解 Byte-Pair Encoding(BPE)子词分词算法的完整流程,从初始字符词表出发,通过迭代合并最频繁的相邻 token 对逐步构建目标大小的词表。BPE 是现代大语言模型(GPT、Llama 等)分词器的基础算法。
1. 算法流程
📐 BPE 算法完整步骤
变量定义:初始语料 ,目标词表大小 ,当前词表 ,token 对频率表 。
推导过程(伪代码):
输入语料: ["low", "lower", "newest", "widest"]
初始化: 每词末尾加 </w> 标记
词频: {"l o w </w>": 5, "l o w e r </w>": 2,
"n e w e s t </w>": 6, "w i d e s t </w>": 3}
Step 1: 统计相邻 token pair 频率
("e", "s"): 6+3=9 ← 最高
合并 "e"+"s" → "es",更新词表
Step 2: 再次统计
("es", "t"): 6+3=9 ← 最高
合并 "es"+"t" → "est"
Step 3:
("est", "</w>"): 9 ← 最高
合并 "est"+"</w>" → "est</w>"
Step 4:
("l", "o"): 5+2=7 ← 最高
合并 → "lo"
... 重复直到 |V| 达到目标大小(如 50,000)
最终词表包含从单字符到完整单词的所有粒度的 token。