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

发布时间:2026/9/8 17:03:18

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),仅供参考

相关新闻

Cobra 文档生成实战:用 spf13/cobra/doc 包为命令树自动生成 ReST 文档

Cobra 文档生成实战:用 spf13/cobra/doc 包为命令树自动生成 ReST 文档

2026/9/8 17:03:18

Cobra 文档生成实战:用 spf13/cobra/doc 包为命令树自动生成 ReST 文档 【免费下载链接】cobra A Commander for modern Go CLI interactions 项目地址: https://gitcode.com/GitHub_Trending/co/cobra 本文以 Cobra 仓库的 ReST 文档生成指南 为核心&#x…

Ultralytics SAM 模型接口全解析:统一 Segment Anything(SAM / SAM2 / SAM3)家族的 Python API 参考

Ultralytics SAM 模型接口全解析:统一 Segment Anything(SAM / SAM2 / SAM3)家族的 Python API 参考

2026/9/8 16:53:17

Ultralytics SAM 模型接口全解析:统一 Segment Anything(SAM / SAM2 / SAM3)家族的 Python API 参考 【免费下载链接】ultralytics Ultralytics YOLO26, YOLO11, YOLOv8 — object detection, instance segmentation, semantic segmentation,…

pot-desktop 生词本使用指南:划词翻译单词如何一键收藏

pot-desktop 生词本使用指南:划词翻译单词如何一键收藏

2026/9/8 16:53:17

pot-desktop 生词本使用指南:划词翻译单词如何一键收藏 【免费下载链接】pot-desktop 🌈一个跨平台的划词翻译和OCR软件 | A cross-platform software for text translation and recognition. 项目地址: https://gitcode.com/GitHub_Trending/po/pot-d…

Hermes Agent 更新与维护:从备份到回滚的完整实战指南

Hermes Agent 更新与维护:从备份到回滚的完整实战指南

2026/9/8 17:53:20

这几年只要做过 AI Agent 相关项目的人,多少都会遇到一个尴尬的阶段:Agent 装好了、跑起来了,演示的时候效果也不错,但用着用着就开始出问题——回答变飘、工具调用偶尔失灵、记忆越来越乱,甚至某天更新完一个依赖&…

LiteLLM Dashboard 页面开发规范:基于 Next.js App Router 的目录结构与组件组织实践

LiteLLM Dashboard 页面开发规范:基于 Next.js App Router 的目录结构与组件组织实践

2026/9/8 17:53:20

LiteLLM Dashboard 页面开发规范:基于 Next.js App Router 的目录结构与组件组织实践 【免费下载链接】litellm The fastest, litest AI Gateway. Rust core with Python SDK. Call 100 LLM APIs in OpenAI (or native) format with cost tracking, guardrails, loa…

Vue Router从入门到实践:SPA路由的核心机制与踩坑指南

Vue Router从入门到实践:SPA路由的核心机制与踩坑指南

2026/9/8 17:53:20

前阵子有个朋友找我排查一个“页面跳动”的问题。他的Vue项目点菜单跳转时,页面总会闪一下白底,然后新内容才出现。我看完代码,发现问题的根源不在CSS,也不在某段异步逻辑,而是整份代码里完全没有引入vue-router&#…

用 MediaMTX 搭建低延迟直播:从 SRT 推流到 WebRTC 播放的完整指南

用 MediaMTX 搭建低延迟直播:从 SRT 推流到 WebRTC 播放的完整指南

2026/9/8 17:53:20

用 MediaMTX 搭建低延迟直播:从 SRT 推流到 WebRTC 播放的完整指南 【免费下载链接】mediamtx Ready-to-use Media-over-QUIC / SRT / WebRTC / RTSP / RTMP / LL-HLS / MPEG-TS / RTP live media server and media proxy that allows to read, publish, proxy, rec…

D20 | 上线与监控:从 Demo 到生产环境的最后一公里

D20 | 上线与监控:从 Demo 到生产环境的最后一公里

2026/9/8 17:53:20

文章目录 D20 | 上线与监控:从 Demo 到生产环境的最后一公里 写在前面 一、Demo 到生产的 3 大鸿沟 鸿沟 ①:可访问性(Accessibility) 鸿沟 ②:稳定性(Reliability) 鸿沟 ③:可观测性(Observability) 二、部署 4 选项 2.1 全景对比 2.2 推荐:中小项目用 Vercel 或阿…

Flutter integration_test 示例工程实战:用 flutter drive 跑通 Android/iOS/Web 端到端测试

Flutter integration_test 示例工程实战:用 flutter drive 跑通 Android/iOS/Web 端到端测试

2026/9/8 17:43:19

Flutter integration_test 示例工程实战:用 flutter drive 跑通 Android/iOS/Web 端到端测试 【免费下载链接】flutter Flutter makes it easy and fast to build beautiful apps for mobile and beyond 项目地址: https://gitcode.com/GitHub_Trending/flutter41…

中国人民大学杨琳团队《Nature Communications》 | 全球潮汐湿地土壤有机碳时空格局与环境驱动:一项2009-2020年的全球评估

中国人民大学杨琳团队《Nature Communications》 | 全球潮汐湿地土壤有机碳时空格局与环境驱动:一项2009-2020年的全球评估

2026/9/7 20:21:46

本文首发于“生态学者”!从“湿地面积”到“土壤碳密度”:为什么需要重新认识潮汐湿地蓝碳变化?潮汐湿地位于陆地与海洋的交汇地带,包括红树林、盐沼和潮滩,是全球重要的蓝碳生态系统。其土壤能够长期储存大量有机碳&a…

adb抓包

adb抓包

2026/9/8 4:55:53

前言 本文介绍如何通过 tcpdump 在 Android 手机上抓取网络数据包,并在电脑端使用 Wireshark 进行分析。适用于需要排查 App 网络请求、分析接口调用或调试网络问题的开发与测试场景。1. 手机要有 root 权限2. 下载 tcpdump3. adb push C:\Users\zhangkuixun\Downlo…

大模型推理镜像极简瘦身:从 25GB 巨无霸到 3GB 精简镜像实战

大模型推理镜像极简瘦身:从 25GB 巨无霸到 3GB 精简镜像实战

2026/9/7 8:03:37

大模型推理镜像极简瘦身:从 25GB 巨无霸到 3GB 精简镜像实战 在云原生基础设施中,容器镜像体积直接决定了服务的部署速度与弹性扩容敏捷度。对于传统的 Go / Java 微服务,镜像体积通常被严格控制在 50MB 到 200MB 以内,拉取镜像只…

芯片良率波动可视化:动画拆解工艺因果,重建客户信任

芯片良率波动可视化:动画拆解工艺因果,重建客户信任

2026/9/8 0:02:30

芯片这个行业有个不太被人摆到台面上、但几乎每天都在发生的场景:客户拿着一条良率曲线截图问你,这批货的良率怎么掉了三个点,是不是工艺出问题了,产生的不良会不会流到他们产线上去。你解释了半天,客户似懂非懂&#…

PyTorch DataLoader参数冲突:sampler与shuffle互斥的根源与正确写法

PyTorch DataLoader参数冲突:sampler与shuffle互斥的根源与正确写法

2026/9/8 0:02:30

ValueError: sampler option is mutually exclusive with shuffle,这个报错我在 PyTorch 的 DataLoader 上至少见过几十次了,而且很有意思的是,它经常不是新手专属——很多写了好几年模型的老手,在从单机改成自定义采样器&#xf…

中国车企再破谣言,GAC吉利零跑获欧盟安全五星

中国车企再破谣言,GAC吉利零跑获欧盟安全五星

2026/9/8 0:02:30

有人可能在网上开着皮卡拍视频,声称中国电动车不仅性能不如美国大排量车型,安全性也堪忧。然而事实恰恰相反,GAC、吉利和零跑最新推出的电动车型在极为严苛的欧盟新车安全评鉴(Euro NCAP)测试中全部斩获满分。就在特斯…

远程协作的工作台整理

远程协作的工作台整理

2026/9/8 4:23:39

远程协作的工作台整理远程协作的核心不是再加一个工具,而是让交接信息足够完整。异步任务要写明目标、输入位置、完成标准和需要决策的人。 工作台的最小配置 将日程、待办、代码和沟通入口收拢到少数固定位置;通知按紧急程度分层。工作台不需要模仿办公…

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

2026/9/8 3:19:39

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

2026/9/8 4:00:23

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…