chayan-bit/pentimento
GitHub: chayan-bit/pentimento
Pentimento 是一个无需运行模型即可对神经网络权重进行静态检查、比对、指纹识别和威胁扫描的工具链,旨在为 AI 模型供应链提供类似二进制安全领域的溯源与审查能力。
Stars: 0 | Forks: 0
# Pentimento
**用于神经网络权重的静态分析工具链——无需运行模型,即可检查、比对、指纹识别和扫描模型检查点。**
**状态:设计阶段。**
架构、威胁模型和规则语言详见 [`docs/`](docs/);实现进度在[路线图](docs/roadmap.md)中追踪。
欢迎现在提交设计审查的 issue 和 PR——这正是社区审查成本最低的阶段。
## 问题所在
我们对待模型权重的方式,就像业界在 1995 年对待二进制文件一样:将其视为我们要么运行要么不运行的不透明数据块。
如今,关于检查点的每一个安全和溯源问题,都是通过*动态*方式来回答的——运行它、探测它、评估它。
但是,对模型进行动态分析是不够的,原因与对二进制文件进行动态分析不够一样:在某个罕见输入下触发的后门永远不会出现在你的评估套件中,就像直到通过特定日期检查才会发作的恶意软件一样。
与此同时,供应链已经呈爆炸式增长:公共枢纽上有数以百万计未经审查的检查点,对微调进行再微调却没有任何记录的谱系,以及企业在部署下载的权重时,根本没有进行等效的防病毒扫描。
二进制安全领域在过去 30 年里建立起来的东西——反汇编器、比对工具、签名扫描器、溯源数据库——在权重领域根本不存在:
- 现有的模型扫描器([modelscan](https://github.com/protectai/modelscan)、picklescan)会检查**序列化格式**中是否存在执行代码的 payload。它们从不从语义上查看权重。
- 机制可解释性会查看模型内部,但需要运行它们,且其目标是科学研究而非从业者工具。
- 模型合并工具([mergekit](https://github.com/arcee-ai/mergekit))会操作权重,但不会对其进行分析。
- 关于权重指纹识别和静态后门检测的学术研究虽然存在,但都是零散的一次性论文仓库,而不是统一、持续维护的工具链。
还没有人打造出这个领域的 IDA Pro。Pentimento 就是那个缺失的静态工具链。
## Pentimento 是什么
基于共享中间表示的五大能力,全部直接对检查点文件进行操作——不需要 GPU、不需要推理、不需要训练数据。
| 能力 | 二进制安全类比 | 它能解答什么问题 |
|---|---|---|
| **Inspect** | 反汇编器 / `readelf` | 这个检查点里到底有什么?架构、张量清单、dtype/布局异常、元数据不一致。 |
| **Diff** | BinDiff | 这次微调到底改变了什么?逐张量的差值、涉及层映射图、低秩结构恢复(“这是一个嫁接到第 12-18 层的 rank-16 LoRA”)。 |
| **Fingerprint** | FLIRT 签名 / ssdeep | 这个模型是从哪里来的?能够在微调、排列和精度变化中保留下来的不变谱系指纹。 |
| **Scan** | YARA | 这个检查点是否匹配已知恶意或已知显著的模式?基于权重空间特征的声明式社区规则。 |
| **Anomaly** | 加密段 / 熵启发式分析 | 这里是否有任何偏离该架构检查点经验分布群体的内容? |
完整模块设计:[docs/architecture.md](docs/architecture.md)。
规则语言:[docs/rules.md](docs/rules.md)。
## Pentimento 不是什么(在提交显而易见的 issue 之前请阅读此部分)
我们已经预先写明了这些局限性,因为一个夸大其词的安全工具比没有工具更糟糕。
1. **它不是后门预言机。**
Goldwasser、Kim、Vaikuntanathan 和 Zamir(2022)证明了在某些情况下,可以在模型中植入在密码学意义上*不可检测的*后门。
没有任何静态工具能够承诺抓住一个资源达到最高级别的攻击者,我们也不能。
与 YARA 和防病毒软件一样,我们的目标是**提高攻击者的成本**,并可靠地捕获*已知的植入族和低成本的攻击*——这占据了现实世界中滥用行为的绝大多数。
有关我们涵盖和不涵盖的显式攻击者层级,请参阅[威胁模型](docs/threat-model.md)。
2. **它不输出法律结论。**
权重相似度是*证据*,而不是证明。
Pentimento 报告的是经过校准的发现(“与 Llama-3.1-8B 的谱指纹相匹配,置信度 0.97,方法为 AWM 风格的不变量”),而绝不会出现“违反许可”之类的结论字符串。
将证据转化为主张是带有律师的人类的工作。
3. **已知的原生 diff 机制存在缺陷,因此我们不采用它。**
权重空间具有庞大的对称群——神经元/注意力头排列、缩放,以及残差流的完全正交旋转(这是 SliceGPT 背后的计算不变性结果)——在这些对称性下,两个功能完全相同的检查点在数值上看起来毫无关联。
仅靠排列对齐(Git Re-Basin 风格)对于 transformer 来说可被证明是不够的,因此 Pentimento 的主要路径是**不变特征**(奇异值谱、不变注意力乘积签名、CKA),它们在解析上对对称群进行了求商处理,并将显式对齐作为一种带有残差标记的尽力而为模式。
完整的对称性目录及每个主张的验证状态在 [docs/architecture.md](docs/architecture.md) 中。
4. **“统计异常值”需要的是参考群体,而不是主观感觉。**
异常检测严格定义为相对于经验参考语料库进行的衡量,这些语料库由相同架构的公共枢纽检查点构建而成,并随附测量的误报率。
如果你的架构还没有语料库,Pentimento 会提示“无基准”,而不是盲目猜测。
5. **它必须在 70B+ 规模下工作,因此任何操作都绝不会加载完整模型。**
每一项分析都是基于对 safetensors/GGUF 的流式、内存映射、逐层访问来定义的——加载器契约禁止将检查点具体化。
## 横向对比
| | 序列化扫描器(modelscan、picklescan) | 合并/操作工具(mergekit、ckpt) | 学术指纹库(SeedPrints、AWM、GhostSpec) | 机制可解释性 | **Pentimento** |
|---|---|---|---|---|---|
| 从语义上查看权重*值* | ✗ | 部分 | ✓ | ✓ | ✓ |
| 无需推理即可运行 | ✓ | ✓ | 多数情况下 | ✗ | ✓ |
| 统一的工具链,而非某篇论文的方法 | ✓ | ✓ | ✗ | ✗ | ✓ |
| 社区可扩展签名 | ✗ | ✗ | ✗ | ✗ | ✓ |
| 发布了诚实的威胁模型 | 部分 | 不适用 | 极少 | 不适用 | ✓ |
Pentimento 将学术研究视为其标准库,而非竞争对手:文献中的指纹识别方法成为了统一 CLI 和报告格式背后的可插拔后端。
引用和各论文的定位:[docs/related-work.md](docs/related-work.md)。
## 计划接口
```
$ pnt inspect model.safetensors
$ pnt diff base.safetensors finetune.safetensors # touched layers, low-rank grafts
$ pnt lineage mystery-model/ --index hub-reference.idx # nearest ancestors + confidence
$ pnt scan model.gguf --rules community-rules/ # YARA-style weight signatures
$ pnt anomaly model.safetensors --corpus llama-8b.ref # population outliers + FP rate
```
所有功能也都以 Python API 的形式提供,并且报告会输出机器可读的 JSON(受 SARIF 启发),可用于 CI 门禁。
## 文档
| 文档 | 内容 |
|---|---|
| [docs/architecture.md](docs/architecture.md) | 模块设计、Weight IR、规范化、流式加载器契约 |
| [docs/threat-model.md](docs/threat-model.md) | 攻击者层级、在/不在范围内、理论限制、检测理念 |
| [docs/rules.md](docs/rules.md) | 权重签名规则语言(规范草案) |
| [docs/related-work.md](docs/related-work.md) | 带注释的现有技术:论文、工具以及 Pentimento 从中借鉴的内容 |
| [docs/roadmap.md](docs/roadmap.md) | 从文档阶段到枢纽规模扫描的分阶段计划 |
| [docs/faq.md](docs/faq.md) | 对最尖锐的反对意见的抢先解答 |
## 贡献
期待设计阶段的贡献:对威胁模型的对抗性审查、规则语言反馈、我们遗漏的指纹识别方法,以及参考语料库方法论。
请参阅 [CONTRIBUTING.md](CONTRIBUTING.md) 和 [SECURITY.md](SECURITY.md)。
## 许可证
[Apache-2.0](LICENSE)。
标签:Linux系统监控, 云安全监控, 人工智能, 实时告警, 文档结构分析, 模型安全, 用户模式Hook绕过, 神经网络模型, 逆向分析, 逆向工具, 静态分析