Обзор 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.7 | 139.2 | 71.3 |
| quicktok (Python) | 77.9 | 83.6 | 49.7 |
| bpe-openai | 36.6 | 38.7 | 28.9 |
| rs-bpe | 30.9 | 34.7 | 23.5 |
| tiktoken-rs | 15.4 | 13.8 | 13.3 |
| tiktoken (Python) | 13.6 | 12.8 | 12.3 |
| TokenDagger | 11.1 | 11.9 | 10.7 |
Каждый кодировщик доступен через свой собственный сырой API, и тесты можно воспроизвести, используя команду make bench-compare в репозитории.
Заключение
Для всех, кто нуждается в более быстрой и эффективной токенизации, quicktok предлагает выдающееся решение. Установить его можно через pip с помощью команды pip install quicktok-v1, а подробнее ознакомиться с проектом можно на GitHub: quicktok Repo.



