← 文章 / AI技术
Hacker News 2天前 · 2026-07-23 08:56:04 · 0 阅读

GigaToken:语言模型分词速度提升约1000倍

Gigatoken

比 HuggingFace 的 tokenizers 快约1000倍,可直接替换使用。

以 GB/s 的速度为文本数据分词!

GPT-2 Speedup

注意:HF tokenizers 和 tiktoken 本身已运行在 Rust 多线程环境下。

什么是 Gigatoken?

Gigatoken 是当前最快的语言模型分词工具。它支持广泛的 CPU 硬件,以及几乎所有常用的分词器。详细的吞吐量数据(涵盖不同分词器和 CPU)请参见性能测试部分。

安装

pip install gigatoken

使用方式

你可以使用 Gigatoken 自带的 API,也可以启用兼容模式,与 HuggingFace Tokenizers 或 Tiktoken 配合使用。

兼容模式(最简单)

import gigatoken as gt

# 只需在现有 HuggingFace tokenizers 用法上做最小改动(兼容模式)
hf_tokenizer = ...
tokenizer = gt.Tokenizer(hf_tokenizer).as_hf()

# tokenizer 可在与 hf_tokenizer 相同的上下文中使用
tokens = tokenizer.encode_batch(["This is a test string", "And here is another"])

# 或与 tiktoken 配合
tiktokenizer = ...
tokenizer = gt.Tokenizer(tiktokenizer).as_tiktoken()

# 现在如同现有的 tiktoken tokenizer 一样使用
tokens = tokenizer.encode_batch(["This is a test string", "And here is another"])

我们投入了大量精力确保此模式下输出与 HuggingFace Tokenizers 完全一致,但这会带来一定的性能损耗。即便如此,你依然能获得远超之前的性能,只是达不到 Gigatoken API 那 1000 倍的提升。

Gigatoken API(最快)

import gigatoken as gt

tokenizer = gt.Tokenizer("Qwen/Qwen3-8B")  # 接受 HuggingFace 模型名
file_source = gt.TextFileSource(["owt_train.txt"], separator=b"<|endoftext|>")
tokens = tokenizer.encode_files(file_source)

使用 Gigatoken API 可以让 Rust 实现直接读取数据,尽可能跳过开销,同时实现最大并行度。注意,如果通过此 API 传递 Python 数据结构,仍会带来 Python 读取开销。

性能测试

在 owt_train.txt(11.9 GB)上的编码吞吐量 — AMD EPYC 9565 72 核处理器 × 2 插槽(共 144 核)

分词器 gigatoken HF tokenizers tiktoken vs HF vs ti

(表格数据未完整给出,请参考原项目文档。)

原始来源: Hacker News

评论 (0)