tokenizers README

The project's README from github.com/huggingface/tokenizers. As one markdown file: README.md.



Build GitHub

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

Main features:

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

or 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!

tokenizers (huggingface/tokenizers)

Searching Database…

Что это такое?Tokenizers — это библиотека, которая реализует самые популярные сегодня токенизаторы (BPE, WordPiece, Unigram) для NLP. Она написана на Rust для высокой скорости и доступна для других языков через привязки. Разработана компанией Hugging Face и обеспечивает токенизацию для трансформерных моделей.
Это отдельное приложение или библиотека, которую я подключаю к своему коду?Это библиотека: ядро написано на Rust, а привязки есть для Python, Node.js и неофициальной привязки для Ruby от сообщества. Её подключают в ваш собственный код для обучения или инференса.
Как её установить и использовать?Установите её из исходного кода или через готовый пакет для вашего языка (например, pip для Python). Затем выберите тип модели — BPE, WordPiece или Unigram, создайте токенизатор и обучите его на своих файлах всего в несколько строк кода.
Нужно ли устанавливать Rust, чтобы использовать привязки для Python?Нет, конечным пользователям отдельный набор инструментов Rust не нужен: готовые пакеты Python и Node поставляются уже скомпилированными, а инструменты для сборки из исходного кода нужны, только если вы собираете библиотеку сами.
Зависит ли производительность от моего железа?Да, измеренная скорость может различаться в зависимости от оборудования. В README приведены цифры для конкретного экземпляра AWS g6 как ориентир, а не как гарантия для любых условий.
Для кого создана эта библиотека?Она рассчитана как на исследователей, которые экспериментируют с токенизацией, так и на продуктовые команды, которым нужна быстрая и надёжная предобработка текста для языковых моделей.
Насколько быстро на самом деле работает токенизация?В README сказано, что токенизация одного гигабайта текста на CPU сервера занимает менее 20 секунд — благодаря реализации на Rust.
Могу ли я сопоставить токены с исходным текстом?Да, нормализация сохраняет выравнивание, поэтому всегда можно получить именно тот фрагмент исходного предложения, которому соответствует конкретный токен.
Берёт ли библиотека на себя паддинг и обрезку?Да, она выполняет всю необходимую предобработку: обрезку, паддинг и добавление специальных токенов, которые требуются вашей модели.
Какие алгоритмы токенизации поддерживаются?При создании токенизатора можно выбрать модель Byte-Pair Encoding (BPE), WordPiece или Unigram.
Size
22.6 MB
Stars
11.2K
Age
6y
Commits · 90 Days