资讯动态

tiktoken o200k_base 完整指南:如何快速完成安装、编码与 token 计数

发布时间:2026/9/8 20:49:11 来源:尧图企业网站定制
tiktoken o200k_base 完整指南如何快速完成安装、编码与 token 计数【免费下载链接】tiktokentiktoken is a fast BPE tokeniser for use with OpenAIs models.项目地址: https://gitcode.com/GitHub_Trending/ti/tiktoken在把提示词发给 gpt-4o 或 o1 之前你得先算出它占多少 token否则上下文长度和成本预算都会跟着错。tiktoken 是 OpenAI 开源的 BPE 分词器o200k_base 是 gpt-4o、o1、o3、gpt-5 这批模型实际使用的编码。它适合需要本地统计 token、做上下文预算、给模型喂数据前预处理文本的人数出来的 token 数和官方 API 返回的一致。 关键数字速览项目值当前版本0.13.0Python 要求≥ 3.9词表规模约 200,000 tokencl100k_base 约 100,000适配模型gpt-4o、o1、o3、o4-mini、gpt-5、gpt-4.1o200k_base 相比 cl100k_base 变了什么和旧方案比有三处变化直接影响你的 token 数。词表从约 100,000 扩到约 200,000多出的空间用来存更高频的词组合同样的文本能用更少的 token 表示。切分规则重写。新编码把字母、数字、标点、空白拆成独立分支处理中英混排、代码和特殊符号的文本更倾向于在自然边界处断开而不是把一个词拦腰切断。每个编码的词表地址和特殊 token 定义写在 tiktoken_ext/openai_public.py。速度没有因为词表翻倍而变慢。官方给出的数据是它比同类开源分词器快 3 到 6 倍平均一个 token 对应约 4 字节原文这个比例可以直接拿来估上下文预算。 o200k_base 安装与最小示例先在终端执行pip install tiktoken再运行下面这段代码import tiktoken enc tiktoken.get_encoding(o200k_base) text 你好世界o200k_base 编码测试。 tokens enc.encode(text) print(len(tokens), tokens) print(enc.decode(tokens) text)跑完应该看到两行输出第一行是一个数字即这段文本的 token 数第二行是True说明解码结果和原文完全一致编码可用。如果不确定某个模型该配哪个编码用tiktoken.encoding_for_model(gpt-4o)直接按模型名查映射关系维护在 tiktoken/model.py。同一段文本新旧编码的差异维度cl100k_baseo200k_base词表规模约 100,000约 200,000适配模型gpt-4、gpt-3.5-turbo、text-embeddinggpt-4o、o1、o3、gpt-5相同文本 token 数偏多偏少endoftext token 编号100,257199,999同一句提示词用 o200k_base 编码token 数通常比 cl100k_base 少因为词表更大、更多组合能整词表示。切分时新编码还按 Unicode 大小写类别区分字母多语言文本断得更准。️ 三个常见坑现象、原因与处理现象一调用get_encoding(o200k_base)报ValueError: Unknown encoding。原因是本地 tiktoken 版本太旧还没注册这个编码。处理执行pip install -U tiktoken升级到最新版当前 0.13.0再试。现象二第一次调用很慢之后秒回。原因是首次会把约 20 万行的词表从官方地址下载到本地缓存第二次起直接读缓存。处理属正常现象无需处理如果环境连不上外网可以设置TIKTOKEN_CACHE_DIR环境变量指向已放好的缓存目录。现象三自己数的 token 和 API 返回的usage对不上。原因多半是编码选错——拿 o200k_base 去数 gpt-4 或 gpt-3.5-turbo 的请求。处理改用encoding_for_model(模型名)自动匹配不要写死编码名。批量与兼容回退处理大量文本时用enc.encode_batch(texts, num_threads4)并行编码替代逐条循环速度接近线性提升。如果项目同时支持新旧模型加一层回退避免老环境直接报错def get_encoder(): try: return tiktoken.get_encoding(o200k_base) except Exception: return tiktoken.get_encoding(cl100k_base)调用get_encoder()会返回一个Encoding对象即使当前环境只有旧版本也不会抛异常。Encoding的完整接口encode、decode、encode_batch 等实现在 tiktoken/core.py。小结tiktoken 的 o200k_base 是一个约 20 万词表的 BPE 编码是 gpt-4o、o1 这批模型的官方分词标准。当你需要本地统计 token、估算上下文预算或给这批模型预处理文本时就选它。下一步把 tiktoken 升到 0.13.0用encoding_for_model替换项目里写死的编码名再对一批真实提示词跑一遍 encode/decode 对比确认无误。【免费下载链接】tiktokentiktoken is a fast BPE tokeniser for use with OpenAIs models.项目地址: https://gitcode.com/GitHub_Trending/ti/tiktoken创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价