ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

tiktoken 快速上手指南:OpenAI 模型的 BPE 分词器全解

tiktoken 快速上手指南:OpenAI 模型的 BPE 分词器全解 tiktoken 快速上手指南OpenAI 模型的 BPE 分词器全解【免费下载链接】tiktokentiktoken is a fast BPE tokeniser for use with OpenAIs models.项目地址: https://gitcode.com/GitHub_Trending/ti/tiktokentiktoken 是 OpenAI 为其模型系列开发的高性能 BPE 分词器能把任意文本编码成模型实际消费的 token 序列并支持训练与扩展自有编码。适合需要在 OpenAI 相关项目中精确计 token、做大批量文本预处理或估算调用成本的 Python 开发者。调 API 前如何精确数出 token 数工程里常遇到两个问题给 OpenAI 模型发请求前输入到底占多少 token、账单会是多少大批量文本预处理时怎么把速度提上去tiktoken 是 OpenAI 官方出品的 BPE 分词器本地分出的结果与服务端模型使用的分词完全一致计数、切分、校验都能在离线环境完成。tiktoken 如何安装三步装好并跑起来一条命令装完用模型名直接取对应编码马上就能开始数 token。pip install tiktokenimport tiktoken # 按名字直接取编码 enc tiktoken.get_encoding(o200k_base) assert enc.decode(enc.encode(hello world)) hello world # 取与特定模型对应的分词器 enc tiktoken.encoding_for_model(gpt-4o)完整 API 文档写在 tiktoken/core.py模型名到编码的映射表维护在 tiktoken/model.py。比如 gpt-4o、o1、gpt-4.1 这类新模型都映射到o200k_base而 gpt-4、gpt-3.5-turbo 等旧模型用cl100k_base写错编码数出来的 token 数就不准了。BPE 原理与 tiktoken 性能对比快在哪里BPEByte Pair Encoding通过反复合并语料中最频繁的字节对来构建词表编码过程无损可逆对训练数据之外的任意文本也能工作实践中平均每 1 个 token 约对应 4 字节。⚡ 性能上tiktoken 比同类开源实现GPT2TokenizerFast快 3-6 倍测试条件为 1GB 文本、GPT-2 分词器对比版本为tokenizers0.13.2、transformers4.24.0、tiktoken0.2.0。核心 BPE 逻辑用 Rust 实现见 src/lib.rsPython 侧的编码/解码入口在 tiktoken/core.py。训练 tiktoken 自定义分词器小样本也能搞定文本属于特定领域医疗、法务、代码时不必硬套通用编码可以直接在该语料上训练一个 BPE 分词器少量文本就足够训出可用的结果。from tiktoken._educational import train_simple_encoding # 在小规模文本上训练一个 BPE 分词器 enc train_simple_encoding()教学子模块 tiktoken/_educational.py 提供了可逐步观察合并过程的训练实现想弄懂 BPE 每一步在做什么跟一遍这里的代码比读论文直观。如何创建自定义编码扩展包注册进 tiktoken增加编码有两条路直接构造Encoding对象在代码里传递最省事参数写法可参考 tiktoken_ext/openai_public.py或者用tiktoken_ext命名空间包机制注册让tiktoken.get_encoding能按名字找到它注册逻辑在 tiktoken/registry.py。走第二条路时在tiktoken_ext/下建模块并暴露ENCODING_CONSTRUCTORS字典再配合这样的setup.py打包from setuptools import setup, find_namespace_packages setup( namemy_tiktoken_extension, packagesfind_namespace_packages(include[tiktoken_ext*]), install_requires[tiktoken], )然后执行pip install ./my_tiktoken_extension即可注意不要用 editable 方式安装。3 条实用建议选对分词器、控住成本按模型名取编码优先用encoding_for_model别手敲编码名。新模型发布时映射表会更新前缀匹配机制也避免了频繁升级库。大批量预处理走批量接口encode_batch默认 8 线程配合 numpy 输出百万级语料入库时效率明显优于逐条循环。用 token 数预估成本与长度上限请求发出前先计数按约 4 字节/token的基线快速估算账单金额也能提前判断会不会撑爆上下文窗口。到这里安装、取编码、训练和扩展这条主线就走通了。tiktoken 的 API 面很小装完十几行代码就能跑通想读源码的话把仓库拉下来对照着 tiktoken/core.py 看即可git clone https://gitcode.com/GitHub_Trending/ti/tiktoken【免费下载链接】tiktokentiktoken is a fast BPE tokeniser for use with OpenAIs models.项目地址: https://gitcode.com/GitHub_Trending/ti/tiktoken创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表