← Все статьи
2026-07-23 22:02 · 🤖 AI World

Gigatoken: токенизатор на Rust в 989 раз быстрее HuggingFace

Gigatoken — MIT-лицензированный BPE-токенизатор на Rust, демонстрирующий 24.53 GB/s на серверном AMD EPYC 9565. Это в 989 раз быстрее HuggingFace tokenizers и в 681 раз быстрее tiktoken — при том что оба бейзлайна сами написаны на многопоточном Rust.

Gigatoken: токенизатор на Rust в 989 раз быстрее HuggingFace

Gigatoken — MIT-лицензированный BPE-токенизатор, написанный на Rust, который токенизирует текст со скоростью 24.53 GB/s на 144-ядерном AMD EPYC 9565. Это в 989 раз быстрее HuggingFace tokenizers и в 681 раз быстрее tiktoken. Примечательно: оба конкурента уже написаны на многопоточном Rust. Прирост достигнут не за счёт ускорения BPE-цикла слияний, а через два конкретных приёма: hand-written SWAR-претокенизатор и кэширование претокенов.

Контекст

Токенизация — первый и последний шаг в любом LLM-пайплайне. Прежде чем GPT-4, Claude или Qwen обработают текст, он должен быть разбит на токены. BPE (Byte Pair Encoding) — стандартный алгоритм: он разбивает текст на субслова по статистике совпадений. Его используют OpenAI в tiktoken, HuggingFace в своей библиотеке tokenizers, а также большинство команд, строящих пайплайны на базе LLaMA, Mistral, Qwen. Алгоритм хорошо известен, реализации устоялись — и в этом была проблема.

HuggingFace tokenizers — де-факто стандарт индустрии. Написан на Rust, активно поддерживается, используется в миллионах пайплайнов по всему миру. tiktoken от OpenAI — специализированный инструмент для GPT-серий, тоже Rust-based и быстрый. Побить их обоих почти в тысячу раз — значит найти принципиально другой угол атаки. Gigatoken не ускорял BPE-цикл слияния напрямую. Вместо этого был переработан претокенизатор с применением техники SWAR (SIMD Within A Register) — она позволяет обрабатывать несколько байт параллельно внутри одного CPU-регистра без специальных SIMD-инструкций. Второй инструмент — кэш претокенов, который убирает повторные вычисления на горячих паттернах текста.

Бенчмарк проводился на реальном серверном железе: 144-ядерный AMD EPYC 9565 — платформа уровня датацентра. С поправкой на экстремальный параллелизм разница всё равно колоссальная: она указывает на то, что пространство оптимизаций в этой задаче было значительно больше, чем казалось.

Аналитика

Токенизация кажется мелочью рядом с inference на GPU. Но в production с высокой нагрузкой — обработка тысяч документов в секунду, RAG-пайплайны с большими корпусами, batch-препроцессинг для fine-tuning — токенизатор реально становится узким местом. Если он занимает 10–20% CPU-времени, высвободить его означает либо снизить latency первого токена, либо обрабатывать больший объём на том же железе.

Важнее другое: MIT-лицензия означает коммерческое использование без ограничений. Любой стартап, строящий LLM-инфраструктуру, может встроить Gigatoken завтра. Это вписывается в устойчивый тренд: пока модели конкурируют по качеству, инфраструктурный слой — токенизаторы, serving-фреймворки, векторные базы — быстро коммодитизируется и открывается. Тот, кто контролирует unit economics inference, строит защищённую позицию.

Для AI-first компаний, запускающих агентные системы с тысячами вызовов в день, оптимизация каждого слоя пайплайна — не опция. Gigatoken — пример того, как правильная low-level оптимизация в системном языке радикально меняет характеристики системы без изменения бизнес-логики. Именно такие решения и дают конкурентное преимущество на уровне себестоимости.

Кейсы применения в бизнесе

B2B SaaS стартап с LLM-пайплайном. Если вы обрабатываете документы клиентов — договоры, тикеты, контент — через RAG или агентов, добавление Gigatoken в препроцессинг снижает CPU-нагрузку на токенизацию и уменьшает latency первого ответа. На нагрузке в тысячи документов в день это выражается в реальной экономии на вычислительных ресурсах и возможности масштабироваться без апгрейда железа.

Корпорация или исследовательская команда с большим ML-пайплайном. При fine-tuning или batch-inference на больших корпусах — десятки GB текста — время препроцессинга датасетов сокращается ощутимо. Это ускоряет эксперименты и итерации: обычно они упираются не в GPU, а именно в подготовку данных.

SMB или локальный бизнес в КР/СНГ, выстраивающий AI-автоматизацию на арендованных VPS: Gigatoken снижает требования к CPU для задач токенизации. На ограниченном железе это означает возможность обрабатывать больший объём при тех же расходах на инфраструктуру — особенно актуально при работе с русскоязычными и кыргызскоязычными текстами, где BPE-паттерны отличаются от английских.

Кейсы в личной жизни

Разработчик, строящий локальные AI-инструменты. Если вы разрабатываете CLI-утилиты или локальные агентные системы на Rust — Gigatoken как зависимость заменяет стандартный токенизатор и даёт существенный прирост на больших текстах. Особенно полезно при локальном запуске моделей, где каждая миллисекунда препроцессинга ощутима.

Исследователь или студент ML. При работе с датасетами для экспериментов — fine-tuning, оценка длины контекста, анализ токенизации на разных языках — быстрый токенизатор экономит часы. Если вы токенизируете несколько GB текста для дипломной или исследовательской работы, разница в скорости ощущается физически.

Python-разработчик или data-инженер, активно работающий с большими текстовыми массивами: стоит проверить наличие Python-биндингов через PyO3 или maturin — это стандартный путь переноса Rust-библиотек в Python-экосистему. Если биндинги появятся, замена tiktoken в существующем коде может быть делом одной строки импорта.

Как применить сегодня

  • Найти репозиторий Gigatoken на GitHub (поиск по названию «gigatoken rust tokenizer») и изучить документацию по установке и поддерживаемым форматам.
  • Провести бенчмарк на своих реальных данных: замерить время токенизации с текущим инструментом и с Gigatoken — на корпусе от 100 MB разница будет наглядной.
  • Приоритизировать применение в batch-препроцессинге датасетов перед fine-tuning или RAG-индексацией — именно там выигрыш в скорости наиболее ощутим и переводится в прямую экономию времени.
  • Проверить совместимость с форматами токенизаторов нужных вам моделей — GPT-2 (cl100k) заявлен; для Qwen, LLaMA, Mistral совместимость уточняйте по документации репозитория.
  • Для Python-команд: следить за появлением PyO3/maturin-биндингов — это откроет использование Gigatoken без перехода на Rust.
← Все статьи