原理
排名与校准
频率排名和位置/顺序判别各占一半,决定候选顺序;温度 softmax 给出参考库内的置信度。
排名器
排名器对参考库中的每个模型计算两组分数:频率排名 和位置/顺序判别 。每组分数先在候选之间标准化,再各取一半相加:
频率排名 由三项分数组成:
- LDA:对前 128 个整数的特征做线性判别投影,多条回答取平均。
- 近邻:取与该模型参考回答最近的 7 个平方距离的平均值,多条回答取中位数。
- 去干扰中心:提示环境会让同一模型的分布整体偏移。建库时,SVD 从各环境的均值偏移中估计至多 2 维的干扰子空间;评分时先投影掉该子空间,再计算与各模型中心的余弦相似度。位置分段特征还会与各环境下的模型模板比较。
位置/顺序判别 是收缩系数为 0.5 的 LDA,使用 4 块共 751 维特征:
| 特征块 | 维数 | 权重 | 内容 |
|---|---|---|---|
| 数值分布 | 355 | 0.6 | 与频率排名相同的 Hellinger 嵌入 |
| 位置与末位 | 74 | 0.15 | 与频率排名相同的分段分布 |
| 位置核 | 102 | 0.125 | 24 个数值 RBF 与 10 个末位指示,分别乘以 3 个相对位置多项式后取平均,描述某类数字更常出现在开头、中间还是结尾 |
| 序列 | 220 | 0.125 | 8 种滞后下的相关、跳幅与相等比例;8 个取值区间的转移矩阵和末位转移矩阵(去掉边际);涨跌延续;短窗口内的区间覆盖率 |
每块特征分别标准化并单位化,再按权重拼接。每条回答的判别值先在候选之间标准化,多条回答再取平均。
排名分数 决定候选顺序。两组分数的权重和收缩系数由参考库按环境留一交叉验证选定,固定评估集不参与选择。
置信度校准
置信度只在三条回答都有效、且 data/shared_detector.bin 中的校准与检测器匹配时计算。它是参考库内的温度 softmax:
fpd retrain 离线拟合温度 :先逐一留出 12 种环境,再两两留出,共重新拟合 78 次排名器,用留出结果估计 。嵌套留出的二元 NLL 必须低于常数基线,且 AUC 必须大于 0.75;否则,重训不替换现有检测器。 只在参考库模型之间分配,所有候选合计 100%,不包括库外模型,不代表“确实是该模型”的概率。校准与检测器不匹配时,只给出排名,没有置信度。
参考库与检测器
| 文件 | 内容 |
|---|---|
data/unified_reference.jsonl | 参考批次,每行包含模型、渠道、请求参数和回答 |
data/unified_bank.json | 由参考批次派生的统计库 |
data/shared_detector.bin | 冻结的排名器和校准参数(二进制),用 SHA-256 绑定参考数据;CLI 与网站都通过 shared/detector-codec.ts 解码 |
data/enrollment-suite.json | 36 道固定采样挑战 |
如果参考库与检测器不匹配(例如用 --bank 指定自定义库),检测报错停止,需要先运行 fpd retrain --data-dir DIR。数据文件的格式与变更记录见数据文件。
最后更新于