Обеспечивает реализацию наиболее часто используемых на сегодняшний день токенизаторов с упором на производительность и универсальность.
Обучайте новые словари и проводите токенизацию, используя наиболее часто используемые на сегодняшний день токенизаторы.
Чрезвычайно быстро (как обучение, так и токенизация) благодаря реализации на Rust. Токенизация ГБ текста на процессоре сервера занимает менее 20 секунд.
Прост в использовании, но при этом чрезвычайно универсален.
Предназначен для исследований и производства.
Нормализация сопровождается отслеживанием выравниваний. Всегда можно получить часть исходного предложения, соответствующую данному токену.
Выполняет всю предварительную обработку: усекает, дополняет, добавляет специальные токены, необходимые вашей модели.
Производительность может варьироваться в зависимости от оборудования, но запуск ~/bindings/python/benches/test_tiktoken.py должен дать следующее на экземпляре g6 aws:
Мы предоставляем привязки к следующим языкам (еще больше!):
Ржавчина (оригинальная реализация)
Питон
Node.js
Ruby (предоставлен @ankane, внешний репозиторий)
Вы можете установить из исходного кода, используя:
pip install git+https://github.com/huggingface/tokenizers.git#subdirectory=bindings/python
мы устанавливаем выпущенные версии с помощью
токенизаторы установки pip
Выберите модель между кодированием пар байтов, WordPiece или Unigram и создайте экземпляр токенизатора:
из токенизаторов import Tokenizerfrom tokenizers.models import BPEtokenizer = Tokenizer(BPE())
Вы можете настроить способ предварительной токенизации (например, разделения на слова):
из tokenizers.pre_tokenizers import 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»], тренер=тренер)
Как только ваш токенизатор будет обучен, закодируйте любой текст всего одной строкой:
вывод = tokenizer.encode("Привет, вы все! Как дела? ?")print(output.tokens)# ["Привет", ",", "y", "'", "all", "! ", "Как", "есть", "ты", "[UNK]", "?"]
Чтобы узнать больше, ознакомьтесь с документацией или кратким обзором!