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]”、“?”]
查看文档或快速浏览以了解更多信息!