tokenizers
v0.20.3
提供當今最常用的分詞器的實現,重點是性能和多功能性。
使用當今最常用的分詞器來訓練新詞彙並進行分詞。
由於 Rust 實現,速度非常快(訓練和標記化)。在伺服器 CPU 上標記 1 GB 文字只需不到 20 秒。
易於使用,而且用途極為廣泛。
專為研究和生產而設計。
標準化伴隨著對齊追蹤。總是可以獲得原始句子中與給定標記相對應的部分。
執行所有預處理:截斷、填充、新增模型所需的特殊標記。
效能可能因硬體而異,但在 g6 aws 實例上執行 ~/bindings/python/benches/test_tiktoken.py 應給出以下結果:
我們提供以下語言的綁定(未來還會有更多!):
Rust(原始實作)
Python
Node.js
Ruby(由 @ankane 貢獻,外部儲存庫)
您可以使用以下命令從來源安裝:
pip install git+https://github.com/huggingface/tokenizers.git#subdirectory=bindings/python
我們安裝發布的版本
pip 安裝分詞器
在位元組對編碼、WordPiece 或 Unigram 之間選擇模型並實例化分詞器:
from tokenizers import Tokenizerfrom tokenizers.models import BPEtokenizer = Tokenizer(BPE())
您可以自訂預標記化(例如,分割為單字)的完成方式:
從 tokenizers.pre_tokenizers 匯入 Whitespacetokenizer.pre_tokenizer = Whitespace()
然後在一組文件上訓練你的分詞器只需要兩行程式碼:
from tokenizers.trainers import BpeTrainertrainer = BpeTrainer(special_tokens=["[UNK]", "[CLS]", "[SEP]", "[PAD]", "[MASK]"])tokenizer.train(files=[ 「wiki.train.raw」、「wiki.valid.raw」、「wiki.test.raw」]、trainer=trainer)
一旦你的分詞器訓練完畢,只需一行即可對任何文本進行編碼:
output = tokenizer.encode("大家好!你們好嗎??")print(output.tokens)# ["Hello", ",", "y", "'", "all", "! 」、「怎麼樣」、「是」、「你」、「[UNK]」、「?
查看文件或快速瀏覽以了解更多資訊!