Опубликовано: 22 июля 2026 г.

GigaToken: новый токенизатор для LLM обещает ускорение обработки текста до 1000 раз

Марсель Рёд представил открытую библиотеку GigaToken на Rust, обеспечивающую сверхбыструю токенизацию текстов для LLM с производительностью более гигабайта в секунду.

Марсель Рёд (Marcel Rød) представил открытую библиотеку GigaToken, предназначенную для токенизации текстов при подготовке данных для больших языковых моделей. Решение создавалось как прямая замена популярным инструментам HuggingFace Tokenizers и tiktoken от OpenAI — с принципиально иной производительностью.

Узким местом при работе с LLM часто является этап предобработки. GigaToken, полностью написанный на Rust, использует SIMD-инструкции и кэширование результатов претокенизации, чтобы снять это ограничение. По утверждению автора, библиотека способна обрабатывать данные со скоростью более гигабайта в секунду.

В тестах на наборе данных owt_train.txt (11,9 ГБ) с токенизатором GPT-2 разница оказалась кратной. На сервере с двумя процессорами AMD EPYC 9565 (144 ядра) GigaToken обработал файл за 0,486 секунды (5564,94 млн токенов в секунду). Для сравнения: оригинальный токенизатор HuggingFace на том же стенде справился со стомегабайтным срезом за 4 секунды. Итоговый отрыв составил 989–1353 раза в пользу новинки в зависимости от аппаратной платформы.

На Apple M4 Max (16 ядер) GigaToken показал 1887,23 млн токенов в секунду при скорости чтения 8327 МБ/с. Разработчик подсчитал, что при таких показателях токенизация всего датасета Common Crawl (около 130 триллионов токенов) на EPYC 9565 заняла бы примерно 6,5 часов.

Ключевая особенность GigaToken — два режима работы. Совместимый (Compatibility Mode) через методы .as_hf() или .as_tiktoken() гарантирует полное совпадение результатов с исходными библиотекой, но с меньшим приростом скорости. Нативный API позволяет читать файлы напрямую из Rust, минуя накладные расходы Python, и даёт максимальную производительность.

Чтобы попробовать инструмент, достаточно выполнить pip install gigatoken. После этого можно токенизировать данные, указав имя модели с HuggingFace:

import gigatoken as gt
tokenizer = gt.Tokenizer("Qwen/Qwen3-8B")
tokens = tokenizer.encode_files(gt.TextFileSource(["data.txt"]))

Стоит учитывать, что текущая версия — 0.9.0, и проект пока находится на ранней стадии. В списке известных ограничений числятся отсутствие поддержки WordPiece, неполная оптимизация SentencePiece и слабая протестированность под Windows. Кроме того, в совместимом режиме сохраняются некоторые накладные расходы на взаимодействие с Python.

Код опубликован на GitHub (693 звезды на момент написания) под лицензией MIT и сопровождается инструкцией по цитированию для академических работ.

Источник: https://github.com/marcelroed/gigatoken/

Поделиться

Обсудить с ИИ

Комментарии(0)

Оставьте комментарий

Войдите, чтобы присоединиться к обсуждению

Читайте также