InsightsTosea Team10 MIN READ

AI 为什么说不出随机数?一枚「模型指纹」,照出 API 中转站的真伪

让 AI 说个 1 到 100 的随机数,它十有八九说 42 或 73。最新论文把这个怪癖变成了鉴别 API 套壳、降智的「照妖镜」:随机数行为指纹 + JS 散度对比。我们做了免费工具,两分钟自测你的中转站。

AI 为什么说不出随机数?一枚「模型指纹」,照出 API 中转站的真伪

做个小实验:打开你常用的 AI,让它「随便说一个 1 到 100 之间的数」。

大概率,你会得到 42、73、47 或者 57。多问几次,这几个数字还会反复出现。再换一个模型问,偏爱的数字变了——但同样固执。

这不是巧合。大模型说不出真正的随机数,而且每个模型「不随机」的方式各不相同、高度稳定。2026 年 7 月的一篇论文把这个人尽皆知的小怪癖,变成了一件正经的取证工具:只靠一批「一词回答」的分布,就能黑盒鉴别一个 API 端点背后跑的到底是什么模型——买 API、用中转站的人,从此多了一面「照妖镜」。

这篇文章讲清楚三件事:AI 为什么说不出随机数;这个缺陷怎么变成了鉴别套壳与降智的统计学指纹;以及你怎么用我们做的免费工具,花两分钟给自己的 API 端点做一次体检。

AI 为什么说不出随机数?

因为大模型不会「计算」,只会「预测下一个词」。当你要它给一个随机数时,它并没有去掷骰子,而是在回答另一个问题:「在我见过的所有文本里,人类说『随便给个数』之后,最常出现的数是什么?」

于是训练数据里的人类偏见被原样继承下来:

  • 42——《银河系漫游指南》里「生命、宇宙以及一切的终极答案」,在几十年的互联网文本里被玩梗玩到刻进了模型的骨髓;
  • 7——横跨多种文化的「幸运数字」,人类自己被要求报随机数时也偏爱它;
  • 37、47、73 这类两位数质数——不整不齐、没有明显规律,对人类来说「看起来最随机」,于是在人类写下的「随机示例」里泛滥成灾。

论文对此做了量化:在它的探测集里,答案分布的中位熵只有约 1.0 bit。什么概念?真正均匀地从 1 到 100 里挑数,熵应该是 6.64 bit。也就是说,你以为模型在掷一颗一百面的骰子,实际上它在抛一枚略有偏心的硬币。

单看这一条,只是个茶余饭后的趣闻。真正有意思的是下一步。

缺陷如何变成指纹:坏事变好事

这个「不随机」有两个关键性质:

  1. 对同一个模型,它极其稳定。今天问、明天问、换个措辞问,同一个模型给出的答案分布几乎不变;
  2. 对不同模型,它明显不同。哪怕是同一家族的两代模型,偏爱的数字、颜色、字母的比例也对不上。

稳定 + 各异——这正是「指纹」的定义。

论文 《One Token Is Enough: Fingerprinting and Verifying Large Language Models from Single-Token Output Distributions》(Tomáš Bruckner,arXiv:2607.10252)给出了完整协议,思路非常朴素:

  1. 提问:向端点抛出一批一词问题——「1 到 100 随机数」「随便说个颜色」「抛一次硬币」……论文用了 10 个任务 × 4 种语言 = 40 个探测单元,每个单元在 temperature 1.0 下采样 30 次,max_tokens=16,禁用推理模式;
  2. 建档:把每个单元的答案数出来,得到一组经验分布,这就是该端点的行为指纹
  3. 比对:用 Jensen-Shannon 散度(以 2 为底,取值 0 到 1,0 = 完全一致,1 = 完全不同)把待测指纹和可信参考指纹逐格对比;
  4. 判定:距离小 → 与声称的模型一致;距离大 → 端点背后大概率是另一个东西。

论文给出的三个基线让数字有了刻度:同一个模型自己跟自己比,距离约 0.14;同一个模型经由不同服务商,约 0.23;两个不同的模型之间,约 0.46。「同」与「不同」之间隔着足够宽的河。

准确率如何?用 8 个探测单元时等错误率(EER)约 10.6%,用满 40 个单元降到 7.3%,AUC 0.971。不完美,但对一个不需要任何内部权限、谁都能跑的黑盒方法来说,已经相当锋利。

更妙的是它难以被针对性防御:每个探测都是从同义措辞池里随机抽的普通问题,中转站没法靠关键词过滤识别出「有人在验货」——想拦截测试,就得先拦截正常用户。

照妖镜照出了什么:论文公开的案例

论文没有停在方法层面,还真的拿它照了一圈市场。两个公开结果值得知道。

第一个是 writer/palmyra-x5。这个在 OpenRouter 上以自研旗舰名义售卖的模型,指纹与开源的 Qwen3-235B 距离仅 0.141——几乎等于同一个模型自比的 0.140。用论文自己的话说,行为上这两个端点服务的是同一个模型。(此案例为论文已公开发表的结论,我们未做独立复核,转述仅供参考。)

第二个更耐人寻味:官方模型也会「走样」。论文对比了 34 组「同一个模型、不同服务商」的组合,其中 10 组的指纹差异超出了冒充者分布的 5 分位——也就是说,一些打着官方模型名号的第三方部署,因为量化、推理框架、隐藏系统提示词等原因,行为已经漂移到「像另一个模型」的程度。这解释了很多用户模糊的「降智」体感:模型名没变,模型行为变了。

行业背景也值得一提:CISPA 的研究者在 《Real Money, Fake Models》(arXiv:2603.01919)中审计了 17 家「影子 API」商家,部分端点未能通过模型验证。低价中转市场的水有多深,学界已经开始系统性地测量了。

论文的数据和代码全部开源:指纹数据集(CC-BY-4.0)与复现代码(MIT)都在 Zenodo 上,任何人都可以核验。

我们还把这些参考指纹整理成了可以直接翻看的LLM 行为指纹数据库:167 个模型每个一页——最爱的随机数、最爱的颜色、抛硬币偏头率和完整答案分布,不用下载数据集就能查。

我们把它做成了免费工具,你可以直接自测

论文读完很兴奋,但真要自己动手:写采样脚本、跑几百个请求、数 token、算散度——大部分人到这一步就放弃了。所以我们把整套方法做成了开箱即用的网页工具:LLM API 真伪检测器

几个你会关心的设计:

  • 纯浏览器运行,API key 不离开本地。所有探测请求由你自己的浏览器直接发往你填的端点,我们的服务器全程不经手你的 key——打开开发者工具的 Network 面板就能验证这一点;
  • 严格对齐论文协议。temperature 1.0、max_tokens=16、一词探测题、按论文基线标定的判定阈值,内置参考指纹也在完全相同的提示词条件下采集;
  • 免费、中英双语,测一次不需要注册。

使用只要三步:

  1. 填入待测端点的 Base URL、API key 和它声称的模型名(兼容 OpenAI 格式的端点都能测);
  2. 选一个参考:内置的官方模型指纹,或者你信任的第二个端点(比如官方 API),工具会在相同条件下给两边各采一份指纹;
  3. 点击运行,看结果。标准档是 8 个探测单元 × 25 次采样 ≈ 200 个小请求,按 gpt-4o-mini 的价格算成本约三五厘钱(运行前会显示预估)。结果页给出每道题的分布对比图、落在论文基线标尺上的 JSD 距离,以及三档结论:匹配(≤ 0.25)、存疑(0.25–0.35)、不匹配(> 0.35)。

主判定之外,工具还会顺手做几项「体检加项」,专治单一数字看不出来的花样:分半自检(一份指纹自己跟自己都对不上,提示端点在多后端之间轮询)、token 掺水检测(一词回答不该消耗上百个 completion token)、缓存怀疑(响应快得异常且分布塌缩)、提示词注入检测(prompt token 远超实际发送量,说明服务端偷偷塞了大段隐藏提示词)。如果端点不允许浏览器跨域直连,工具会生成等价的 curl 脚本,你可以在自己的终端里完成探测。

隐藏提示词到底能把指纹掰弯到什么程度?这套方法扛不扛得住?我们后来专门跑了 5660 条受控注入实验——包括把 Claude Code 的系统提示词整段灌进 GPT——结果写在《把 Claude Code 的提示词灌进 GPT,它「掷骰子」的习惯变得像另一个模型》里,用中转站的读者建议一读。

顺带一提,工具还有个轻松的附加模式——AI 随机性体检:不做真伪判定,单纯给任意端点打一个随机性分数(满分对应 6.64 bit 的均匀熵),看看你的模型最偏爱哪几个数字——既是趣味玩法,也是这套方法为什么成立的现场演示。

至于实测观感:在我们对若干公开端点的测试中,官方 gpt-4o-mini 与某主流聚合平台上的同名模型距离约 0.12,舒舒服服落在「同一个模型」区间;也观察到有个别端点的分布显著偏离官方参考。对后者,我们的态度始终是:这是统计学观察,值得进一步核实,不构成对任何主体的指控。

理性看待:照妖镜不是判决书

最后泼一盆必要的冷水。这面镜子很好用,但请了解它的边界:

  • 有错误率。8 单元档的等错误率约 10.6%,即便满配也有 7.3%。单次「不匹配」应该触发的是复测(加大探测单元数、换参考端点),而不是下结论;
  • 偏离 ≠ 造假。激进的量化、静默的版本更新、服务端隐藏提示词、参考指纹过期,都可能推高距离——这些常常是工程决策而非欺诈。指纹能告诉你「行为变了」,说不了「为什么变」;
  • 推理模型要小心。指纹须在禁用推理的条件下采集,无法禁用时结果置信度更低(工具会自动标注);
  • 不针对任何具体商家。一次距离测量是「某端点在某时刻的行为快照」,不是对任何一家企业的定性。买 API 该有的尽调、合同和试用,一样都不能少。

写在最后

API 返回体里的 model 字段,本质上只是一句自我介绍。过去你只能选择信或不信;现在,多亏「AI 说不出随机数」这个可爱的缺陷,你可以要求它自证身份——用 200 个几乎不要钱的小问题。

如果你在用任何形式的中转、聚合或代理服务,不妨现在就给你的端点做一次免费指纹检测:两分钟,几厘钱,key 不出浏览器。

一个做 PPT 的团队,为什么要管 API 真伪?

交代一下我们是谁:Tosea.ai 的主业是用 AI 把 PDF(论文、报告、文档)一键变成可编辑的漂亮幻灯片。听起来和 API 取证八竿子打不着,其实是同一件事的两面。

文档转 PPT 这条流水线,从大纲提炼、表格还原到逐页生成,每一步的质量都直接取决于背后那个模型「是不是它声称的那个」。如果上游供应商悄悄换了量化版或者更便宜的模型,用户看到的不是报错,而是大纲变糊、图表张冠李戴、幻灯片里冒出原文没有的「事实」——正是我们在零幻觉 AI 幻灯片指南里最花力气对付的那类问题。所以给模型「验明正身」本来就是我们的日常工程环节:选型基准要跑、走聚合渠道省成本时要验货。这次只是把内部工具做成了人人能用的版本。

如果你是从「验 API」这头进来的读者,对「AI 做 PPT」那头好奇,可以看看我们怎么把一篇论文变成一套幻灯片,让每页内容都能追溯回原文——对 AI 产出「信,但要验证」的态度,两边是一样的。这个检测器是我们读这篇论文时顺手做的社区工具——毕竟,天天和论文打交道的团队,总该为「让论文变成人人能用的东西」多做一点事。

参考来源

本文另有英文版:How to Verify an LLM API Is Real: Fingerprinting Models with Random Numbers,面向英文读者展开了同一套方法与工具。

Continue Reading

All Insights