🤗 Hugging Face выпустила tokenizers v1: кодирование стало в 3-30 раз быстрее
Релиз-кандидат первой версии библиотеки tokenizers опубликован на crates.io. Главное: библиотека выдаёт те же token IDs, что и v0.23, сохраняет API, словари и merge ranks - меняется только скорость и то, какой билд вы ставите:
Ускорение дал ряд изменений в пайплайне. Разбиение текста на pre-tokens больше не идёт через regex-движок: новый компонент bitcannon выполняет булевы операции над битстримами с использованием SIMD. Merge-цикл BPE переписан - вместо аллокаций на каждый вызов он работает во внутреннем буфере вызывающего, символы связаны индексами в плоском массиве, а пары упакованы в 64-битные значения. Добавлен thread-local кэш слов, где повторяющиеся pre-tokens сразу отдают готовые IDs, и нативная параллельность: общий токенизатор кодирует из нескольких потоков, каждый со своим scratch-буфером и кэшем.
По замерам на одном потоке Apple M4 Max v1 кодирует в 3-30 раз быстрее v0.23 (нижняя граница - t5-base, верхняя - gpt2), а на восьми воркерах масштабируется на 76% от линейного. Бенчмарки воспроизводимы через репозиторий tokbench. Проект остаётся универсальным: BPE, WordPiece и Unigram, полная загрузка всего, что читала v0.23. Дальше авторы обещают перевести на новый merge-цикл больше семейств моделей до релиза 1.0.0.
#AI #HuggingFace #Tokenizers #Rust #ML #OpenSource
Релиз-кандидат первой версии библиотеки tokenizers опубликован на crates.io. Главное: библиотека выдаёт те же token IDs, что и v0.23, сохраняет API, словари и merge ranks - меняется только скорость и то, какой билд вы ставите:
cargo add tokenizers --pre.Ускорение дал ряд изменений в пайплайне. Разбиение текста на pre-tokens больше не идёт через regex-движок: новый компонент bitcannon выполняет булевы операции над битстримами с использованием SIMD. Merge-цикл BPE переписан - вместо аллокаций на каждый вызов он работает во внутреннем буфере вызывающего, символы связаны индексами в плоском массиве, а пары упакованы в 64-битные значения. Добавлен thread-local кэш слов, где повторяющиеся pre-tokens сразу отдают готовые IDs, и нативная параллельность: общий токенизатор кодирует из нескольких потоков, каждый со своим scratch-буфером и кэшем.
По замерам на одном потоке Apple M4 Max v1 кодирует в 3-30 раз быстрее v0.23 (нижняя граница - t5-base, верхняя - gpt2), а на восьми воркерах масштабируется на 76% от линейного. Бенчмарки воспроизводимы через репозиторий tokbench. Проект остаётся универсальным: BPE, WordPiece и Unigram, полная загрузка всего, что читала v0.23. Дальше авторы обещают перевести на новый merge-цикл больше семейств моделей до релиза 1.0.0.
#AI #HuggingFace #Tokenizers #Rust #ML #OpenSource
✍1🥱1