[具身智能-321]:分词器的发展历史与趋势
分词器Tokenizer的发展史本质上是一部在“词汇表大小”与“序列长度”之间寻找最优平衡点的进化史。它的演进脉络非常清晰从早期的规则驱动到统计驱动再到如今大模型时代的子词Subword与字节级Byte-level智能编码。以下我为你梳理的详细发展历史与未来趋势 第一阶段规则与统计时代传统 NLP 时期在大模型出现之前分词特别是中文分词是自然语言处理NLP中一个独立且至关重要的任务。基于规则的方法1980s-1990s原理依赖人工编写的词典和语法规则。最典型的是最大匹配法Maximum Matching即从左到右或从右到左在词典中寻找最长的匹配词串。局限无法识别未登录词新词难以处理歧义如“南京市长江大桥”是“南京市/长江大桥”还是“南京/市长/江大桥”。代表早期的机械分词系统。基于统计的方法1990s-2010s原理不再单纯依赖词典而是利用机器学习算法如隐马尔可夫模型 HMM、条件随机场 CRF计算字与字之间结合的概率。如果两个字经常连在一起出现它们构成一个词的概率就高。代表工具Jieba 分词就是这一时期的集大成者它融合了“基于前缀词典实现动态规划”和“HMM 模型识别新词”两种方法。局限仍然需要针对特定语言如中文专门开发通用性较差。 第二阶段子词革命大模型萌芽期随着深度学习的发展研究者发现“按词分”会导致词汇表爆炸无法处理生僻词“按字母分”会导致序列过长丢失语义。子词Subword算法应运而生成为现代大模型的基石。BPE (Byte Pair Encoding, 字节对编码)原理一种基于频率的贪心算法。初始时将所有文本拆分为字符然后反复合并出现频率最高的相邻符号对直到达到预设的词汇表大小。地位由 Sennrich 等人引入 NMT神经机器翻译是 GPT 系列模型的早期基础。WordPiece原理谷歌在 BERT 中使用的算法。与 BPE 不同它不是看频率而是选择合并后能最大化训练数据似然概率的词对。它引入了##前缀来标记子词后缀。特点更倾向于保留语义完整的单元。Unigram原理采用“减法”策略。先构建一个巨大的候选词表然后不断删除对整体似然性贡献最小的词直到满足大小要求。应用常用于 SentencePiece 工具库被 T5、mBART 以及早期的 Llama 系列采用。 第三阶段字节级与多语言融合当前主流为了解决“未登录词”OOV和多语言支持问题分词器进化到了字节级。BBPE (Byte-level BPE)突破GPT-2 首次引入。它将文本视为UTF-8 字节序列0-255而不是字符序列。优势彻底解决了未登录词问题。无论输入什么语言甚至乱码、Emoji都能被拆解为字节组合。这使得模型能够无缝处理中英混合、代码和罕见符号。现状GPT-3/4、Claude、Llama 2/3 等主流模型均采用此方案或其变种。 核心算法对比表表格算法核心逻辑代表模型优点缺点BPE频率统计高频合并GPT-2, RoBERTa简单高效平衡性好对低频词处理一般WordPiece似然概率最大化增益BERT, DistilBERT语义保留较好训练较慢需特殊标记Unigram概率剪枝从大到小T5, Llama (部分)支持多路径分词训练复杂度高BBPE字节级合并GPT-3/4, Llama 2/3无OOV问题多语言强单个字符可能占用多个Token序列略长 未来发展趋势根据当前的研究进展分词技术正朝着以下方向演进语义感知与动态分词未来的分词器将不再仅仅基于统计规律而是融合语义理解。例如结合上下文动态决定分词粒度上下文感知分词在需要精确理解时切分得更细在需要宏观概括时切分得更粗。多模态分词随着多模态大模型如 Sora, GPT-4V的兴起分词器将不仅处理文本还需要处理图像、音频等模态的“词元”。例如将图像块Patches视为一种特殊的 Token实现跨模态的统一编码。少样本与零样本适应针对低资源语言如小语种或特定垂直领域如生物医学研究如何利用极少的数据快速调整分词器使其适应新领域而无需重新训练庞大的词表。“去分词化”的探索学术界也在反思分词的必要性。一些研究如 ByT5尝试完全基于字符或字节进行建模虽然计算量大但能彻底消除分词错误带来的误差传播。不过目前来看子词分词在效率和性能上仍是最佳平衡点。总结分词器已经从简单的“查字典”工具进化为大模型理解世界的底层编码协议。它不仅决定了模型能读懂多少种语言更直接影响了模型的推理速度和智能上限。