專注 NLP 的初創團隊抱抱臉(hugging face)發佈幫助自然語言處理過程中,更快的詞語切分(tokenization)工具:Tokenizers —— 只要 20 秒就能編碼 1GB 文本。
功能多樣:適用於 BPE / byte-level-BPE / WordPiece / SentencePiece 各種 NLP 處理模型
可以完成所有的預處理:截斷(Truncate)、填補(Pad)、添加模型需要的特殊標記。
速度超級快:只需要 20 秒就可以在 CPU 上標記 1GB 的文本。
目前適用三種編程語言:Rust / Python / Node.js
- 主要包含的 Tokenizer 有:
ByteLevelBPETokenizer,字節級別的 BPE (Byte Pair Encoding) 訓練和 tokenize,facebook 那幾個預訓練模型比如 Roberta 就用的這個,應對多語言比較方便;
CharBPETokenizer,比字節高一個級別,字級別的 BPE,其實就是最經典 Sennrich 教授用的那個,subword-nmt;
SentencePieceTokenizer,現在越來越搞不清這些命名之間的關係了,不過看代碼應該是在 BPE 過程之前加了一個 pretokenization 過程,先對文本進行預處理再 BPE;
BertWordPieceTokenizer,應該就是基於 unigram language model 那篇論文來做的。