1GB 文本分词提速 3 倍:tiktoken BPE 分词器五分钟跑通

发布时间:2026/9/8 22:19:27
1GB 文本分词提速 3 倍:tiktoken BPE 分词器五分钟跑通 1GB 文本分词提速 3 倍tiktoken BPE 分词器五分钟跑通【免费下载链接】tiktokentiktoken is a fast BPE tokeniser for use with OpenAIs models.项目地址: https://gitcode.com/GitHub_Trending/ti/tiktoken一 GB 文档集卡在分词这一步终端转了四分钟没有进度条同事那边已经跑完开始看结果了。区别只在换了一个库tiktokenOpenAI 为自家模型写的快速 BPEByte Pair Encoding分词器它干的就一件事——把文本转成 token并且转得很快。一行安装三行跑通pip install tiktoken装完就能用不用先拉一堆 transformers 的依赖。import tiktoken enc tiktoken.get_encoding(o200k_base) print(enc.encode(hello world)) # 或者一行拿到某个模型对应的编码 enc tiktoken.encoding_for_model(gpt-4o)返回值是 token ID 列表想还原回文本再跑一次enc.decode(ids)就行往返无损。encoding_for_model内部做的是模型名到编码名的映射gpt-4o、gpt-4.1、o1、o3 这类走o200k_basegpt-4、gpt-3.5-turbo 以及 embedding 系列走cl100k_base。匹配走前缀比如模型名只要以gpt-4o-开头就能命中OpenAI 发新版模型时通常不用急着升库。真实数字1GB 文本快 3-6 倍仓库里给出的实测数据用 GPT-2 分词器处理 1GB 文本tiktoken 比 HuggingFace 的GPT2TokenizerFast快3-6 倍对照组是 tokenizers0.13.2 加 transformers4.24.0。原因不神秘核心编码循环用 Rust 写Python 侧只是薄壳批量场景还能用encode_ordinary_batch把线程数拉上去。你要是对着大语料算 token 数这个差距就是跑一晚上和咖啡没凉就出结果的差别。深入一步把自定义编码挂进 get_encoding如果现成编码不够用、要改词表轻量路线是先拿一个已有编码的参数自己组装一个tiktoken.Encoding对象增删几个 special tokens 即可。重一点的是tiktoken_ext插件机制让tiktoken.get_encoding(你的名字)能直接找到你的编码。做法建一个名叫tiktoken_ext的命名空间包注意不放__init__.py里面放一个my_encodings.py定义ENCODING_CONSTRUCTORS字典——键是编码名值是无参的构造函数setup.py里声明install_requires[tiktoken]然后pip install ./my_tiktoken_extension不能用 editable 安装。官方自带的示例看 tiktoken_ext/openai_public.py插件的发现与加载逻辑在 tiktoken/registry.py。落地场景RAG 入库时加一道 token 闸门具体一点的用法你搭 RAG 管道每个 chunk 送去 gpt-4o 之前要数 token 数防止上下文超限、顺便预估 API 成本。入库环节写一行tiktoken.encoding_for_model(gpt-4o).encode(chunk)长度就是len(tokens)超了就先切再入库。下一步跑pip install tiktoken再打开 tiktoken/core.py 过一遍Encoding的完整 API五分钟就能把整条链路跑起来。【免费下载链接】tiktokentiktoken is a fast BPE tokeniser for use with OpenAIs models.项目地址: https://gitcode.com/GitHub_Trending/ti/tiktoken创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考