能否用两个接口重建闭源分词器
bayes-song · reddit · 2026-07-11
作者提出一个逆向重建闭源 LLM 分词器的问题:如果只从 chat API 能拿到两个 oracle—— 1. **token 长度 oracle**:输入字符串 `s`,返回 `tokenize(s)` 的 token 数量; 2. **前缀 token oracle**:给定字符串 `s` 和整数 `n`,返回 `tokenize(s)` 的前 `n` 个 token 解码结果。 其中,前者容易获得,后者的目的在于消除 merge 顺序歧义,例如区分 `(a, bc)` 和 `(ab, c)`。作者认为可以利用模型在对话中受控复述文本的能力,从普通 chat 接口构造出这个前缀 oracle。 最后抛出核心问题:**仅依靠这两个 oracle,是否能重建一个与原 tokenizer 在任意输入上分词边界完全一致的等价 tokenizer(允许 token ID 重映射)?**