TechCeo/llmguard-eval
GitHub: TechCeo/llmguard-eval
该项目是一个用于跨多个开源 LLM 后端评估 LLMGuard 在 prompt injection 检测等安全任务上表现的综合评估框架。
Stars: 0 | Forks: 0
# LLMGuard 安全评估框架
一个用于跨多个 LLM 后端测试 **LLMGuard** 的综合评估框架,重点关注 prompt injection 检测和安全聊天机器人行为。
## 📋 目录
- [项目概述](#project-overview)
- [目标与目的](#goals--objectives)
- [方法论](#methodology)
- [实验与结果](#experiments--results)
- [工具与技术](#tools--technologies)
- [项目结构](#project-structure)
- [安装](#installation)
- [用法](#usage)
- [结果与发现](#results--findings)
- [参考](#references)
## 🎯 项目概述
本仓库通过将 **LLMGuard** 与多个 LLM 模型集成并测量 prompt injection 检测性能来对其进行评估。
它包含:
- `LLMGAURD_Project_notebook.ipynb`,用于交互式分析和可视化,
- `llmguard_tinyllama_evaluation.py`,用于 TinyLLaMA 实验,
- `llmguard_phi2_evaluation.py`,用于 Microsoft Phi-2 实验,
- `llmguard_distilgpt2_evaluation.py`,用于 DistilGPT-2 实验。
### 核心关注领域
- **Prompt Injection 检测**:识别恶意或操纵性的 prompt 模式。
- **输入净化**:在模型推理之前阻止或净化不安全的 prompt。
- **跨模型评估**:在不同的 LLM 架构中应用相同的防御工作流。
- **量化指标**:使用准确率、精确率、召回率、F1-score 和混淆矩阵。
## 🎓 目标与目的
1. 将 LLMGuard 与 TinyLLaMA、Microsoft Phi-2 和 DistilGPT-2 集成。
2. 使用 Safe-Guard Prompt Injection 数据集评估 prompt injection 检测。
3. 使用标准分类指标对防御性能进行基准测试。
4. 提供可复现的交互式 notebook 和实验脚本。
5. 记录完整的项目实现。
## 🔬 方法论
### 评估 Pipeline
```
User Prompt → LLMGuard Scanner → Risk Assessment → Accept/Reject → Model Response or Block Message
```
### 数据集
- **Safe-Guard Prompt Injection** (`xTRam1/safe-guard-prompt-injection`)
- 标签:safe (0),unsafe (1)
- 用于基于脚本的评估和 notebook 评估。
### 被评估的模型
- TinyLLaMA-1.1B-Chat
- Microsoft Phi-2
- DistilGPT-2
### 防御组件
- PromptInjection 扫描器
- Prompt 净化与拦截
- 风险评分
- 适用时的响应级别安全检查
### 指标
- 准确率
- 精确率
- 召回率
- F1-score
- 混淆矩阵
- 分类报告
## 🧪 实验与结果
### 实验 1:TinyLLaMA-1.1B-Chat
**文件**:`llmguard_tinyllama_evaluation.py`
此脚本评估了 TinyLLaMA 防御 pipeline,并展示了 LLMGuard 如何在允许安全输入的同时拦截危险 prompt。
### 实验 2:Microsoft Phi-2
**文件**:`llmguard_phi2_evaluation.py`
此脚本使用 Microsoft Phi-2 验证了相同的防御设计。
### 实验 3:DistilGPT-2
**文件**:`llmguard_distilgpt2_evaluation.py`
此脚本评估了 DistilGPT-2,并包含可选的 GPT4All-local 实验脚手架。
### 交互式 Notebook
**文件**:`LLMGAURD_Project_notebook.ipynb`
该 notebook 提供了以下内容的交互式演练:
- TinyLLaMA 模型加载,
- LLMGuard 扫描器使用,
- 手动 prompt injection 测试,
- 基于数据集的评估,
- 指标与可视化,
- 假阴性分析。
### 测试的攻击模式
- 指令覆盖 prompt
- 角色扮演注入 prompt
- 恶意 payload prompt
- 上下文混淆 prompt
## 🛠 工具与技术
- `llm-guard`
- `transformers`
- `torch`
- `datasets`
- `pandas`
- `scikit-learn`
- `matplotlib`
- `seaborn`
## 📁 项目结构
```
llmguard-eval/
├── README.md
├── LLMGAURD_Project_notebook.ipynb
├── llmguard_tinyllama_evaluation.py
├── llmguard_phi2_evaluation.py
├── llmguard_distilgpt2_evaluation.py
└── requirements.txt
```
## 💾 安装
### 前置条件
- Python 3.8 或更高版本
- CUDA 11.8+(可选)
- 推荐 8GB+ RAM
### 可选项
对于 `llmguard_distilgpt2_evaluation.py` 中可选的本地 GPT4All 实验:
```
pip install gpt4all
```
## 🚀 用法
### 运行脚本
```
python llmguard_tinyllama_evaluation.py
python llmguard_phi2_evaluation.py
python llmguard_distilgpt2_evaluation.py
```
### 运行 notebook
在 Jupyter、JupyterLab 或 GitHub 的 notebook 查看器中打开 `LLMGAURD_Project_notebook.ipynb`,并按顺序运行各个单元格。
## 📊 结果与发现
本项目展示了如何跨多种 LLM 架构应用 LLMGuard,并使用 prompt injection 数据集进行评估。该 notebook 提供了防御 pipeline 的交互式证据和可视化。
## 📚 参考
- `xTRam1/safe-guard-prompt-injection`
- `TinyLLaMA/TinyLLaMA-1.1B-Chat-v1.0`
- `microsoft/phi-2`
- `distilgpt2`
- `protectai/llm-guard`
## 📄 许可证
仅供研究与教育使用。请参阅相关依赖项的许可证。
## 👤 作者
**Yusuf Adamu**
标签:DLL 劫持, LLMGuard, 人工智能, 凭据扫描, 反取证, 大语言模型, 安全评估, 提示词注入检测, 用户模式Hook绕过, 系统调用监控, 评估框架, 逆向工具