
gigatoken
用 Rust 把分词速度拉到 GB/s,告别数据预处理瓶颈
项目预览
项目数据
项目介绍
Star 增长趋势
本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整
数据来源:GitHub API 逐日快照 · 收录于 2026-08-09 · 当前星标 ★ 4153
技术标签
使用教程
环境要求
- 已安装 Python 与 pip(README 未指定最低 Python 版本)
- 一个已存在的分词器实例:HuggingFace Tokenizers 或 tiktoken(仅兼容模式需要)
- 无需本地 Rust 工具链,README 仅提供 pip 安装方式
安装与启动步骤
-
1安装 gigatoken
README 只给出 pip 这一种安装方式,直接在目标 Python 环境中执行即可;建议使用虚拟环境避免污染全局依赖。
pip install gigatoken -
2包装 HuggingFace 分词器
导入 gigatoken,并用 gt.Tokenizer(hf_tokenizer).as_hf() 包装你已有的 HuggingFace 分词器,hf_tokenizer 需替换为真实实例。
import gigatoken as gt # Minimum change from existing HuggingFace tokenizers usage (compatibility mode) hf_tokenizer = ... tokenizer = gt.Tokenizer(hf_tokenizer).as_hf() -
3批量编码文本
包装后的 tokenizer 可放在和原 hf_tokenizer 相同的调用场景中,用 encode_batch 一次传入多条文本进行批量分词。
tokens = tokenizer.encode_batch(["This is a test string", "And here is another"]) -
4切换到 tiktoken 模式
如果已有 tiktoken 分词器,用 as_tiktoken() 包装,之后即可按 tiktoken 的用法调用 encode_batch。
tokenizer = gt.Tokenizer(tiktokenizer).as_tiktoken() tokens = tokenizer.encode_batch(["This is a test string", "And here is another"])
如何确认成功
执行 python -c "import gigatoken as gt" 无报错,且调用 tokenizer.encode_batch([...]) 能正常返回分词结果,即安装成功。
常见问题
Q:兼容模式的输出和 HuggingFace Tokenizers 完全一致吗?
A:README 说明已投入大量精力确保兼容模式下输出与 HuggingFace Tokenizers 完全一致,但这一致性会带来不可忽略的性能损耗。
Q:需要自己编译 Rust 吗?
A:README 只提供 pip install gigatoken 一种安装方式,未要求本地安装 Rust 工具链或从源码编译。
Q:gigatoken 比 HuggingFace 快多少?
A:README 标题称约 1000x faster,并说明 HuggingFace tokenizers 与 tiktoken 本身已是多线程 Rust 实现。
Q:支持哪些分词算法和分词器?
A:README 称支持 BPE、WordPiece 等主流分词算法,并可通过兼容模式对接 HuggingFace Tokenizers 与 tiktoken。
注意事项
- 兼容模式为保证输出与 HuggingFace 完全一致会牺牲性能,追求极致速度时可考虑使用 gigatoken 自己的 API。
- 对比基准中的 HuggingFace tokenizers 和 tiktoken 本身已经是多线程 Rust 实现,理解加速倍数时需注意这一点。
- README 中 hf_tokenizer = ... 与 tiktokenizer = ... 是占位写法,实际使用时必须替换成你自己已加载的分词器对象。
核心亮点
- 分词速度达到 GB/s 级别,比主流分词器快数倍,实测可大幅缩短大规模语料处理时间
- 提供与 Hugging Face Tokenizers 兼容的 API,迁移成本低,可无缝替换现有工作流
- 基于 Rust 实现,内存安全且支持并行处理,在多核 CPU 上能线性扩展吞吐量
不足之处
- 项目仍处于早期阶段,API 和功能可能不够稳定,需要关注版本迭代
- 文档和示例相对较少,新用户上手可能需要参考源码或社区讨论
适用场景
- 大模型预训练前的大规模语料清洗和分词,提升数据管道效率
- 实时推理服务中需要低延迟分词,减少请求响应时间
- 研究或生产环境中处理多语言、超长文本的分词任务
替代项目
Hugging Face Tokenizers、tokenizers-rs、sentencepiece
上一篇:kimi-k3-in-c
下一篇:FastDeploy
同类项目推荐
HuggingFaceModelDownloader
开源
不装 Python,一条命令拉取 HuggingFace 模型和数据集
Simple go utility to download HuggingFace Models and Datasets
awesome-llmops
开源
一站式收藏 LLMOps 工具,快速上手大模型运维
Awesome series for LLMOps
noronha
开源
用声明式管道搞定 ML 数据流程,快速上线模型
DataOps framework for Machine Learning projects.
inferencedb
开源
把实时模型推理结果一键流入数据湖,方便后续分析
Stream inferences of real-time ML models in production to any data lake (Experimenta···
inferoxy
开源
一键部署 Docker 化 CV 模型,快速上线推理服务
Service for quick deploying and using dockerized Computer Vision models
ComfyUI-Nvidia-Docker
开源
一条命令拉起带 GPU 的 ComfyUI,权限不打架
ComfyUI for NVIDIA GPU in a Docker container with user configurable uid/gid
Docker-Warp-Socks
开源
一键启动 WARP SOCKS5 代理,让容器内应用秒连 CloudFlare 网络。
Connet to CloudFlare WARP, exposing `socks5` proxy all together.
llama_deploy
开源
把 LlamaIndex 智能体工作流一键部署成生产级微服务
Deploy your agentic worfklows to production
rivet
开源
给 AI 智能体和协作应用装上持久记忆与实时状态
The orchestrator for agentic workloads. A fast, high-density and scalable orchestrat···