[控场AI]
· 4 分钟阅读· 2,319 字

ttok 1.0 发布:默认分词器转向 GPT-5/GPT-6

ttok 1.0 发布:默认分词器转向 GPT-5/GPT-6

ttok 1.0 将默认分词器切至 GPT-5/GPT-6,折射工具迭代滞后于模型更新。

Simon Willison 的 token 计数工具 ttok 发布 1.0,主要改动是把默认分词器从 GPT-4 换成 GPT-5/GPT-6。触发点是他升级后发现工具仍默认使用 GPT-4 分词器,而 GPT-5 已普及、GPT-6 开始出现。由于 OpenAI 未正式确认 GPT-6 是否沿用 GPT-5 系列分词器,tiktoken 仓库相关 issue 争议不断,这一默认值调整本质上基于推测,依据是 William Liu 的实验:七个 GPT 模型在 31 个测试样本上 token 数完全一致,均为 44,794。切换后新模型用户无需手动指定分词器,但若官方后续调整分词器,默认设置可能偏差,精确场景仍应显式指定版本。

Simon Willison 的 token 计数工具 ttok 正式发布 1.0 版本。这个版本的改动看似很小——只是把默认分词器从 GPT-4 换成 GPT-5/GPT-6——但背后牵出的是一个开发者工具与模型迭代之间的同步问题。

ttok 1.0 发布公告

从一个默认值说起

Simon Willison 在发布 ttok 0.4 之后,执行 uv tool upgrade ttok 升级工具,然后把一个文件管道输入新版本。结果发现工具仍然默认使用 GPT-4 的 tokenizer。

在 GPT-5 系列已经普及、GPT-6 系列开始出现的背景下,这个默认值显然过时了。Simon 决定借此机会直接发布 1.0,而不是继续在 0.x 版本上打补丁。

对于日常需要估算 API 调用成本、验证 prompt 长度的开发者来说,token 计数工具的默认分词器是否与实际调用的模型匹配,直接影响估算准确性。

**分词器(tokenizer)**是大语言模型处理文本的底层组件,负责把原始字符串切分成模型能识别的 token 序列,并映射为整数 ID。同一段文本在不同分词器下可能被切成数量不同的 token,而 API 计费、上下文窗口限制都以 token 数为单位。因此分词器决定了“这段 prompt 要花多少钱”“会不会超长”这类判断。GPT-4 与 GPT-5 系列使用的分词方案并不完全相同,如果工具默认沿用旧分词器去估算新模型的 token 数,结果就可能出现系统性偏差。

tiktoken是 OpenAI 开源的 token 计数库,ttok 这类工具通常直接调用它来保证计数与官方 API 一致。当 OpenAI 发布新模型却没有同步公开其分词器细节时,tiktoken 就成了社区追踪分词变化的主要信息源。

GPT-6 的分词器之谜

问题在于,OpenAI 并没有正式确认 GPT-6 是否沿用了 GPT-5 系列的分词器。tiktoken 仓库中有一个关于此事的 issue,讨论气氛颇为激烈,但官方始终没有给出明确说明。

这意味着 ttok 把默认值切到 GPT-5/GPT-6 分词器,某种意义上是基于推测而非官方文档。

Simon 引用了 William Liu 的一次实验作为依据。在 tiktoken 的仓库讨论中,William Liu 通过一组 fixture 对比了多个 GPT 模型的分词结果。

fixture指在软件测试中固定下来的一组输入样本及其预期输出,用来让不同实现或不同版本之间进行可重复的对比。在分词器问题上,fixture 通常是若干段精心挑选的文本——覆盖英文、代码、多语言、特殊符号等——再记录每个模型对它们报告的 token 数。只要输入不变,任何人重跑都能得到同样的结果,因此 fixture 常被用作跨模型行为一致性的证据。不过 fixture 只能证明“在这些样本上一致”,无法穷尽所有输入分布,这也是它不能替代官方声明的根本原因。

实验数据说了什么

William Liu 的实验覆盖了七个 GPT 模型,包括 GPT-5.5、GPT-5.6 的三个变体(Sol/Terra/Luna),以及 GPT-6 的三个变体(Astra/Sol/Luna)。

在所有 31 个测试样本上,这七个模型报告的 token 数量完全一致,均为 44,794。

这个结果说明,至少在 William Liu 测试的语料范围内,GPT-6 没有引入任何输入计数上的变化。这为 ttok 切换默认分词器提供了一个可验证的参考依据,尽管它不能替代官方的正式确认。

对开发者的实际影响

ttok 作为命令行工具,主要用途是在终端中快速统计文本的 token 数量。开发者可以用它来估算 API 调用成本、检查 prompt 是否超出上下文窗口。

默认分词器切换到 GPT-5/GPT-6 之后,使用新模型的开发者不再需要手动指定 tokenizer,工具的默认行为与实际使用场景更加一致。

但这里也存在一个潜在风险:如果 OpenAI 后续在 GPT-6 正式版中调整了分词器,基于当前实验数据做出的默认设置可能会产生偏差。开发者仍需关注 tiktoken 仓库的后续更新。

对于需要精确计算的场景,建议在代码中显式指定分词器版本,而不是依赖工具默认值。

**上下文窗口(context window)**指模型单次请求能处理的最大 token 总量,包含输入 prompt 与模型输出。一旦超出,API 会直接报错或截断内容。由于不同模型的窗口大小与分词方式都可能不同,开发者若用错分词器估算长度,就可能在临近上限时误判——以为还有余量,实际已经超限。显式指定分词器版本、并在关键路径上做边界测试,是规避这类问题的常见做法。

工具迭代的节奏问题

ttok 1.0 的发布折射出一个普遍现象:围绕大模型构建的周边工具,其迭代节奏往往滞后于模型本身的更新速度。

分词器是模型行为的一个底层组件,但它的变化频率和公开程度并不高。工具作者需要在官方文档缺失的情况下,通过社区实验来填补信息空白。

Simon Willison 选择将这次默认值调整作为 1.0 版本的发布理由,也是一种信号:工具已足够稳定,可以进入正式版本。后续的维护重点可能会转向对更多模型的支持,以及跟随 tiktoken 的上游更新。

#ttok#tiktoken#GPT-6 分词器#token 计数工具#Simon Willison#OpenAI tokenizer#开发者工具
分享:

相关推荐