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.