你的 API 中转站在「渗水」吗?——上游模型真伪检测方法论
什么是中转站「渗水」 LLM API 中转站(把 Claude / GPT / Gemini 等 API 二次转售)这两年很火。但行业里有个公开的秘密:上游通道经常「渗水」——商家界面写着 Claude Sonnet,后台实际把请求路由到便宜得多的模型(Qwen、DeepSeek,或同模型的量化劣化版)。 更隐蔽的是:被偷换的上游常被注入一段系统提示,强制它自称"我是 Claude,由 Anthropic 制造"。于是你直接问"你是什么模型",它一口咬定是 Claude——你被骗得明明白白。 渗水的代价是真实的:产品体验变差、用户流失,你却以为是自己 prompt 没写好——真正的原因是底下的模型被换了。 为什么"问模型自己是谁"完全没用 最朴素的检测是直接问模型身份。我们做过对照实验:给一批便宜模型注入"你是 Claude"的系统提示后,它们 100% 改口自称 Claude。自我声明这条路被伪装彻底击穿。 学术界结论一致:模型身份不能靠它自己说,要靠行为指纹——模型在大量受控输入下的输出分布是它的"笔迹",伪装提示改不了这个笔迹。 行为指纹检测:原理(高层) 核心思路(不依赖模型自我声明): 用一组精心设计的探针输入去问目标端点,收集它的输出。这些探针覆盖分词行为、特定推理、风格习惯等维度——不同模型家族在这些维度上有稳定差异。 把输出转成向量指纹,与各主流模型的参考指纹库做相似度比对。 看"声称的模型家族"与"指纹最像的家族"是否一致。不一致 = 疑似渗水。 这套方法在学术界有坚实基础(如 USENIX Security 2025 的 LLMmap:少量交互即可在数十个模型版本上高准确率识别)。关键点:即使上游被提示伪装自称 Claude,行为指纹依然指向它的真实家族——因为伪装改的是"它说自己是谁",改不了"它实际怎么答"。 准确率与边界(诚实说) 干净条件:整模型替换(如 Claude→Qwen)识别准确率很高(我们的实测与公开论文一致,在 96% 量级)。 伪装条件:注入"你是 Claude"后,自我声明被骗,但行为指纹仍能识破真实家族。 弱指纹模型:少数模型家族在向量空间里相互接近,单次判定会有假阳——用多轮投票(多次检测取多数)消除。 检不出的情况(必须诚实):同一模型的量化/蒸馏劣化版与全精度版指纹接近,目前难以稳定区分;参考库里没有的模型只能判"不像库内任何一个",不能指名。 所有结论都是概率信号,不是法律证据。 一个脱敏的实测样例 我们用检测器扫描一个测试网关上的一批模型(声称的牌子 vs 指纹实测): 声称 指纹实测 结论 Qwen Qwen ✅ 真 DeepSeek DeepSeek ✅ 真 Google Google ✅ 真 某弱指纹模型(单轮) 偶发偏移 ⚠️ 单轮假阳 → 多轮投票后判真 诚实的模型逐个通过;弱指纹模型的单轮假阳被多轮投票纠正。这正是检测系统需要的校准能力。 ...










