gavxm/yurai
GitHub: gavxm/yurai
Yurai 是一款面向 AI 模型的溯源审计工具,通过追踪模型谱系、审计许可证继承并标记信任漏洞,帮助团队在供应链层面识别合规风险。
Stars: 0 | Forks: 0
# Yurai
**yurai** — 由来, *"起源;事物的来源。"*
Yurai 是一款面向 AI 模型的溯源审计工具。它可以追踪模型谱系、审计许可证继承情况,并标记出 Hugging Face 模型中存在的信任漏洞。
你可以通过 CLI 运行它,将其接入 CI,或者在调查 UI 中探索审计结果。

**[在线演示](https://gavxm.github.io/yurai)** · **[安装](#install)**
## 审计结果
- **许可证继承违规**:在 Llama 的衍生模型上声明了 Apache-2.0,但实际上该模型受 Meta 的 Community License 约束
- **传递性许可证违规**:模型声明了宽松许可证,但其祖父模型或更早的祖先模型使用了 copyleft 或受限许可证
- **谱系不一致**:声明的 base model 与 `config.json` 中的架构不匹配
- **受限衍生模型检测**:由受限父模型派生出的公开模型,绕过了访问控制(直接使用 HF 的 `gated` 字段,若不存在则回退至许可证启发式判断)
- **文档缺失**:缺少许可证或 base model 声明
- **信任信号**:新创建的上传者账号、零社区互动、下载量极高但零点赞、近期被修改的陈旧模型
- **元数据异常**:权重大小与声明的架构不匹配、未声明的量化、可疑或缺失的权重文件
每项审计结果都包含严重程度、解释其*为何*重要的原因,以及触发该结果的原始声明值与实际值对比。
## 安装
```
cargo install yurai
```
## 用法
```
# 调查模型
yurai investigate meta-llama/Llama-3.1-8B-Instruct
# JSON 输出
yurai investigate ruslanmv/Medical-Llama3-8B --json
# SARIF 输出(用于 GitHub code scanning)
yurai investigate ruslanmv/Medical-Llama3-8B --sarif
# 在发现高危漏洞时使 CI 失败
yurai investigate some/model --fail-on-high
```
批量模式 - 从文件或 stdin 调查多个模型:
```
# 从文件
yurai batch --from models.txt
# 从 stdin
echo -e "microsoft/phi-2\nruslanmv/Medical-Llama3-8B" | yurai batch
# 批量使用 SARIF 输出
yurai batch --from models.txt --sarif results.sarif
```
设置 `HF_TOKEN` 以访问受限模型:
```
export HF_TOKEN=hf_...
yurai investigate meta-llama/Llama-3.1-8B-Instruct
```
## Web 资源管理器
三栏式调查 UI:谱系图、选项卡式的证据详情,以及包含声明值与实际值差异对比的审计结果。点击某项审计结果,即可在所有面板中高亮显示相关的证据。
**[gavxm.github.io/yurai](https://gavxm.github.io/yurai)**
在本地运行:
```
cd web && npm install && npm run dev
```
## GitHub Action
将溯源检查添加到你的 CI pipeline 中:
```
- uses: gavxm/yurai@v0.3.0
with:
models: |
meta-llama/Llama-3.1-8B-Instruct
ruslanmv/Medical-Llama3-8B
fail-on-high: true
hf-token: ${{ secrets.HF_TOKEN }}
```
该 Action 会对每个模型进行调查,并将摘要发布到作业输出中。
设置 `fail-on-high: true` 可在存在 HIGH 严重级别的审计结果时阻止合并。
## 工作原理
Yurai 并发地从四个 HuggingFace 来源获取证据,随后对它们执行交叉引用检查:
| 来源 | 提供的内容 |
| ------------------------- | -------------------------------------------------------------------------- |
| HF 元数据 | 许可证、base model、标签、下载量、点赞数、受限状态、文件列表、时间戳 |
| 模型树 | 多跳谱系链(最多 4 个祖先)、许可证、受限状态、同级模型 |
| config.json + safetensors | 架构、参数、权重大小、量化配置 |
| 社区信号 | 上传者账号注册时间、讨论活跃度 |
其核心洞见在于**将差异视为信号**:数据源之间的矛盾正是我们要找的审计结果,而不是附带的噪音。
## 架构
```
src/lib.rs :types, public API, schema
src/engine.rs :investigation orchestration
src/main.rs :CLI, batch mode, SARIF output
src/render.rs :terminal text rendering
src/sources/ :evidence fetchers (HF metadata, model tree, config, community)
src/findings/ :cross-referenced checks (license, lineage, gated, trust, metadata, doc gaps)
web/ :React + Vite + Tailwind
```
## 许可证
AGPL-3.0。详见 [LICENSE](./LICENSE)。
标签:AI模型审计, DevSecOps, Rust, 上游代理, 可视化界面, 开源合规, 溯源分析, 网络流量审计, 通知系统