Инструменты23 июля 2026 г., 12:17 МСК🤖 Auto

Gigatoken: Rust-токенизатор, работающий в 989 раз быстрее HuggingFace

Студент Стэнфорда Марсель Рёд выпустил Gigatoken — оптимизированный на Rust BPE-токенизатор, достигающий скорости 24.53 ГБ/с. Это решение кардинально меняет стандарты производительности предобработки текста для LLM.

Баннер новости 4196

Абсолютное лидерство в скорости

Новый open-source проект Gigatoken (версия 0.9.0, лицензия MIT) демонстрирует беспрецедентные результаты на бенчмарках. На серверной конфигурации с процессором AMD EPYC 9565 (144 ядра, двухсокетная система) библиотека обрабатывает корпус owt_train.txt (11.9 ГБ) со скоростью 24.53 ГБ/с. Для сравнения, традиционные решения показывают следующие результаты на том же железе:

Токенизатор Скорость (GB/s) Ускорение относительно Gigatoken
Gigatoken (Native) 24.53
OpenAI tiktoken 0.036 681x
HuggingFace tokenizers 0.0248 989x

На потребительском оборудовании разрыв также огромен. На Apple M4 Max (16 ядер) Gigatoken выдает 8.79 ГБ/с (в 1268 раз быстрее HuggingFace), а на AMD Ryzen 7 9800X3D — 6.27 ГБ/с (в 106 раз быстрее HF). Эти цифры подтверждают, что проблема не в архитектуре CPU, а в алгоритмической эффективности.

Секрет производительности: SWAR и ILP

Прирост скорости достигается не за счет оптимизации самого цикла слияния BPE, а благодаря радикальному пересмотру этапов предтокенизации и кэширования. Автор проекта отказался от стандартных regex-движков в пользу ручного написания конечных автоматов и использования специфичных низкоуровневых техник:

  • SWAR (SIMD Within A Register): Вместо архитектурно-зависимых NEON-инструкций используется арифметика без ветвлений, позволяющая проверять 8 байт одновременно через 64-битное целое число.
  • Двукурсорная эксплуатация ILP: Для преодоления задержек (latency) в цепочке вычислений применяются два независимых курсора, что позволяет процессору интерливингировать потоки выполнения на пустых портах.
  • Кэширование предтокенизации: Введен механизм хранения результатов для часто встречающихся слов, что критично при работе с длиннохвостыми распределениями токенов.

Поддержка экосистемы и совместимость

Gigatoken поддерживает 23 семейства токенизаторов, включая GPT-2, Llama 3-4, Qwen 2-3.6, DeepSeek V3/R1/V4, Gemma, Mistral и другие. Библиотека доступна через PyPI и состоит на 66.2% из кода на Rust и на 33.3% на Python.

Существует два режима работы:

  1. Native API: Максимальная скорость (указанные выше цифры). Rust читает файлы напрямую, минимизируя накладные расходы Python.
  2. Compatibility Mode: Обертка над существующими токенизаторами HuggingFace или tiktoken. Гарантирует полную парность выходных данных, но скорость снижается до 200–300x ускорения из-за накладных расходов на создание списков и конвертацию строк в байты в Python.

Ограничения и независимая проверка

Не все форматы выигрывают одинаково. Токенизаторы на базе SentencePiece (например, Gemma, CodeLlama) показывают ускорение в 7–10 раз, а WordPiece пока не поддерживается. Независимая репродукция тестов на платформе KrabArena на виртуальной машине Intel Xeon подтвердила тренд: Gigatoken превзошел tiktoken в 26.2 раза, а HuggingFace tokenizers — в 83.4 раза на 4-ядерной конфигурации.

Источник: MarkTechPost ↗