FastTokenizer库在C++、Python端提供ErnieFastTokenizer接口,用户只需传入模型相应的词表即可调用该接口,完成高效分词操作。该接口底层使用WordPiece
算法进行分词。针对WordPiece
算法,FastTokenizer实现了"Fast WordPiece Tokenization"提出的基于MinMaxMatch
的FastWordPiece
算法。原有WordPiece
算法的时间复杂度与序列长度为二次方关系,在对长文本进行分词操作时,时间开销比较大。而FastWordPiece
算法通过Aho–Corasick
算法将WordPiece
算法的时间复杂度降低为与序列长度的线性关系,大大提升了分词效率。ErnieFastTokenizer
除了支持ERNIE模型的分词以外,还支持其他基于WordPiece
算法分词的模型,比如BERT
, TinyBert
等,详细的模型列表如下:
- ERNIE
- BERT
- TinyBERT
- ERNIE Gram
- ERNIE ViL
- Xinying Song, Alex Salcianuet al. "Fast WordPiece Tokenization", EMNLP, 2021