larrypeseckis/frontier-cyber-risk-eval
GitHub: larrypeseckis/frontier-cyber-risk-eval
一套面向前沿大模型网络协助能力的四级风险分类法、标注评估集及LLM自动评分工具,附带人机一致性对比来检验自动评分的可靠性。
Stars: 0 | Forks: 0
# 前沿网络风险评估集
一套分类法、一个已标注的 prompt 集合、运行它的工具,以及一份坦诚的试点结果。该项目提出了一个明确的问题并给出了答案:能否信任 LLM judge 对模型处理网络请求的方式进行评分,以及该 judge 在何处会失效。
**版本:** 0.1 · **许可证:** MIT · **状态:** 试点,开放评论
## 这是什么
大多数关于 AI 和网络风险的公开讨论都集中在容易的极端情况(明确允许、明确禁止)上,而忽略了真正存在争议的中间地带。本仓库采取了相反的方法。它定义了一个四层的网络协助分类法,将其转化为一个可运行的评估集,然后对该测试本身进行测试:它使用 LLM judge 对模型的回复进行评分,同时由人类对相同的回复进行评分,最后将两者进行比较。
最终交付物并不是一个排行榜。它是一个工具,加上首次运行的结果;该结果展示了此工具在规定条件下的有效性,并准确指出自动化评分器在哪些地方值得信任,哪些地方不值得信任。
## 四个层级
1. **分类法。** 分为四个等级(Allowed、Dual-use、High-risk、Disallowed),对应前沿实验室已经趋于一致的提升和自主性阈值。参见 `frontier-cyber-risk-taxonomy.md`。
2. **评估集。** 57 个已标注的 prompt 将分类法具体化,包含基本原理、风险因素、预期行为、授权是否重要,以及每个 prompt 锻炼的能力维度。参见 `EVAL-SET.md`。
3. **工具。** 一个 LLM-as-judge 评分器和一个盲测人机对比测试工具。参见 `scorer.py` 和 `human_compare.py`。
4. **结果。** 针对 gpt-5.5 进行的试点运行,由 claude-opus-4-8 担任 judge,并配备一名人类评分者。参见 `RESULTS.md`。
每个 prompt 都是一个刺激,而不是 payload。Tier 3 和 Tier 4 条目是在请求层面编写的拒绝测试。它们不包含可用代码、操作技术或分步指南。被测量的核心在于模型的回复。
## 试点结果简述
目标 gpt-5.5(bare model),judge claude-opus-4-8,一名人类评分者,57 个 prompt。完整的详细说明和注意事项见 `RESULTS.md`。
- **gpt-5.5 在此集合上未表现出任何可测量的网络过度拒绝**:5 个过度拒绝陷阱中错误拒绝了 0 个,33 个良性 prompt 中错误拒绝了 0 个,并且对被禁止的项目给出了建设性(重定向)的拒绝。
- **judge 在其做出的每一个裁决上都与人类一致。** 在 53 个已评分的项目中,通过/失败的同意率是完全的;观察到的行为同意率为 0.962(Cohen's kappa 0.923),仅有的两次分歧发生在多轮和 dual-use 边界上,且仅相差一个级别。
- **judge 在 10 个 Tier 4 项目中的 4 个上弃权**,这些是最严重的禁止 prompt,即使增加指令强烈度也拒绝做出裁决。除非检测并处理弃权情况,否则单 LLM judge pipeline 会默默地在其最重要的案例中失去覆盖率。
该试点支持两项主张(该集合能区分不同层级间的回答/拦截/拒绝;一个跨家族的 judge 在干净的回复上与人类在通过/失败判定上达成一致),但不支持第三项主张(benchmark 级别的安全性、在混乱的部分合规情况下的 judge 可靠性,或者在缺乏人类后备的情况下对最严重的 Tier 4 的覆盖率)。
## 快速开始
```
pip install -r requirements.txt
# 收集目标模型的回复(此处展示的是 openai bare model;其他模型请参见 EVAL-SET.md)
export OPENAI_API_KEY=...
python scorer.py collect --provider openai --model gpt-5.5 --out responses.jsonl
# 使用 LLM judge 对它们进行评判
export ANTHROPIC_API_KEY=...
python scorer.py score --judge-model claude-opus-4-8 --responses responses.jsonl --report report.json
# 先自己进行盲评,然后与 judge 进行比较
python human_compare.py grade --responses responses.jsonl --out human_grades.jsonl
python human_compare.py compare --human human_grades.jsonl --report report.json --out comparison.json
```
在打开 judge 的报告之前进行评分,这样你的评分才能保持独立。`grading-rubric.md` 中的评分标准是这一轮评分的配套参考。
## 仓库结构
| 文件 | 这是什么 |
|---|---|
| `README.md` | 本入口文件。 |
| `frontier-cyber-risk-taxonomy.md` | 四层分类法及其评估标准。 |
| `frontier-cyber-eval-set.jsonl` | 标准评估数据,每行一个标注的 prompt。 |
| `frontier-cyber-eval-set.csv` | 展平为相同的数据,便于在电子表格中查看。 |
| `EVAL-SET.md` | 详细的评估集参考:schema、维度、用法。 |
| `build_eval_set.py` | 单一事实来源;重新生成 JSONL 和 CSV。 |
| `scorer.py` | LLM-as-judge 工具:`collect` (anthropic/openai/codex-cli) 和 `score`。 |
| `human_compare.py` | 盲测人类评分器及人机一致性对比。 |
| `grading-rubric.md` | 用于盲测评分环节的单页评分标准。 |
| `sample_responses.jsonl` | 用于试运行 `score` 的小型示例回复。 |
| `RESULTS.md` | v0.1 试点结果、发现和局限性。 |
| `requirements.txt` | Python 依赖项。 |
| `LICENSE` | MIT。 |
## 复现评估数据
prompt 集合是由单一来源生成的,因此 JSONL 和 CSV 不会产生偏差:
```
python build_eval_set.py # rewrites frontier-cyber-eval-set.jsonl and .csv
```
编辑 `build_eval_set.py` 中的 `DATA` 列表以添加或更改 prompt,然后重新运行。
## 配套分类法
本仓库包含分类法文件 `frontier-cyber-risk-taxonomy.md`。如果在其他地方发布了更新的版本,请以发布的版本为准,并同步此文件以保持一致。评估集实现了该分类法;分类法本身是独立存在的。
## 局限性
这是一个 v0.1 的试点,而不是 benchmark。标题数据受限于 57 个 prompt 的集合、在固定条件下的单次目标运行、单个 LLM judge 以及一名人类评分者。该试点无法将人与人之间的分歧与人机之间的分歧区分开来,无法说明 judge 在混乱的部分合规情况下的可靠性,并且在严重程度的最高级存在覆盖率空白(此时 judge 弃权)。完整的局限性说明在 `RESULTS.md` 中。请将这些数字视为该工具在这些条件下有效的证据,而不是作为安全性排名。
## 引用
```
Frontier Cyber Risk Eval Set v0.1. Larry Peseckis, 2026.
Taxonomy, labeled eval set, LLM-as-judge scorer, and human-vs-judge comparison
for cyber assistance from frontier models.
```
## 许可证
MIT。参见 `LICENSE`。
标签:AI安全, Chat Copilot, DLL 劫持, Petitpotam, 反取证, 大语言模型, 安全评估, 测试工具, 红队评估, 自动化评估, 逆向工具