1. 从字节到语义:Tokenizer如何拆解人类语言
当你在聊天框输入"你好"时,大模型看到的其实是["20307", "22909"]这样的数字序列。这种神奇转换的核心就是tokenizer——它如同语言与AI之间的密码本,将人类可读的文本转化为机器可处理的数字令牌(token)。以中文为例,"自然语言处理"可能被拆解为["自", "然", "语言", "处理"]四个token,而英文"unhappiness"则可能分解为["un", "happiness"]。
关键认知:token不是简单的字符或单词分割。优秀的分词器会保留语义单元,比如将"机器学习"作为整体保留,而非拆成"机器"+"学习"
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 主流Tokenizer技术方案解析
2.1 BPE算法:平衡词典大小与覆盖率的艺术
字节对编码(BPE)通过统计高频字符对逐步构建词典。其核心步骤包括:
- 初始拆分:将所有文本拆解为单个字符
- 频率统计:计算所有相邻字符对出现频率
- 合并操作:将最高频的字符对合并为新token
- 循环迭代:重复步骤2-3直到达到预设词典大小
python复制# 简化版BPE实现示例
import collections
def train_bpe(text, vocab_size):
vocab = collections.Counter(text)
while len(vocab) < vocab_size:
pairs = get_stats(vocab)
best = max(pairs, key=pairs.get)
vocab = merge_vocab(vocab, best)
return vocab
2.2 WordPiece:BERT的幕后功臣
作为BERT系列模型的标配,WordPiece在BPE基础上引入语言模型概率评估。其合并策略基于:
code复制score = (freq_of_pair) / (freq_of_first * freq_of_second)
这种设计能更好捕捉"##ing"这样的后缀形态,在英语形态学处理上表现优异。
2.3 Unigram与SentencePiece
Googl
