神经网络Transformer架构中的标记化
标记化是将原始文本数据分解成更小单元的过程,这些单元称为标记。在Transformer架构中,标记化是文本处理的第一步,它将输入文本转换为模型能够理解的数字表示。标记化的质量直接影响模型对语言的理解能力,因为不恰当的标记化可能导致语义信息的丢失或扭曲。
标记化的基本方法包括按空格分割、字符级标记化和子词标记化。按空格分割简单地将文本按空格分隔成单词,但无法处理未登录词。字符级标记化将每个字符作为独立标记,虽然能处理任何单词,但序列长度过长且语义表示较弱。子词标记化通过统计方法学习常见子词单元,平衡了词汇表大小与语义表示能力,是现代Transformer模型的主流方法。
字节对编码是子词标记化的经典算法,它从字符级词汇表开始,迭代合并出现频率最高的字符对,直到达到预设的词汇表大小。例如,"l"和"ow"可能被合并为"low",而"low"和"er"可能进一步合并为"lower"。这种渐进式合并允许模型既掌握常见单词的整体表示,又能通过子词组合处理罕见单词。
WordPiece是BPE的变体,区别在于合并策略不是基于频率而是基于概率。它选择合并后能最大提升语言模型概率的字符对,这使得合并更注重语言学的合理性。SentencePiece则进一步扩展了子词标记化的概念,支持无需预分词的文本处理,通过统一处理空格等特殊字符,实现对多语言文本的更一致处理。
在具体实现中,标记化过程包括标准化、预分词、标记映射和编码四个阶段。标准化阶段统一文本格式,如大小写转换和口音去除;预分词阶段按启发式规则初步分割文本;标记映射将分词结果转换为子词标记;编码阶段最终将标记转换为词汇表中的索引。每个阶段都可能引入特定的处理策略以适应不同语言特性。
标记化对模型性能产生多方面影响。较小的词汇表会导致更长的序列长度,增加计算负担;而过大的词汇表则可能降低模型对未见数据的泛化能力。此外,标记化的一致性至关重要,训练与推理阶段必须使用完全相同的标记化方案,否则会导致严重的性能下降。多语言模型还需平衡不同语言在词汇表中的代表性,避免语言偏见。