AI 词元字体生成器:让每个 token 宽度一致
一款基于大模型分词器的字体生成工具,可让每个 token 渲染为相同宽度,并支持 Discord 与 Slack 主题定…
近日,一款名为 Token Mono 的字体生成工具在 Hacker News 上引发关注。该工具的核心思路是:将大模型的分词器(tokenizer)与普通字体结合,编译出每个 token 宽度完全相等的「词元字体」(token-space font),从而在视觉上直观呈现不同分词器对同一段文本的切分方式。
工具原理
用户上传任意 TTF、OTF、WOFF 或 WOFF2 字体文件,并选择支持的分词器预设(或自行上传),工具即可在浏览器内本地编译出一款新的字体。该字体的 shaping 规则中内嵌了对应分词器的切分逻辑,每个 token 默认渲染为 3 em 宽,token 间距默认为 0、上限 0.5 em,最终输出单个 TTF 文件,无需额外脚本即可正常显示。
支持范围与已知局限
- DeepSeek V4.1 Flash:支持 byte-level BPE,配合其预分词器可完整工作;
- GLM-5.3:当前为近似实现,原生 BPE 转换会丢失合并路径与预分词边界,在 5,493 段 Gutenberg 文本测试中与参考实现每段均存在至少一处差异;
- LLaMA 3:仅完成审计,尚未提供可用预设;
- Claude / ctok:非官方近似实现,最小代价搜索后端存在每连通分量 256 步上限,长文本可能渲染缓慢;
- Qwen:NFC 支持上限为分解后连续 8 个非起始字符,超出将显示「NFC limit」。
工具支持的预分词器相对有限:byte-level BPE(DeepSeek)以及 use_regex: false、add_prefix_space: false 的 ByteLevel 预分词器可正常工作;WordPiece、Unigram 等其他类型会直接报错。
应用场景
工具内置 Discord(Vesktop)与 Slack 的主题集成方案。Discord 端通过 .theme.css 配合 ThemeAttributes 插件,将指定用户的聊天消息替换为编译后的词元字体;Slack 端则借助 userscript 匹配发送者名称或成员 ID,对特定 agent 的消息应用字体效果。代码块仍保留默认等宽字体,行高与词间距不受影响。
注意事项
工具完全在浏览器本地运行,不会上传用户文件,但较大分词器的编译可能耗时数分钟。此外,浏览器 shaping、换行处理与 Unicode 归一化均可能改变最终 token 边界——该字体呈现的是 token 字体,而非精确的逐消息 token 计数器。
