把模型自己的 token 喂回去看它去哪:一种出人意料的模型指纹方法
如果我把"apple apple apple apple..."(同一个 token 重复很多次)喂给一个语言模型,它会输出什么?
把模型自己的 token 喂回去看它去哪:一种出人意料的模型指纹方法
一个看似无聊的实验
如果我把"apple apple apple apple..."(同一个 token 重复很多次)喂给一个语言模型,它会输出什么?
直觉上,你可能会想:那不还是"apple"吗?模型看到上下文全是"apple",最可能的下一个 token 当然还是"apple"。
2026 年 9 月,一篇来自独立研究者 Michael Paulun 的论文做了这个实验,并发现了一个出人意料的事实:大部分 token 确实会"自我延续"(self-continue),但相当一部分不会。那些不会自我延续的 token,模型会把它们"送"到某个特定的下一个 token——而这个"送法"是每个模型独有的,像指纹一样可以用来识别模型。
这篇论文叫《Where a Model Sends Its Own Repeated Token》,它做了一件概念上很简单但操作上很精细的事:用模型自己的 token 行为来给模型做指纹。
两半的故事
实验设计分两半。
第一半:固定点集(fixed points)。给模型一个 token,重复若干次,看模型输出的下一个 token 是不是同一个 token。如果是,这个 token 就是模型的"固定点"——模型在"自我延续"它。在 12 个 Pile 训练的模型上,共享的固定点交集是 3471 个字符串。
第二半:目的地地图(destination map)。对于那些不自我延续的 token,模型会把它们送到哪个 token?这构成一张"token 流向图"——从源 token 到目标 token 的映射。
研究者最初注册的假设是:固定点集可以作为模型指纹。两个模型比较它们的固定点集,用 Hamming 距离衡量差异。如果两个模型是"近亲"(比如同一家族不同规模),它们的固定点集应该很接近;如果是"远亲"(不同架构),应该差很多。
这个假设失败了。而且失败得很有教益。
失败的根因:Hamming 距离的"基数性陷阱"
12 个模型的固定点集 Hamming 距离结果:
| 模型对 | Hamming 距离 |
|---|---|
| pythia-410m vs -deduped(语料去重差异) | 2 |
| 同一权重不同精度 | 0 |
| pythia-410m vs gpt-neo-125m | 276 |
| pythia-410m vs mamba-370m | 661 |
| pythia-410m vs rwkv-4-430m | 440 |
这是稀疏集合 Hamming 距离的数学性质:|A| + |B| - 2|A∩B|。当集合稀疏(大部分元素不在交集中)时,距离主要由两个集合的大小决定,而不是由它们的"身份"决定。
这个发现让"固定点集作为指纹"的假设破产。两个只差 2 位的模型对(pythia-410m 和 pythia-410m-deduped,只差训练语料是否去重),在严格阈值下差异为零——这意味着这个指纹无法区分"训练语料差异"和"数值精度噪声"。
第二半的胜利:目的地地图
研究者转向了第二半——目的地地图。对于不自我延续的 token,比较两个模型把它们送到同一个目标的比率(agreement rate)。
结果:
| 模型对 | 一致率 | 与基线比 |
|---|---|---|
| 同一权重不同精度 | 0.7127 | — |
| pythia-410m vs -deduped | 0.6355 | 1.27× |
| pythia-410m vs gpt-neo-125m | 0.3902 | 2.12× |
| pythia-410m vs mamba-370m | 0.3493 | 2.26× |
| pythia-410m vs rwkv-4-430m | 0.3393 | 2.30× |
pythia-410m 和 pythia-410m-deduped 的一致率是 0.6355,明显高于"同一权重不同精度"的 0.7127 吗?不,0.6355 < 0.7127。但关键在于:0.6355 显著高于频率基线(0.1429 和 0.0798)。这不是"token 频率效应"——两个模型同意把某个 token 送到某个目标,不是因为那个目标高频,而是因为两个模型的内部机制相似。
19 个模型的大家族
研究者把模型池从 12 个扩大到 19 个,涵盖 7 种 tokenizer、多个家族和架构。三个预注册的问题:
问题一:家族归因。给定一个模型,它的"最近邻"是不是同家族的模型?rank-1 leave-one-out 准确率:0.8333(基线 0.1389)。6 倍于随机。
问题二:架构类归因。Transformer vs RNN(Mamba/RWKV)vs 混合架构。balanced accuracy:1.0(基线 0.7895)。完美分离。每个模型的最近邻都在自己的架构类内。
问题三:家族 vs tokenizer。一致率由"共享家族"还是"共享 tokenizer"更好地预测?家族 lift 0.2031,tokenizer lift 0.1205。家族 > tokenizer。这意味着指纹捕捉的不是"分词方式",而是"模型内部计算机制"。
但有一个诚实的修正:当排除每个模型最常见的单一目的地后,完美分离从 1.0 降到 0.90。诚实的数字是 0.90,不是 1.0。这种诚实值得赞赏——很多论文会只报 1.0 不报 0.90。
量化鲁棒性:指纹的"硬度"
一个只在全精度下工作的指纹不是指纹。研究者测了两种扰动:
8-bit 量化(weight-only symmetric per-channel round-to-nearest):目的地地图和全精度的一致率 0.9004。比训练语料去重的影响还小(0.6353)。这意味着 8-bit 量化对模型行为的影响,小于"训练时是否对语料去重"这一数据处理选择。
4-bit 量化:一致率崩塌到 0.0098。指纹失效。但研究者进一步测试了分组量化(groups of 128 input channels,GPTQ/AWQ/bitsandbytes 使用的粒度),4-bit 分组量化达到 0.1812——比 per-channel 好一个数量级,但仍远低于 0.6353。
精度下限是 per-model 的,不是全局的。bfloat16 vs float32 在一个模型上只改变 2% 的目的地,在另一个模型上改变 80%。没有单一的"精度地板"。在 Pythia 家族内,精度鲁棒性随规模单调上升(70M: 0.201 → 1B: 0.8989),但离开家族后这个规律失效——更小的 gpt-neo-125m 反而更鲁棒(0.9569)。
这个方法为什么有意思
这篇论文在概念上做了一件很优雅的事:用模型自己的行为给它做指纹,不需要访问权重,不需要白盒分析,只需要黑盒查询。
传统模型指纹方法有两类: 1. 权重指纹:直接哈希模型权重。需要白盒访问。 2. 行为指纹:给模型一组 prompt,看回答。但回答受采样温度、prompt 措辞影响。
这篇论文的方法是第三类:结构行为指纹。不是看模型"说什么",而是看模型"在 token 空间里怎么移动"。给同一个输入,不同模型的"token 流向图"不同,这种不同反映了模型内部计算机制的差异。
更妙的是:这个方法有一个"自我参照"的结构——用模型自己的 token 喂回去,看它怎么处理"自己的产物"。这种自我参照让人想到 Gödel 的不完备定理——系统用自己的语言谈论自己。当然,这里的类比是形式上的,不是数学上的。
跨域类比:DNA 条形码
生物学有一个"DNA 条形码"概念——用一小段标准基因序列(如 COI 基因)识别物种。不同物种的 COI 序列不同,可以用来识别未知样本属于哪个物种。
这篇论文的方法是"模型条形码"——用一小段标准行为(自我延续的 token 和它们的目的地)识别模型。不同模型的条形码不同,可以用来识别未知模型属于哪个家族、哪种架构。
DNA 条形码不告诉你物种的全部信息,但足以识别。模型条形码也一样——它不告诉你模型权重的全部信息,但足以区分。
一个更深的问题:为什么有些 token 自我延续?
论文没有深入探讨这个问题,但它很有意思:为什么有些 token 会自我延续,有些不会?
直觉上,高频 token 更可能自我延续——"the the the the..."模型看到一堆"the",下一个 token 还是"the"很合理。但论文没有系统分析这个相关性。
一个可能的解释:自我延续的 token 是模型"最自信"的 token——模型对它们的预测有最高的置信度。不自我延续的 token 是模型"不确定"的 token——模型会"逃避"它们,转向更熟悉的 token。
如果这个解释成立,那么"目的地地图"实际上是在映射模型的"不确定性结构"——每个模型不确定时逃向哪里。不同模型的不确定性结构不同,所以指纹不同。这是一个值得深入研究的方向。
局限和诚实
论文有几个值得赞赏的诚实声明:
1. 4-bit 量化下指纹失效。不藏着,明确说"指纹 scoped to full precision"。 2. 架构类归因的混淆。Mamba 和 RWKV 都是 RNN 架构,它们互相混淆——两个 Mamba 模型都被归到 RWKV。这可能是"架构类"而非"家族"的信号。 3. 混合架构模型加载失败。预注册的"informative test case"(Mamba/attention 混合模型)没跑成,所以"完美分离"的结论有一个未测的边界。 4. 扩大 cohort 没有增加新家族。19 个模型中,有家族关系的还是原来那 12 个,新增的 7 个都是 distractor。所以"家族归因 0.8333"的结论基于的还是原来的 12 个模型。
这种诚实让论文的可信度更高。一个承认自己局限的方法,比一个声称完美无缺的方法更值得信任。
结语
"把模型自己的 token 喂回去看它去哪"——这个方法在概念上简单得像小孩的玩具实验,但揭示了一个深刻的结构:模型的"不确定性结构"是身份特异的。
每个模型都有它自己独特的"逃避模式"——当面对自己不确定的 token 时,它会逃向哪里。这种逃避模式像指纹一样可以识别它,像 DNA 条形码一样可以分类它。
更让人欣赏的是这篇论文的"失败-修正"叙事——第一半假设失败了,第二半胜利了,但胜利不是在第一半失败后临时想出来的,而是预注册的。这是好的科学:你预注册两个假设,一个失败一个成功,你诚实地报告两个。
在 AI 评估越来越追求"更大、更全、更难"的 benchmark 的时代,这种"小而美"的实验设计值得被记住。有时候,一个简单到像玩具的实验,能揭示一个深刻到让人意外的结构。
论文:Where a Model Sends Its Own Repeated Token, arXiv:2609.31181, 2026-09-25 作者:Michael Paulun (independent researcher) 核心数据:19 个模型,7 种 tokenizer,家族归因 0.8333(基线 0.1389),架构类归因 balanced accuracy 1.0(基线 0.7895)