英语 | 中文
ModelAudit
LLM Distillation Detection and Model Fingerprinting via Statistical Forensics
LLM 蒸馏检测与模型指纹审计 — 统计取证 · 行为签名 · 跨模型血缘推断
Detect unauthorized model distillation through behavioral probing, stylistic fingerprinting, and representation similarity analysis
 ](https://pypi.org/project/knowlyr-modelaudit/)  
   
摘要 · 问题陈述 · 形式框架 · 建筑 · 关键创新 · 快速开始 · 检测方法 · MCP服务器 · 生态系统 · 参考文献
______________________________________________________________________
摘要
大语言模型的蒸馏行为 (knowledge distillation) 已成为模型知识产权保护的核心威胁——学生模型通过模仿教师模型的输出分布,可以在未经授权的情况下复制其能力。现有检测方法要么依赖白盒权重访问(实际场景中通常不可得),要么仅分析表面文本特征(易被规避)。
ModelAudit 提出基于统计取证 (statistical forensics) 的多方法蒸馏检测框架:通过行为探测 (behavioral probing) 提取模型指纹 $\\mathcal{F}(M)$,基于假设检验 (hypothesis testing) 判定蒸馏关系,结合风格签名 (风格签名)、行为血缘推断 (behavioral lineage inference) 和表示相似度 (representation similarity) 四种互补方法,实现黑盒到白盒的完整审计链。
模型审计 实现了一种基于统计取证的多方法蒸馏检测框架。该系统通过20个行为探测提取模型指纹$\\mathcal{F}(M)$,应用假设检验$H_0:M_S\\perp M_T$来确定蒸馏关系,并结合4种互补方法——LLMmap(行为探测)、DLI(通过Jensen Shannon散度进行谱系推断)、REEF(CKA表示相似性)和StyleAnalysis(12个家族风格签名)——形成一个完整的黑盒到白盒审计链。内置基准测试在6个模型系列(14个样本)中实现了100%的检测准确率。
______________________________________________________________________
问题陈述
模型蒸馏检测面临三个根本性挑战:
| 根本性问题 | 形式化定义 | 现有方法局限 | ModelAudit 的方法 |
|---|---|---|---|
| 蒸馏不可观测 | |||
| Distillation Opacity | 蒸馏过程 $M_S \\leftarrow \\text{KD}(M_T)$ 对外部观察者不可见,仅可观测 $M_T$ 和 $M_S$ 的输入输出行为 | 依赖白盒权重访问(API-only 模型无法适用) | 行为探测指纹:20 个探测 Prompt 提取可观测行为特征,黑盒即可工作 |
| 风格趋同 | |||
| Stylistic Convergence | RLHF 对齐使不同模型的输出风格趋于相似,$\\text{style}(M_i) \\approx \\text{style}(M_j)$ | 简单文本特征(长度、词频)区分度不足 | 多维度签名:自我认知 / 安全边界 / 注入测试 / 格式控制等 10 个维度,捕获深层行为差异 |
| 跨模型不可比 | |||
| Cross-Model Incomparability | 不同 Provider 的 API 格式、参数、行为规范各异 | 单一方法覆盖不全,黑盒/白盒方法割裂 | 四方法融合:LLMmap + DLI + REEF + StyleAnalysis,从行为到表示多层次覆盖 |
ModelAudit 不是通用的模型评测工具。它专注于一个问题:这个模型是否未经授权地复制了另一个模型的能力? 通过行为指纹提取和统计检验给出可量化的审计结论。
______________________________________________________________________
形式框架
模型指纹提取
模型指纹定义为探测集上的行为响应分布:
$$\\mathcal{F}(M)={p_M(y\\mid-x_i)}\_{i=1}^{N}$$
其中 ${x_i}\_{i=1}^{N}$ 为 $N=20$ 个探测 Prompt,覆盖自我认知、安全边界、注入测试、推理、创意、多语言、格式控制、角色扮演、代码生成、摘要能力 10 个维度。每个探测的响应 $y$ 被提取为特征向量 $\\phi(y) \\in \\mathbb{R}^d$。
蒸馏假设检验
蒸馏检测形式化为假设检验问题:
$$H_0:M_S\\perp M_T\\quad\\text{vs}\\quad H_1:M_S\\left箭头M_T$$
检验统计量(LLMmap 方法)——基于指纹向量的 Pearson 相关:
$$\\text{sim}(M_1,M_2)=\\frac{\\sum_i(\\phi_i^{(1)}-\\bar{\\phi}^{$$
当 $\\text{sim}(M_S, M_T) > \\delta$(默认 $\\delta = 0.7$)时,拒绝 $H_0$,判定存在蒸馏嫌疑。
行为谱系推断(DLI)
基于 Jensen-Shannon 散度的血缘推断:
$$D\_{JS}(P|Q)=\\frac{1}{2}D\_{KL}(P| M)+\\frac{1}{2}D\_{KL}(Q|M),\\fquad M=\\frac{P+Q}{2}$$
对每个探测维度计算行为签名的 JS 散度,综合多维度得分判定血缘关系。
表示相似性(REEF)
白盒场景下,基于 Centered Kernel Alignment (CKA) 比对中间层隐藏状态:
$$\\text{CKA}(X,Y)=\\frac{|Y^T X|\_F^2}{|X^T X| \_F \\cdot|Y^ T Y|\_F}$$
其中 $X, Y$ 分别为教师和学生模型在相同输入上的隐藏层激活矩阵。逐层 CKA 热力图可揭示蒸馏发生在哪些层。
______________________________________________________________________
建筑
graph LR
P["Probe Library
20 Prompts × 10 Dims"] --> E["AuditEngine
Concurrent Probing"]
E --> F["Fingerprint
Feature Extraction"]
F --> L["LLMmap
Pearson Correlation"]
F --> D["DLI
JS Divergence"]
F --> S["StyleAnalysis
12-Family Signatures"]
F --> R["REEF
CKA Similarity"]
L --> V["Verdict Engine
Hypothesis Testing"]
D --> V
S --> V
R --> V
V --> Rep["Audit Report
6-Section Markdown"]
style E fill:#0969da,color:#fff,stroke:#0969da
style V fill:#8b5cf6,color:#fff,stroke:#8b5cf6
style Rep fill:#2da44e,color:#fff,stroke:#2da44e
style P fill:#1a1a2e,color:#e0e0e0,stroke:#444
style F fill:#1a1a2e,color:#e0e0e0,stroke:#444
style L fill:#1a1a2e,color:#e0e0e0,stroke:#444
style D fill:#1a1a2e,color:#e0e0e0,stroke:#444
style S fill:#1a1a2e,color:#e0e0e0,stroke:#444
style R fill:#1a1a2e,color:#e0e0e0,stroke:#444分层架构
| 层 | 模块 | 职责 |
|---|---|---|
| 探测 | probes/prompts.py | 20 个探测 Prompt,覆盖 10 个行为维度 |
| 发动机 | engine.py | 统一入口,ThreadPoolExecutor 并发探测 (4 并发) |
| 方法 | methods/ | 4 种检测方法注册表,按黑盒/白盒分层 |
| 指纹 | models.py | Pydantic 数据模型,指纹特征向量 |
| 缓存 | cache.py | SHA-256 防碰撞指纹缓存,TTL 过期 |
| 报告 | report.py | 6 节结构化审计报告生成 |
| 基准 | benchmark.py | 14 条样本 × 6 家族内置评估集 |
| 接口 | cli.py · mcp_server.py | CLI + MCP 8 工具 |
______________________________________________________________________
关键创新
1.多方法法医分析
四种互补检测方法覆盖从黑盒到白盒的完整审计链:
| 方法 | 类型 | 原理 | 参考 |
|---|---|---|---|
| LLMmap | 黑盒 | 20 个探测 Prompt,Pearson 相关比对响应模式 | USENIX Security 2025 |
| 深度学习基础设施 | 黑盒 | 行为签名 + Jensen-Shannon 散度血缘推断 | ICLR 2026 |
| 礁 | 白盒 | CKA 逐层隐藏状态相似度 | NeurIPS 2024 |
| 风格分析 | 风格分析 | 12 个模型家族风格签名 + 语言检测 | — |
任一方法独立可用,多方法融合提高判定置信度。内置 benchmark 在 6 个模型家族上实现 100% 检测准确率。
2.10维覆盖的行为探测
超越简单的文本统计特征,通过 10 个认知维度的结构化探测提取深层行为差异:
| 维度 | 探测内容 |
|---|---|
| 自我认知 | 模型身份、创建者、训练截止 |
| 安全边界 | 拒绝策略、措辞差异 |
| 注入测试 | Prompt injection 响应差异 |
| 知识与推理 | 知识边界、逻辑推理、伦理判断 |
| 创意写作 | 叙事风格、类比能力 |
| 多语言 | 中文响应、多语翻译 |
| 格式控制 | JSON 输出、Markdown 表格 |
| 角色扮演 | 角色一致性、创意表达 |
| 代码生成 | 编码风格、注释习惯 |
| 摘要能力 | 信息压缩、表达密度 |
这些维度在 RLHF 对齐后仍保留显著的模型间差异,是可靠的指纹特征来源。
3.跨提供商审计链
支持跨 Provider 的蒸馏审计——教师和学生模型可来自不同 API:
# 跨 provider 审计:Anthropic 教师 vs Moonshot 学生
knowlyr-modelaudit audit \
--teacher claude-opus --teacher-provider anthropic \
--student kimi-k2.5 --student-provider openai \
--student-api-base https://api.moonshot.cn/v1 \
-o report.md自动生成 6 节详细审计报告:审计对象 → 方法 → 结果(指纹详情 + 逐条探测)→ 关键发现 → 结论 → 局限性声明。
4.智能缓存并发探测
ThreadPoolExecutor 并发发送探测 Prompt(默认 4 并发),指纹缓存支持 SHA-256 防碰撞 + TTL 过期:
- 首次探测:并发调用 API,自动缓存指纹到
.modelaudit_cache/ - 再次审计:直接复用缓存,避免重复 API 调用
- 智能重试:指数退避 + 认证/速率限制错误分类 + 可配置超时与重试次数
支持识别的 12 个模型家族:gpt-4 · gpt-3.5 · claude · llama · gemini · qwen · deepseek · mistral · yi · phi · cohere · chatglm
______________________________________________________________________
快速开始
pip install knowlyr-modelaudit可选依赖
pip install knowlyr-modelaudit[blackbox] # 黑盒指纹 (openai, anthropic, httpx)
pip install knowlyr-modelaudit[whitebox] # 白盒指纹 (torch, transformers)
pip install knowlyr-modelaudit[mcp] # MCP 服务器
pip install knowlyr-modelaudit[all] # 全部功能# 1. 检测文本来源
knowlyr-modelaudit detect texts.jsonl
# 2. 验证模型身份
knowlyr-modelaudit verify gpt-4o --provider openai
# 3. 比对模型指纹
knowlyr-modelaudit compare gpt-4o claude-sonnet --provider openai
# 4. 完整蒸馏审计
knowlyr-modelaudit audit --teacher gpt-4o --student my-model -o report.md
# 5. 运行 benchmark
knowlyr-modelaudit benchmarkPython SDK
from modelaudit import AuditEngine
engine = AuditEngine()
# 检测文本来源
results = engine.detect(["Hello! I'd be happy to help..."])
for r in results:
print(f"{r.predicted_model}: {r.confidence:.2%}")
# 比对模型指纹
result = engine.compare("gpt-4o", "my-model", method="llmmap")
print(f"相似度: {result.similarity:.4f}")
print(f"蒸馏关系: {'是' if result.is_derived else '否'}")
# 完整审计(跨 provider)
audit = engine.audit(
"claude-opus", "kimi-k2.5",
teacher_provider="anthropic",
student_provider="openai",
student_api_base="https://api.moonshot.cn/v1",
)
print(f"{audit.verdict} (confidence: {audit.confidence:.3f})")______________________________________________________________________
检测方法
探测维度详情(20 个 Probe)
| 维度 | 探测内容 |
|---|---|
| 自我认知 | 模型身份、创建者、训练截止 |
| 安全边界 | 拒绝策略、措辞差异 |
| 注入测试 | Prompt injection 响应差异 |
| 知识与推理 | 知识边界、逻辑推理、伦理判断 |
| 创意写作 | 叙事风格、类比能力 |
| 多语言 | 中文响应、多语翻译 |
| 格式控制 | JSON 输出、Markdown 表格 |
| 角色扮演 | 角色一致性、创意表达 |
| 代码生成 | 编码风格、注释习惯 |
| 摘要能力 | 信息压缩、表达密度 |
______________________________________________________________________
MCP服务器
{
"mcpServers": {
"knowlyr-modelaudit": {
"command": "uv",
"args": ["--directory", "/path/to/model-audit", "run", "python", "-m", "modelaudit.mcp_server"]
}
}
}| 工具 | 说明 |
|---|---|
detect_text_source | 检测文本数据来源 |
verify_model | 验证模型身份 |
compare_models | 黑盒比对 (llmmap / dli / style) |
compare_models_whitebox | 白盒比对 (REEF CKA) |
audit_distillation | 完整蒸馏审计 |
audit_memorization | 记忆化检测(前缀补全相似度) |
audit_report | 生成综合审计报告 |
audit_watermark | 水印检测(零宽字符 / 统计特征 / 双元组唯一率) |
______________________________________________________________________
CLI参考
完整命令列表
| 命令 | 功能 |
|---|---|
knowlyr-modelaudit detect | 检测文本数据来源 |
knowlyr-modelaudit detect -n 50 | 限制检测条数 |
knowlyr-modelaudit verify | 验证模型身份 |
knowlyr-modelaudit compare | 比对两个模型指纹 |
knowlyr-modelaudit audit --teacher --student | 完整蒸馏审计 |
knowlyr-modelaudit audit ... --teacher-provider anthropic | 跨 provider 审计 |
knowlyr-modelaudit audit ... --no-cache | 跳过缓存 |
knowlyr-modelaudit audit ... -f json | JSON 格式报告 |
knowlyr-modelaudit cache list | 查看缓存的指纹 |
knowlyr-modelaudit cache clear | 清除所有缓存 |
knowlyr-modelaudit benchmark | 运行内置 benchmark |
knowlyr-modelaudit benchmark --label claude | 按模型家族过滤 |
knowlyr-modelaudit methods | 列出可用检测方法 |
______________________________________________________________________
生态系统
Architecture Diagram
graph LR
Radar["Radar
Discovery"] --> Recipe["Recipe
Analysis"]
Recipe --> Synth["Synth
Generation"]
Recipe --> Label["Label
Annotation"]
Synth --> Check["Check
Quality"]
Label --> Check
Check --> Audit["Audit
Model Audit"]
Crew["Crew
Deliberation Engine"]
Agent["Agent
RL Framework"]
ID["ID
Identity Runtime"]
Crew -.->|能力定义| ID
ID -.->|身份 + 记忆| Crew
Crew -.->|轨迹 + 奖励| Agent
Agent -.->|优化策略| Crew
style Audit fill:#0969da,color:#fff,stroke:#0969da
style Crew fill:#2da44e,color:#fff,stroke:#2da44e
style Agent fill:#8b5cf6,color:#fff,stroke:#8b5cf6
style ID fill:#e5534b,color:#fff,stroke:#e5534b
style Radar fill:#1a1a2e,color:#e0e0e0,stroke:#444
style Recipe fill:#1a1a2e,color:#e0e0e0,stroke:#444
style Synth fill:#1a1a2e,color:#e0e0e0,stroke:#444
style Label fill:#1a1a2e,color:#e0e0e0,stroke:#444
style Check fill:#1a1a2e,color:#e0e0e0,stroke:#444| 图层 | 项目 | 描述 | 回购 |
|---|---|---|---|
| 发现 | AI数据集雷达 | 数据集竞争情报、趋势分析 | |
| 分析 | DataRecipe | 逆向分析、Schema 提取、成本估算 | |
| 生产 | DataSynth / 恢复 | LLM 批量合成 / 轻量标注 | · |
| 质量 | 数据检查 | 规则验证、重复检测、分布分析 | |
| 审计 | 模型审计 | 蒸馏检测 · 模型指纹 · 统计取证 | You are here |
| 身份 | knowlyr id | 身份系统 + AI 员工运行时 | |
| 审议情况 | 船员 | 对抗式多智能体协商 · 持久记忆进化 · MCP 原生 | |
| 代理商培训 | knowlyr健身房 | Gymnasium 风格 RL 框架 · 过程奖励模型 · SFT/DPO/GRPO |
______________________________________________________________________
发展
git clone https://github.com/liuxiaotong/model-audit.git
cd model-audit
pip install -e ".[all,dev]"
pytest持续集成: GitHub Actions,Python 3.10+。Tag push 自动发布 PyPI + GitHub Release。
______________________________________________________________________
参考文献
- LLMmap --Haller,R.等人,2025年。 *LLMmap:大型语言模型的指纹识别。* USENIX Security — 行为探测指纹的基础方法
- 深度学习基础设施 --陈等,2026。 *通过行为谱系推断检测LLM蒸馏。* ICLR — 基于 JS 散度的蒸馏血缘推断
- 礁 --贾等,2024。 *REEF:大型语言模型的表示编码指纹。* NeurIPS — CKA 白盒表示相似度
- 知识提炼 --Hinton,G.等人,2015。 *提取神经网络中的知识。* arXiv:1503.02531 — 知识蒸馏的奠基性工作
- CKA --Kornblith,S.等人,2019。 *重新审视神经网络表示的相似性。* ICML-表示相似度度量方法
- 模型指纹 --曹等,2021。 *IPGuard:通过指纹识别分类边界来保护深度神经网络的知识产权。* 亚洲CCS
______________________________________________________________________
许可证
______________________________________________________________________
knowlyr — LLM distillation detection and model fingerprinting via statistical forensics
