dom fixes

This commit is contained in:
Mery-Sanz 2025-05-07 15:11:46 +02:00
parent 90ad9b5f53
commit 71c76f21b0
6 changed files with 45559 additions and 146 deletions

View File

@ -1 +0,0 @@
.DS_Store

Binary file not shown.

View File

@ -1,144 +0,0 @@
# SecEval评估基础模型在网络安全知识上的全面基准测试
[English](README.md)
随着大型语言模型的出现为网络安全行业带来了变革性的时代。在网络安全知识问答、漏洞挖掘和告警研判等领域人们正在开发、部署和使用大模型应用。各种研究表明LLMs主要在预训练阶段获取知识而微调基本上是为了使模型与用户意图对齐提供遵循指令的能力。这表明基础模型中的知识和技能对模型在特定下游任务上的潜力有着重要影响。
然而在现有评估数据集中缺乏对网络安全知识的专门性评估。我们通过引入“SecEval”来解决这个问题。SecEval是首个专门为评估基础模型中的网络安全知识而创建的基准测试。它提供了超过2000个多项选择题覆盖9个领域软件安全、应用程序安全、系统安全、网络安全、密码学、内存安全、网络安全和渗透测试。
SecEval通过向OpenAI GPT4提供权威来源的数据来生成相应问题如开放许可的教科书、官方文档和行业指导方针与标准来生成问题。生成过程经过精心设计以确保数据集满足严格的质量、多样性和公正性标准。您可以在[探索页面](https://xuanwuai.github.io/SecEval/explore.html)上探索我们的数据集。
使用SecEval我们对10种最先进的基础模型进行了评估为它们在网络安全领域的表现提供了新的见解。结果表明在LLMs在网络安全领域还有很长的路要走。我们希望SecEval能够成为未来在这一领域研究的催化剂。
## 目录
- [Leaderboard](#leaderboard)
- [数据集](#数据集)
- [数据集生成方法](#数据集生成方法)
- [局限性](#局限性)
- [未来工作](#未来工作)
- [许可证](#许可证)
- [引用](#引用)
## Leaderboard
| # | Model | Creator | Access | Submission Date | System Security | Application Security | PenTest | Memory Safety | Network Security | Web Security | Vulnerability | Software Security | Cryptography | Overall |
|-----|-------------------|-----------|-----------|-----------------|-----------------|----------------------|---------|---------------|------------------|--------------|---------------|-------------------|--------------|---------|
| 1 | gpt-4-turbo | OpenAI | API, Web | 2023-12-20 | 73.61 | 75.25 | 80.00 | 70.83 | 75.65 | 82.15 | 76.05 | 73.28 | 64.29 | 79.07 |
| 2 | gpt-35-turbo | OpenAI | API, Web | 2023-12-20 | 59.15 | 57.18 | 72.00 | 43.75 | 60.87 | 63.00 | 60.18 | 58.19 | 35.71 | 62.09 |
| 3 | Yi-6B | 01-AI | Weight | 2023-12-20 | 50.61 | 48.89 | 69.26 | 35.42 | 56.52 | 54.98 | 49.40 | 45.69 | 35.71 | 53.57 |
| 4 | Orca-2-7b | Microsoft | Weight | 2023-12-20 | 46.76 | 47.03 | 60.84 | 31.25 | 49.13 | 55.63 | 50.00 | 52.16 | 14.29 | 51.60 |
| 5 | Mistral-7B-v0.1 | Mistralai | Weight | 2023-12-20 | 40.19 | 38.37 | 53.47 | 33.33 | 36.52 | 46.57 | 42.22 | 43.10 | 28.57 | 43.65 |
| 6 | chatglm3-6b-base | THUDM | Weight | 2023-12-20 | 39.72 | 37.25 | 57.47 | 31.25 | 43.04 | 41.14 | 37.43 | 39.66 | 28.57 | 41.58 |
| 7 | Aquila2-7B | BAAI | Weight | 2023-12-20 | 34.84 | 36.01 | 47.16 | 22.92 | 32.17 | 42.04 | 38.02 | 36.21 | 7.14 | 38.29 |
| 8 | Qwen-7B | Alibaba | Weight | 2023-12-20 | 28.92 | 28.84 | 41.47 | 18.75 | 29.57 | 33.25 | 31.74 | 30.17 | 14.29 | 31.37 |
| 9 | internlm-7b | Sensetime | Weight | 2023-12-20 | 25.92 | 25.87 | 36.21 | 25.00 | 27.83 | 32.86 | 29.34 | 34.05 | 7.14 | 30.29 |
| 10 | Llama-2-7b-hf | MetaAI | Weight | 2023-12-20 | 20.94 | 18.69 | 26.11 | 16.67 | 14.35 | 22.77 | 21.56 | 20.26 | 21.43 | 22.15 |
## 数据集
### 格式
数据集采用json格式。每个问题包含以下字段
* id: str # 每个问题的唯一id
* source: str # 问题来源
* question: str # 问题描述
* choices: List[str] # 问题的选项
* answer: str # 问题的答案
* topics: List[QuestionTopic] # 问题的主题,每个问题可以有多个主题。
* keyword: str # 问题的关键词
### 问题分布
| 主题 | 问题数量 |
|----------------------|--------------|
| 系统安全 | 1065 |
| 应用安全 | 808 |
| 渗透测试 | 475 |
| 内存安全 | 48 |
| 网络安全 | 230 |
| 网络安全 | 773 |
| 漏洞 | 334 |
| 软件安全 | 232 |
| 密码学 | 14 |
| 总体 | 2126 |
### 下载
您可以通过运行以下命令下载json文件的数据集。
```
wget https://huggingface.co/datasets/XuanwuAI/SecEval/blob/main/problems.json
```
或者您可以从[Huggingface](https://huggingface.co/datasets/XuanwuAI/SecEval)加载数据集。
### 在SecEval上评估您的模型
您可以使用我们的[评估脚本](https://github.com/XuanwuAI/SecEval/tree/main/eval)来在SecEval数据集上评估您的模型。
## 数据集生成方法
### 数据收集
- **教科书**:我们从加州大学伯克利分校的计算机安全课程 CS161 和麻省理工学院的 6.858 选取了开放许可的教科书。这些资源提供了关于网络安全、内存安全、网页安全和密码学的广泛信息。
- **官方文档**:我们使用了如苹果平台安全、安卓安全和 Windows 安全等官方文档,以整合这些平台特有的系统安全和应用安全知识。
- **工业指南**:为了包含网络安全,我们参考了 Mozilla 网络安全指南。此外,我们还使用了 OWASP 网络安全测试指南WSTG和 OWASP 移动应用安全测试指南MASTG以获得网络和应用安全测试的洞见。
- **工业标准**我们使用了CWE来解决对漏洞的认知问题。对于渗透测试我们纳入了 MITRE ATT&CK 和 MITRE D3fend 框架。
### 生成评估问题
为了便于评估过程,我们设计了一个多项选择题的数据集格式。我们的问题生成方法包括几个步骤:
1. **文本解析**我们首先根据文本的层次结构进行解析例如教科书的章节或诸如ATT&CK这样的框架的战略和技术。
2. **内容抽样**对于内容丰富的文本如CWE或Windows安全文档我们采用抽样策略以保持可管理性。例如我们从CWE中选择了25种最常见的弱点类型和175种随机类型。
3. **问题生成**利用GPT-4基于解析后的文本生成多项选择题并根据文本的特性调整送入GPT参考文本的粒度。例如CS161教科书的问题是基于各个章节的而来自ATT&CK的则是基于技术的。
4. **问题完善**然后我们指导GPT-4识别并过滤出问题比如过于简单或不完整的问题。在可能的情况下我们会尝试将问题修正否则它们将被丢弃。
5. **答案校准**我们通过向GPT-4提供问题和产生问题的源文本来再次生成答案。如果GPT-4生成的响应与之前问题生成阶段确定的答案不一致则表明对于这道题目获得一致答案本身具有挑战性。在这种情况下我们选择淘汰这些问题。
6. **分类**最后我们将问题分为9个主题并为每个问题附上相关的细粒度关键词。
## 局限性
当前数据集存在一定的局限性:
1. **分布不平衡**:数据集在不同领域的问题分布不均,导致某些区域的问题集中度较高,而其他区域则较少。
2. **主题覆盖范围不完整**:数据集中缺少一些网络安全主题,如内容安全、逆向工程和恶意软件分析。因此,它并未涵盖该领域内的全部知识范围。
## 未来工作
1. **分布上的改进**:我们旨在通过增加更多问题来提高数据集的全面性,从而丰富现有网络安全主题的覆盖范围。
2. **主题覆盖上的改进**:我们将努力在数据集中包含更广泛的网络安全主题,这将有助于实现各个领域问题分布的更公平分配。
## 许可证
数据集在 [CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/) 许可证下发布。代码在 [MIT](https://opensource.org/licenses/MIT) 许可证下发布。
## 引用
```bibtex
@misc{li2023seceval,
title={SecEval: A Comprehensive Benchmark for Evaluating Cybersecurity Knowledge of Foundation Models},
author={Li, Guancheng and Li, Yifeng and Wang Guannan and Yang, Haoyu and Yu, Yang},
publisher = {GitHub},
howpublished= "https://github.com/XuanwuAI/SecEval",
year={2023}
}
```
## 致谢
这项工作是在[腾讯安全玄武实验室](https://xlab.tencent.com/en/)的支持下完成的,并获得了腾讯星火计划的帮助。

View File

@ -297,7 +297,7 @@ def main():
elif args.backend == "azure":
llm = init_azure_openai_llm(model_id)
elif args.backend == "ollama":
if not args.model:
if not args.models:
raise RuntimeError("Please specify --model for Ollama backend")
llm = init_ollama_llm(args.model)
else:

File diff suppressed because one or more lines are too long