🤖較早收集於 58m

quicktok:高效能且位元組完全相同的 BPE 分詞器

PostLinkedIn
🤖閱讀原文: Reddit r/MachineLearning

💡透過這個與 tiktoken 完全相容的替代方案,將您的 LLM 推論速度提升 4 至 11 倍。

⚡ 30-Second TL;DR

有什麼變化

相較於標準 tiktoken 實作,效能提升 4 至 11 倍。

為什麼重要

此工具顯著降低了分詞密集型 LLM 管線中的延遲瓶頸,對於高吞吐量的推論系統而言是一項關鍵的最佳化。

下一步行動

使用 `pip install quicktok-v1` 取代現有的 tiktoken 依賴,立即加速您的 LLM 資料預處理管線。

誰應關注:Developers & AI Engineers

關鍵要點

  • 相較於標準 tiktoken 實作,效能提升 4 至 11 倍。
  • 確保與現有工作流程相容的位元組完全相同輸出。
  • 利用 2-byte trie 與手寫預分詞器來最小化記憶體開銷。
  • 支援 cl100k、o200k、GPT-OSS、Llama-3 與 Qwen2.5/3 等熱門編碼。

🧠 深度解析

背景與延伸:來自公開資料,非原文內容。引用 13 個來源。

🔑 增強重點摘要

  • quicktok 採用與 bpe-openai 相同的精確回溯 BPE 演算法,這是一種在大型語言模型詞元化中廣泛使用的子詞分詞方法。
  • 其顯著的效能提升主要歸因於精密的資料結構工程,包括用於最長匹配遍歷的 2 位元組前綴樹(2-byte trie)、用於合併有效性檢查的密集精確鍵快取,以及取代通用正規表達式引擎的手寫預分詞器。
  • 在 Apple M1 單執行緒基準測試中,quicktok 的原生 C++ 實作在處理不同文本類型(如 The Pile、Code、Common Crawl)時,速度可達 71.3 MB/s 至 139.2 MB/s,相較於 tiktoken 的 Python 實作(12.3 MB/s 至 13.6 MB/s)有顯著優勢。
  • Llama 3 的詞元分析器是基於 tiktoken 的 BPE 模型,這標誌著與 Llama 2 不同,後者採用的是 Google 開發的 SentencePiece 子詞詞元分析庫。
  • Qwen3 的詞元分析器與 Qwen2.5 的詞元分析器高度相似,主要區別在於 Qwen3 額外增加了四個特殊詞元(如 ''、'<tool_response>'),以支援更複雜的代理功能。
📊 競品分析▸ Show
特性/產品quicktoktiktokenbpe-openairs-bpeTokenDaggerfastokens
實作語言C++ (帶有 Python 綁定)Python (帶有 Rust 核心)不詳 (但 quicktok 稱其為最快替代方案之一)Rust (帶有 Python 綁定)C++17 (帶有 Python 綁定)Rust
效能 (Apple M1, MB/s)71.3 - 139.2 (原生 C++)12.3 - 13.6 (Python)28.9 - 38.723.5 - 34.710.7 - 11.99.1x 平均加速比 (相較於 HuggingFace 詞元分析器)
位元組完全相同輸出是 (與 tiktoken)是 (與 OpenAI 模型)是 (與 tiktoken 演算法)不詳是 (與 tiktoken)不詳
記憶體優化2 位元組前綴樹、密集快取、手寫預分詞器高效且資源節省不詳不詳透過更快的 JIT 編譯正規表達式引擎和簡化演算法兩級快取 (L1 執行緒本地、L2 全域共享)
支援編碼cl100k, o200k, GPT-OSS, Llama-3, Qwen2.5/3cl100k_base, o200k_base, p50k_base, r50k_base (OpenAI 模型)不詳不詳Llama 3, Mistral, GPT-3.* 等DeepSeek-V3.2, MiniMax-M2.1, Mistral-Nemo, GPT-OSS-120B
主要優勢極致效能、與 tiktoken 位元組完全相同、低記憶體開銷OpenAI 官方詞元分析器、高效、規則基礎快速的替代方案Rust 實作的效能優勢C++ 實作、專注於原始速度Rust 實作、顯著降低 TTFT
定價開源 (免費)開源 (免費)開源 (免費)開源 (免費)開源 (免費)開源 (免費)

🛠️ 技術深入

  • 核心演算法: quicktok 採用精確回溯 BPE (Byte Pair Encoding) 演算法,與 bpe-openai 所使用的演算法相同。
  • 實作語言: 主要以 C++ 編寫,並提供 Python 綁定以實現無縫整合。
  • 記憶體與效能優化:
    • 2 位元組前綴樹 (2-byte trie): 用於執行最長匹配遍歷,以加速詞元查找過程。
    • 密集精確鍵快取 (Dense exactly-keyed caches): 用於快速檢查合併規則的有效性,減少重複計算。
    • 手寫預分詞器 (Hand-compiled pretokenizer): 取代了通用正規表達式引擎,提供更高效的文本預處理,進一步最小化記憶體開銷。
  • 位元組級別相容性: 確保其詞元 ID 輸出與 tiktoken 完全相同,這對於依賴特定詞元化行為的模型至關重要。
  • 支援編碼: 內建支援多種熱門編碼,包括 cl100k、o200k、GPT-OSS、Llama-3 和 Qwen2.5/3。

🔮 前景展望AI analysis grounded in cited sources

降低大型語言模型推論成本與延遲。
quicktok 更快的詞元化處理速度,尤其是在處理長上下文時,能顯著減少 CPU 瓶頸,從而降低整體推論時間和相關運算成本。
促進邊緣設備上的 LLM 應用。
quicktok 的高效能和低記憶體佔用使其非常適合資源受限的邊緣設備,有助於將大型語言模型部署到更多本地應用中。
簡化多模型工作流程的整合。
quicktok 對多種主流模型編碼的支援,同時保持與 tiktoken 的位元組完全相同輸出,將使開發者能夠在不同模型之間無縫切換,而無需擔心詞元化不一致的問題。

時間線

1994
Byte-Pair Encoding (BPE) 演算法首次被 Philip Gage 描述為一種文本壓縮方法。
2016
Sennrich 等人將 BPE 演算法應用於神經機器翻譯,使其成為大型語言模型的標準詞元化方法。
2022-10
OpenAI 發布 tiktoken,一個用於其大型語言模型的快速 BPE 詞元化庫。
2026-06-16
quicktok 在 Reddit r/MachineLearning 上發布,宣稱其為高效能且與 tiktoken 位元組完全相同的 C++ BPE 詞元器。

📎 來源 (13)

Factual claims are grounded in the sources below. Forward-looking analysis is AI-generated interpretation.

  1. reddit.com
  2. outcomeschool.com
  3. llm-calculator.com
  4. huggingface.co
  5. huggingface.co
  6. hf.space
  7. github.com
  8. ycombinator.com
  9. crusoe.ai
  10. galileo.ai
  11. buildfastwithai.com
  12. datacamp.com
  13. medium.com
📰

AI 週報

閱讀本週精選 AI 大事摘要 →

👉相關動態

AI 策展新聞聚合。所有內容版權歸原始發布者所有。
原始來源: Reddit r/MachineLearning

這是摘要,不是原文。去看原站,或訂閱每週簡報。

每週 AI 簡報

每週一封,可隨時退訂。