ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

tiktoken 分词器完整指南:如何为 OpenAI 模型精确计算 token

tiktoken 分词器完整指南:如何为 OpenAI 模型精确计算 token tiktoken 分词器完整指南如何为 OpenAI 模型精确计算 token【免费下载链接】tiktokentiktoken is a fast BPE tokeniser for use with OpenAIs models.项目地址: https://gitcode.com/GitHub_Trending/ti/tiktoken调用 OpenAI API 前你需要先知道 prompt 到底占多少 token。tiktoken 分词器就是为这个场景而生的它用 BPEByte Pair Encoding字节对编码通过反复合并高频字节对构建词表的算法把文本编成不可逆、可还原的 token 序列且对任意文本都有效。官方基准显示它比可比的开源 fast 分词器GPT2TokenizerFast快 3-6 倍。pip 一条命令安装 tiktoken安装走 PyPI无需手动编译 Rust 扩展pip install tiktoken想要可复现的源码版本也可以先克隆再本地安装git clone https://gitcode.com/GitHub_Trending/ti/tiktoken装好后公共 API 就是get_encoding、encoding_for_model、Encoding这几个入口分词核心逻辑全部在 tiktoken/core.py 里。按模型名取对编码并验证 token 数拿到 OpenAI API 的模型名可以直接查出它对应的分词器不用自己对照表import tiktoken enc tiktoken.encoding_for_model(gpt-4o) assert enc.decode(enc.encode(hello world)) hello worldencoding_for_model内部是精确匹配加前缀匹配两层策略见 tiktoken/model.py新模型版本发布时通常不需要升级库。如果模型名不在映射里它会直接报KeyError提示你改用tiktoken.get_encoding显式指定避免拿错编码算错账单。为什么 token 数可信BPE 编码可逆且无损能还原回原始文本它还能处理训练数据里没出现过的文本编码后的 token 序列比原始字节更短实践中平均每个 token 对应约 4 字节。所以len(enc.encode(text))就是你要的计费单位。用教育模块训练自定义分词器并可视化 BPE 过程不想手推 BPE 合并顺序的话仓库自带教学子模块 tiktoken/_educational.py两个入口值得先跑一遍train_simple_encoding()在一小段文本上从零训练一个简单 BPE 分词器看词表怎么一步步长出来SimpleBytePairEncoding.from_tiktoken(cl100k_base)加载现成编码把hello world aaaaaaaaaaaa这类输入逐 token 拆开直观看到 GPT-4 编码到底怎么切文本。这也是理解为什么常见子词比如 ing会被单独成 token最快的路径——模型反复见到同一个子词泛化效果更好。打包并发布自定义编码tiktoken_ext 插件机制有两条路。简单场景下直接用tiktoken.Encoding(name, pat_str, mergeable_ranks, special_tokens, ...)构造对象传着用即可参数示例见 tiktoken_ext/openai_public.py改动特殊 token 时记得换一个能体现行为差异的名字。需要让tiktoken.get_encoding(your_name)能直接找到你的编码才用插件机制建一个命名空间包目录结构里不要放tiktoken_ext/__init__.py编码逻辑写在tiktoken_ext/my_encodings.py里该模块暴露一个ENCODING_CONSTRUCTORS字典编码名 → 无参函数函数返回传给tiktoken.Encoding的参数字典细节看 tiktoken/registry.pysetup.py中用find_namespace_packages(include[tiktoken_ext*])并声明依赖tiktoken用pip install ./my_tiktoken_extension安装README 特别提醒不要用可编辑editable安装否则注册不会生效。源码入口与下一步分词核心 APIencode/decode/批量/offsets 等tiktoken/core.py内置编码注册表tiktoken/registry.py性能基准的原始数据图perf.svg安装命令是pip install tiktoken。下一步建议先跑通encoding_for_model对一次真实 prompt 计数再用_educational模块看一遍合并过程把token 从哪来彻底搞清楚。【免费下载链接】tiktokentiktoken is a fast BPE tokeniser for use with OpenAIs models.项目地址: https://gitcode.com/GitHub_Trending/ti/tiktoken创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表