测一家
首页/教程/模型指纹:用 token 比例判断后端是不是"那个"模型
模型验证

模型指纹:用 token 比例判断后端是不是"那个"模型

同一个提示词,不同家族的 tokenizer 会给出稳定的不同比例。这是最便宜的模型验证手段,也是最容易被误读的。

agentapiai.com 2026-11-13 约 7 分钟

"这家是不是用便宜模型冒充贵的"——这个问题没法直接回答,因为没有哪个接口会告诉你"我不是我"。但有一些间接信号,其中成本最低、最容易重复的是 token 计数比例。

一、原理

每个模型家族用的 tokenizer 不同。同一段中文,Claude 切出来的 token 数、GPT 切出来的、Gemini 切出来的,比例是稳定的、可区分的。

本站从公开样本里总结出的参考带(中文,tokens/字符):

家族参考带
Claude0.90 – 1.40
GPT1.60 – 2.20
Gemini0.45 – 0.85
DeepSeek0.45 – 0.95
Qwen0.45 – 0.85
Grok0.65 – 1.05

这些是区间,不是精确值。不同版本、不同语言、不同标点都会让比例偏移。所以判读时要看两件事:是否落在带内,以及五次采样之间的离散度。

二、怎么做

同一段中文(200–500 字,含标点、数字、英文词)
→ 发五次
→ 记录每次的 usage.prompt_tokens
→ 算 tokens / 字符数

五个数字应该聚在一起,离散度(最大值减最小值除以中位数)小于 8%。

如果五次里有两三个跑到别的家族的带里,说明后端在多个模型之间轮询,或者根本没按你请求的模型路由。

三、三种误读

1. 把"带外"当成"假模型"

带外只能说明"不是这个家族的 tokenizer",不能说明"是哪个模型"。可能是另一个版本、可能是自研模型、可能是某个兼容层自己做的分词。报告里要写"不符合该家族特征",不要写"确认是 X 模型"。

2. 把"离散度高"当成"轮询"

离散度高也可能是上游负载均衡到不同版本的同一模型。要结合响应里的 model 字段看:如果 model 一直是同一个而比例在跳,才更可能是后端换了模型。

3. 用英文测

英文在多数 tokenizer 上的比例都接近 4 字符/token,区分度低。中文的区分度明显更好,所以要用中文测。

四、和其它证据一起看

token 比例是"筛查",不是"判决"。至少要和下面两项一起看:

  • 响应里的 model 字段:是不是你请求的那个 ID。
  • 上下文行为:宣称的窗口是否真的可用(见上下文窗口那篇)。

三项一致,可信度就比较高。三项互相矛盾,就需要更多样本。

五、本站的判定口径

检测台的第一项检查"模型身份":

  • 五次采样的比例全部落在该家族带内,且离散度小于 8% → PASS
  • 全部偏离,或跨带混池 → FAIL
  • 部分偏离 → WATCH

同时会检查 usage 和 finish_reason 等 metadata 是否齐全。缺少 metadata 的响应本身就是一个信号——正常的官方接口不会缺这些字段。

六、一个限制要说清楚

这套方法只能验证"像不像",不能验证"是不是"。真正的模型鉴定需要权重、激活值或官方签名,这些在中转站场景下拿不到。

所以本站的报告只写"不符合该家族特征",不写"确认换模型"。这个区别很重要:前者是可验证的观察,后者是超出证据的结论。相关口径写在方法页里。

七、自己动手的最小脚本

import os, requests

text = "(一段 300 字左右的中文,含数字 2026 和英文 API)" * 1
url = os.environ["RELAY_BASE"] + "/v1/chat/completions"
h = {"Authorization": "Bearer " + os.environ["RELAY_KEY"]}

for i in range(5):
    r = requests.post(url, headers=h, json={
        "model": "claude-sonnet-4-5",
        "messages": [{"role": "user", "content": text}],
        "max_tokens": 1,
    }, timeout=60)
    u = r.json().get("usage", {})
    print(i, u.get("prompt_tokens"), round(u.get("prompt_tokens", 0) / len(text), 3))

max_tokens=1 是为了省钱——你只需要输入侧的计数。跑五次,看那五个比例。