Tokenizers

为研究和生产而优化的快速先进的分词器。「💥 Fast State-of-the-Art Tokenizers optimized for Research and Production」

Github星跟蹤圖

Provides an implementation of today's most used tokenizers, with a focus on performance and
versatility.

Main features:

  • Train new vocabularies and tokenize, using today's most used tokenizers.
  • Extremely fast (both training and tokenization), thanks to the Rust implementation. Takes
    less than 20 seconds to tokenize a GB of text on a server's CPU.
  • Easy to use, but also extremely versatile.
  • Designed for research and production.
  • Normalization comes with alignments tracking. It's always possible to get the part of the
    original sentence that corresponds to a given token.
  • Does all the pre-processing: Truncate, Pad, add the special tokens your model needs.

Performances

Performances can vary depending on hardware, but running the ~/bindings/python/benches/test_tiktoken.py should give the following on a g6 aws instance:
image

Bindings

We provide bindings to the following languages (more to come!):

Installation

You can install from source using:

pip install git+https://github.com/huggingface/tokenizers.git#subdirectory=bindings/python

our install the released versions with

pip install tokenizers

Quick example using Python:

Choose your model between Byte-Pair Encoding, WordPiece or Unigram and instantiate a tokenizer:

from tokenizers import Tokenizer
from tokenizers.models import BPE

tokenizer = Tokenizer(BPE())

You can customize how pre-tokenization (e.g., splitting into words) is done:

from tokenizers.pre_tokenizers import Whitespace

tokenizer.pre_tokenizer = Whitespace()

Then training your tokenizer on a set of files just takes two lines of codes:

from tokenizers.trainers import BpeTrainer

trainer = BpeTrainer(special_tokens=["[UNK]", "[CLS]", "[SEP]", "[PAD]", "[MASK]"])
tokenizer.train(files=["wiki.train.raw", "wiki.valid.raw", "wiki.test.raw"], trainer=trainer)

Once your tokenizer is trained, encode any text with just one line:

output = tokenizer.encode("Hello, y'all! How are you 😁 ?")
print(output.tokens)
# ["Hello", ",", "y", "'", "all", "!", "How", "are", "you", "[UNK]", "?"]

Check the documentation
or the quicktour to learn more!

主要指標

概覽
名稱與所有者huggingface/tokenizers
主編程語言Rust
編程語言Rust (語言數: 8)
平台
許可證Apache License 2.0
所有者活动
創建於2019-11-01 17:52:20
推送於2025-06-06 03:37:47
最后一次提交
發布數142
最新版本名稱v0.21.1 (發布於 )
第一版名稱v0.0.3 (發布於 )
用户参与
星數9.8k
關注者數123
派生數0.9k
提交數1.9k
已啟用問題?
問題數1062
打開的問題數67
拉請求數539
打開的拉請求數23
關閉的拉請求數156
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?