Обзор quicktok

После длительной разработки quicktok стал мощным решением для тех, кто хочет ускорить процессы токенизации. Этот быстрый и точный BPE токенизатор, написанный на C++, полностью совместим с tiktoken и предлагает идентичные байтовые токен-идентификаторы. Примечательно, что quicktok работает в 2-3.6 раза быстрее, чем bpe-openai — самая быстрая известная альтернатива, и достигает скорости в 4-11 раз выше, чем сам tiktoken.

Ключевые особенности

quicktok поддерживает различные схемы кодирования, включая cl100k, o200k, GPT-OSS, Llama-3 и Qwen2.5/3. Его дизайн использует тот же алгоритм, что и bpe-openai, применяя точный обратный BPE, но включает усовершенствованные оптимизации структуры данных для минимизации доступа к памяти:

  • 2-байтовый Trie: Используется для эффективного поиска по длинным совпадениям.
  • Плотные кэши: Реализованы для эффективной проверки слияний.
  • Ручной предварительный токенизатор: Использует специализированное решение вместо общего регулярного выражения для повышения производительности.

Тестирование производительности

В ходе строгих тестов на чипе Apple M1 с использованием одного потока quicktok продемонстрировал впечатляющие показатели пропускной способности в МБ/с. Результаты тестирования по различным наборам данных:

КодировщикThe PileКодCommon Crawl
quicktok (native)121.7139.271.3
quicktok (Python)77.983.649.7
bpe-openai36.638.728.9
rs-bpe30.934.723.5
tiktoken-rs15.413.813.3
tiktoken (Python)13.612.812.3
TokenDagger11.111.910.7

Каждый кодировщик доступен через свой собственный сырой API, и тесты можно воспроизвести, используя команду make bench-compare в репозитории.

Заключение

Для всех, кто нуждается в более быстрой и эффективной токенизации, quicktok предлагает выдающееся решение. Установить его можно через pip с помощью команды pip install quicktok-v1, а подробнее ознакомиться с проектом можно на GitHub: quicktok Repo.