【开源推广】模型检测工具,三次提问推测具体模型

xqyqx 2026-08-29 08:56 1

本帖使用社区开源推广,符合推广要求。我申明并遵循社区要求的以下内容:



  • 我的帖子已经打上 开源推广 标签:

  • 我的开源项目完整开源,无未开源部分:

  • 我的开源项目已链接认可 LINUX DO 社区:

  • 我帖子内的项目介绍,AI生成、润色内容部分已截图发出:

  • 以上选择我承诺是永久有效的,接受社区和佬友监督:


以下为项目介绍正文内容,AI生成、润色内容已使用截图方式发出





现有的检测项目多直接用于测试api端点,可有的时候感觉降智只针对某个session,换个session又正常了,使用本项目可以直接在session中开启一个侧边对话框(/btw)进行提问测试是否降智



agy中Opus4.6的测试结果:




同时也部署在了GitHub Pages: https://xqy2006.github.io/ModelTrace/

(受跨域影响仅可手动填写结果,api自动检测请本地部署py版本)


目前指纹库包含以下模型(每个模型各采集了36条结果):



  • gpt-5.4

  • gpt-5.5

  • gpt-5.6-luna

  • gpt-5.6-terra

  • gpt-5.6-sol

  • claude-haiku-4-5-20251001

  • claude-sonnet-4-6

  • claude-sonnet-5

  • claude-opus-4-6

  • claude-opus-4-7

  • claude-opus-4-8

  • claude-opus-5


其中GPT采集自官方订阅Codex,Claude采集自 OAIPro


使用的方法具有一定抗干扰能力,能在大量前缀提示词干扰保持一定准确性(目前已知Claude Code会对本项目的准确性造成较大影响,其系统提示词会对模型的认知和偏好造成较大影响,建议不要在Claude Code内提问)


提问时最好不要开启过高的思考程度(这种问题没必要思考太多)


完整完成所有的三次测试才能获得最好的结果(次数过少可能有偶然性)


方法与原理


思路与翰林佬的类似:

一个基于概率分布识别任意模型真假的项目,从此告别掺假! - 开发调优 - LINUX DO


但是我在实际测试时发现这样很难区分临近版本的模型(例如Opus4.6~5,它们的众数都倾向于241-250),为了更精细化区分模型,我们需要更大的自由度


此外,提示词实际上也会对模型的随机数选择造成很大影响(极端的例子:提示词注入、t=0),所以存在变量(提示词和参数)与不变量(底层模型)


因此我构造了这样一种方法:

让模型随机输出1-355的随机数长序列(由于是自回归模型,一次性生成长序列,数字的顺序分布也包含了信息)


我们共提取两种指纹:


Hellinger


我们在计算时采用Hellinger距离(即开根后的欧氏距离)


先统计每个数在序列中出现的次数,并进行加性平滑(加一个α防止数字未出现造成不稳定)



p_j=\frac{c_j+\alpha}{N+355\alpha},\qquad \alpha=0.5.

对每个概率开根后我们便得到了一个355维向量


对向量做归一化并与每个模型的投影后训练中心计算余弦相似度,便得到了该部分的得分


该部分对数字的出现情况进行了分析,善于进行差异较大的模型区分


有序分块


先把数字序列等分为4个块,把1至355划分为16个连续数值区间,统计每个块在这些区间上的频数,此外,再统计整条序列中个位数0至9的分布,然后和Hellinger一样的处理(加α,开根,归一化)


共产生了4*16+10=74维特征


有两个评分(这里判断相似度的方式与Hellinger类似):



  • 采集时区分了不同环境,取最接近的环境的相似度

  • 对特征进行投影,与全局投影中心计算余弦相似度


这部分尝试从更多角度提取特征,善于区分同一类模型不同模型版本


消除提示词干扰


即前文提到的对特征的投影

指纹库部分数据在采集时添加了不同的提示词前缀(即不同环境)

对不同环境计算标准化特征均值,再减去平均得到偏移

把全部环境偏移组成矩阵并进行奇异值分解。取前两个非退化右奇异向量,形成干扰基

在评分前对特征减去干扰基的分量


最后对两种评分加权得到最终评分,然后利用从训练集拟合的温度系数乘以第i次回答,套一层softmax得到最终归因概率




方法还有很多优化的空间,目前我自己测试下来效果还行,还需要各位佬友帮忙多多测试反馈


免责声明


测试结果仅供参考,并非判断模型的决定性证据

最新回复 (2)
  • tangsong404 08-29 09:51
    1

    (帖子已被作者删除)

  • 翰林文苑 08-29 10:05
    2

    支持,希望能对我的方法做补充。

    我的项目目的是能很好的区分不同大小的模型(opus,sonnet|sol,luna)防止掺假,而且其实不同代际的Opus其实模型匹配度不能达到96%的阈值,虽然众数相似。



    为了更精细化区分模型



    其实是有精细化的

* 帖子来源Linux.do
返回