Новость

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

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

Редакция Gruzdevv.ru
2 мин
GigaToken: новый токенизатор для LLM обещает ускорение обработки текста до 1000 раз

Марсель Рёд (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)

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

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