1. 引言
分词器是每个大语言模型必不可少的组件,但每个大语言模型的分词器几乎都不相同。如果要训练自己的分词器,可以使用huggingface的tokenizers框架,tokenizers包含以下主要组件:
- Tokenizer: 分词器的核心组件,定义了分词的整个流程,包括标准化、预分词、模型分词、后处理等
- Normalizers:可选,负责将文本标准化,包括unicode归一化、大写转小写、去重音等操作
- Pre-tokenizers:负责将文本分割成更小的片段(如单词等),为模型分词做准备。常见的预分词器有按空格分词(Whitespace)、正则表达式分词(Regex)等
- Models:是实际的分词算法,负责将文本片段转换为子词,常见的有BPE、WordPiece、Unigram等。
- Post-Processors:负责对分词结果进行后处理,如添加特殊标记(CLS、SEP)。
- Decoders:负责将分词结果转换回原始文本,常见的解码器有 ByteLevel、WordPiece 等。
- Trainers:用于训练分词模型,不同的模型对应不同的训练器,如 BpeTrainer、WordPieceT