LLM蒸馏检测工具

ModelAudit是一个基于统计取证的多方法蒸馏检测框架,专注于通过行为探测、风格签名和表示相似度分析检测未经授权的模型蒸馏行为。

  • by liuxiaotong
  • Python
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 liuxiaotong/model-audit

使用说明

英语 | 中文


ModelAudit

LLM Distillation Detection and Model Fingerprinting
via Statistical Forensics

LLM 蒸馏检测与模型指纹审计 — 统计取证 · 行为签名 · 跨模型血缘推断
Detect unauthorized model distillation through behavioral probing, stylistic fingerprinting, and representation similarity analysis


摘要 · 问题陈述 · 形式框架 · 建筑 · 关键创新 · 快速开始 · 检测方法 · 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<br/>20 Prompts × 10 Dims"] --> E["AuditEngine<br/>Concurrent Probing"]
    E --> F["Fingerprint<br/>Feature Extraction"]
    F --> L["LLMmap<br/>Pearson Correlation"]
    F --> D["DLI<br/>JS Divergence"]
    F --> S["StyleAnalysis<br/>12-Family Signatures"]
    F --> R["REEF<br/>CKA Similarity"]
    L --> V["Verdict Engine<br/>Hypothesis Testing"]
    D --> V
    S --> V
    R --> V
    V --> Rep["Audit Report<br/>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 benchmark
Python 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 <file> 检测文本数据来源
knowlyr-modelaudit detect <file> -n 50 限制检测条数
knowlyr-modelaudit verify <model> 验证模型身份
knowlyr-modelaudit compare <a> <b> 比对两个模型指纹
knowlyr-modelaudit audit --teacher <a> --student <b> 完整蒸馏审计
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<br/>Discovery"] --> Recipe["Recipe<br/>Analysis"]
    Recipe --> Synth["Synth<br/>Generation"]
    Recipe --> Label["Label<br/>Annotation"]
    Synth --> Check["Check<br/>Quality"]
    Label --> Check
    Check --> Audit["Audit<br/>Model Audit"]
    Crew["Crew<br/>Deliberation Engine"]
    Agent["Agent<br/>RL Framework"]
    ID["ID<br/>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数据集雷达 数据集竞争情报、趋势分析 GitHub
分析 DataRecipe 逆向分析、Schema 提取、成本估算 GitHub
生产 DataSynth / 恢复 LLM 批量合成 / 轻量标注 GitHub · GitHub
质量 数据检查 规则验证、重复检测、分布分析 GitHub
审计 模型审计 蒸馏检测 · 模型指纹 · 统计取证 You are here
身份 knowlyr id 身份系统 + AI 员工运行时 GitHub
审议情况 船员 对抗式多智能体协商 · 持久记忆进化 · MCP 原生 GitHub
代理商培训 knowlyr健身房 Gymnasium 风格 RL 框架 · 过程奖励模型 · SFT/DPO/GRPO GitHub

发展

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