🤖Reddit r/MachineLearning•較早收集於 58m
quicktok:高效能且位元組完全相同的 BPE 分詞器
💡透過這個與 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
| 特性/產品 | quicktok | tiktoken | bpe-openai | rs-bpe | TokenDagger | fastokens |
|---|---|---|---|---|---|---|
| 實作語言 | 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.7 | 23.5 - 34.7 | 10.7 - 11.9 | 9.1x 平均加速比 (相較於 HuggingFace 詞元分析器) |
| 位元組完全相同輸出 | 是 (與 tiktoken) | 是 (與 OpenAI 模型) | 是 (與 tiktoken 演算法) | 不詳 | 是 (與 tiktoken) | 不詳 |
| 記憶體優化 | 2 位元組前綴樹、密集快取、手寫預分詞器 | 高效且資源節省 | 不詳 | 不詳 | 透過更快的 JIT 編譯正規表達式引擎和簡化演算法 | 兩級快取 (L1 執行緒本地、L2 全域共享) |
| 支援編碼 | cl100k, o200k, GPT-OSS, Llama-3, Qwen2.5/3 | cl100k_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.
📰
AI 週報
閱讀本週精選 AI 大事摘要 →
👉相關動態
AI 策展新聞聚合。所有內容版權歸原始發布者所有。
原始來源: Reddit r/MachineLearning ↗
每週 AI 簡報
每週一封,可隨時退訂。