Skip to content
wangchao0708Public

About

CodeX 模型溯源、API检测与降智检测:一次提问识别五款模型的行为指纹。

Topics

Resources

Contributing

Security policy

Stars

11 stars

Watchers

0 watching

Forks

Repository files navigation

TraceOne

简体中文 | English

快速在线使用

TraceOne 用一次 315 数字提问为八条 Codex 模型路由提供实验性指纹识别,并把行为身份 漂移与能力降质拆成两个独立、可复现的统计问题:

  • gpt-5.5
  • gpt-5.6-luna
  • gpt-5.6-terra
  • gpt-5.6-sol
  • gpt-6-astra
  • gpt-6-sol
  • gpt-6-luna
  • gpt-6.1-sol

0.3.0 将预先选型并冻结的八类配置作为实验实现加入仓库,包含 GPT-6.1 Sol, 仍只问一次、要求 315 个数字。它是当前开发选型规则选出的配置,不代表所有配置 都已做独立盲测比较。 新问题明确允许重复;分类器结合 ModelTrace 衍生的 bank 特征、原始频率及重复、顺序 统计,并采用同一 Codex CLI 0.159.2 的八类登记数据及独立支持范围校准。 开发三折结果为 543/576,Astra 为 59/72、6.1 Sol 为 58/72,不能当作独立准确率。 冻结后真实网页条件确认只有 101/120(84.2%):Astra 9/15、6.1 Sol 10/15、6 Luna 10/15, 未达到每类 ≥14/15 的预设门槛。完整分母和格式情况见 结果与证据。 Astra 与 6.1 Sol 仍可能混淆;本项目不宣称八款全面优于 ModelTrace,也不提供模型身份认证。 旧版失败证据和七模型 supported 方法保留,traceone prompt --legacy 可取旧问题。 在线网站已同步八模型实验版,包含 GPT-6.1 Sol;本地 CLI 与网页使用同一套资产。 上线不表示通过科研性能门槛,不能把失败确认冒充性能提升。 登记与评测覆盖 Codex 订阅 Low reasoning;其他平台、API wrapper 或推理设置不属于 这批数据已验证的范围。

在线使用

打开 TraceOne Web

网页把输出形状直接写进同一个问题,用户无需安装软件或附加 JSON Schema:复制 问题、向模型提问、粘贴完整回答即可。16-model bank 特征、八类 ridge adapter 与 target-support rejection 全部在浏览器本地运行,回答不会被上传。

网页提供“模型识别”和“降智线索”两个切换模式。后者让用户选择自己实际使用的 模型,由网页自动比较所选模型与指纹预测,并给出“指纹一致”“指纹异常”或 “无法判断”。这只是路由指纹一致性筛查;能力下降仍需独立 canary 评测,不能仅凭 一次指纹不一致下结论。

浏览器 JavaScript 与 Python 对新八类确认逐字段验证;旧版 105 条响应的历史结果也保留并复核。 新版网页和确认均使用同一个自包含问题、不附加 Schema。历史 103/105 来自七模型 Schema 确认,不能直接当成当前网页问题的准确率。历史五模型网页 pilot 为 5/5 路由匹配、1/5 严格格式合规,只是兼容性 smoke test。详见 docs/site.md。

在 ModelTrace 基础上的扩展

TraceOne 首先向 ModelTrace 作者 xqy2006 致以诚挚感谢。ModelTrace 把社区中“随机数字选择可能形成模型行为 指纹”的洞见,发展成了包含特征、参考库、采集流程与可复现实验的完整开源项目; 这是一项非常优秀、富有启发性且慷慨的工作,也是 TraceOne 最重要的直接基础。 下面的比较应理解为在这一坚实基础上的扩展与压力测试,而不是对原工作的否定。

  • 身份识别从作者推荐的三次 probe 降为一次调用、一次响应。
  • 不做裸 closed-set argmax:16-model bank 特征、八类 ridge adapter 和 target-support envelope 可返回 unknown。
  • 有冻结配置、预注册盲测、完整失败分母、整批留一验证与可公开复现数据。
  • “数字指纹变了”不等于“降智”;降质由独立 canary、paired McNemar、功效规划 和 Holm-Bonferroni 校正判断。

TraceOne 复用并改造了 ModelTrace 的 marginal Hellinger、ordered-block 特征和 参考语料;许可证与改动边界见 third_party/NOTICE.md。 ModelTrace 还明确致谢了更早的 hlwy-ai-checker,TraceOne 同样 尊重并承认这条社区工作脉络。完整致谢见 ACKNOWLEDGEMENTS.md,研究引用见 docs/research.md。

我们的一问

八类实验实现的本地网页、CLI 和新盲测使用同一条自包含问题,不需要附加 JSON Schema。 它要求 9×35 个整数;“独立、允许重复”是生成指令,不保证真正独立均匀随机。

Using only the current language model, make 315 independent first-instinct selections of an integer from 1 through 355 inclusive. Sample mentally with replacement: after each choice, forget the earlier choices. Repeated integers are allowed and expected; do not try to cover the range, balance frequencies, avoid duplicates, or alternate high and low values. Output only one JSON object with the sole key "numbers", containing 9 arrays of exactly 35 integers each. Do not use tools, code execution, calculators, search, APIs, or external random generators. Do not count, use an arithmetic progression, or reuse a designed sequence. No explanation.

历史七模型冻结问题如下;不要把它与新八模型资产混用:

Using only the current language model, produce 315 separate first-instinct
choices of an integer from 1 through 355 inclusive in the exact JSON structure
required by the supplied output schema. Do not use tools, Python, code execution,
calculators, search, APIs, or external random generators. Do not count upward or
downward and do not use an arithmetic progression, repeating cycle, repeated block,
or another designed pattern. Accidental repetitions are valid. Output only the
schema-conforming JSON value with no explanation.

模型在一次 response 中返回 9×35 个整数。一次调用包含多个微选择,但不是三次 独立提问;prompt 与 Schema 分别在 prompts/identity-v3-schema.txt 和 schemas/identity-v3.json。

七模型三轮确认均未过预设门槛

新款 GPT-6 Sol/Luna 已进入 16-model 参考库和七类适配器。按冻结的 confirmation-v8 计划,105 次新调用全部严格符合 Schema;TraceOne 一问是 101/105,但 GPT-6 Astra 与 GPT-6 Luna 各只有 13/15,未过每类至少 14/15 的 预登记门槛。ModelTrace 同响应一问也是 101/105,三问是 35/35。 本批结果保留为失败证据,不能据此宣称七款均优于上游;详见 docs/results.md。

随后冻结的 release-candidate-v10 在独立 confirmation-v9 上是 98/105; GPT-5.6 Sol 为 13/15,GPT-6 Sol 为 12/15,仍未过同一门槛。 ModelTrace 同响应一问为 96/105,非重叠三问 35/35。

历史 315 数字 v11 加入原始数字频率特征,在当时新采集的 confirmation-v10 上为 103/105(98.1%);GPT-6 Sol 为 13/15,仍未达到每类 ≥14/15 的预设门槛。 同响应 ModelTrace 一问为 104/105,互不重叠三问为 35/35。因此七模型支持 可以试用,但不能宣称全面超过上游。完整失败样本见 docs/results.md。

0.1.0 的五模型冻结盲测结果

发布配置 v8 在 confirmation-v7 采集前冻结。75 次新调用全部成功且严格符合 Schema:

  • TraceOne supported:75/75;五个模型分别 15/15。
  • 同响应 ModelTrace 一问:74/75;Sol 为 14/15,其余为 15/15。
  • 同响应、互不重叠的 ModelTrace 三问:25/25;每类 5/5。

因此,每次判定所需模型调用由三次降为一次。在固定为 75 次模型调用的本批对照中, TraceOne 一问形成 75 个独立决定,三问 arm 形成 25 个 triplet 决定;两者点估计均为 100%。TraceOne 比同响应 ModelTrace 一问整体多对 1 条,但不足以证明统计显著优势 或正式 non-inferiority。准确表述是:本批五类的点估计均未低于一问对照,其中 Sol 多对一条;TraceOne 一问与三问 arm 的 accuracy 点估计相同。 95% Wilson 区间及逐样本决策见 data/confirmation-v7-evaluation.json 和 data/confirmation-v7-head-to-head.json。

标签是 Codex requested_model,不是服务端实际权重的独立证明。

0.1.0 的 Open-world 结果与边界

真正的 held-label 评测会把一个完整 excluded label 同时移出 bank、adapter feature space 和 support 拟合,再把它当作未见模型:

  • supported:24/288 误接收,8.33%(95% Wilson 5.66%–12.10%)。
  • enrolled:59/288 误接收,20.49%。
  • ModelTrace closed-set:288/288 被迫归到某个已知标签。

这是调过超参数的 development 结果,未见样本来自上游语料,不是独立 provider 盲测。最大短板是 held-out GPT-5.4:supported 仍误接收 20/36。固定完整 bank 上的 excluded-route rejection 只能叫 registered-distractor 检查,不能冒充真正 OOD。完整结果在 data/open-world-development-v2.json。

安装与身份识别

需要 Python 3.11 或更新版本。

python3 -m venv .venv
.venv/bin/pip install -e .
.venv/bin/python -m unittest discover -s tests -v

打印冻结 prompt:

traceone prompt

采集一次 Codex 响应:

python3 scripts/collect_codex.py \
  --output data/live/one.jsonl \
  --prompt prompts/identity-v3-schema.txt \
  --schema schemas/identity-v3.json \
  --split holdout --repeat 1 --model gpt-5.6-terra --run-id my-run

离线识别保存的 JSON 响应:

traceone identify answer.json --format grid --method optimized

optimized 是仓库默认的八类实验模式,要求使用新版问题并经过独立校准的支持范围检查。 supported、enrolled 是保留的七类历史方法,两者先经过旧 outer guard。 unknown 是有效结果,不应强制改成某个模型。

复现最终评测与冻结检查:

python3 scripts/verify_frozen.py config/release-candidate-v12.json
PYTHONPATH=src python3 scripts/evaluate_eight_optimized.py --verify-only
PYTHONPATH=src python3 scripts/evaluate_eight_optimized.py \
  --responses data/public/confirmation-v12.jsonl --output /tmp/traceone-v12-eval.json
node scripts/test_eight_classifier.mjs
PYTHONPATH=src python3 scripts/evaluate_live.py \
  data/public/confirmation-v7.jsonl --output /tmp/traceone-eval.json
PYTHONPATH=src python3 scripts/evaluate_head_to_head.py \
  data/public/confirmation-v7.jsonl --output /tmp/traceone-h2h.json
python3 scripts/verify_frozen.py config/release-candidate-v8.json --revision 7b52cb1
python3 scripts/verify_release.py config/release-v0.1.0.json
python3 scripts/verify_frozen.py config/release-candidate-v11.json --revision 8d70a3b
PYTHONPATH=src python3 scripts/evaluate_live.py \
  data/public/confirmation-v10.jsonl --output /tmp/traceone-v11-eval.json

降质检测

身份 probe 只检测行为路由,不能证明“降智”。TraceOne v2 canary 有 192 道 版本化 exact-answer 题,baseline/current 对同一题逐项配对。默认把无效输出计错, 要求题目集合完全一致,并可按题族做 Holm 校正:

traceone degradation baseline-outcomes.json current-outcomes.json \
  --minimum-effect 0.05 --by-family --invalid-policy fail

先做 exact power planning:

traceone plan-degradation \
  --regression-probability 0.10 --improvement-probability 0.02 \
  --minimum-effect 0.05 --target-power 0.80

在该预声明情景下,旧 48 题设计的检测功效只有 29.1%,192 题为 89.8%,所以 发布 canary 扩到 192 题。该数字依赖假设,不是已观察到的降质率。采集与评分见 scripts/collect_canary.py、traceone score-canary;每题单独调用以保留合理的 item-level 配对,它不属于一次身份识别的调用预算。

证据与限制

行为指纹会随 system prompt、runtime、reasoning effort、wrapper 和服务端更新漂移。 没有 routing log 或可信 attestation 时,单次 mismatch 可能是分类错误、自然波动或 真实 route substitution;TraceOne 报告证据,不声称观察到了服务端权重本身。

MIT License。

About

CodeX 模型溯源、API检测与降智检测:一次提问识别五款模型的行为指纹。

Topics

Resources

Contributing

Security policy

Stars

11 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages