Arbaz-hai/transformer-prompt-injection-detection-dataset-
GitHub: Arbaz-hai/transformer-prompt-injection-detection-dataset-
该项目通过在自建复合数据集上微调并对比五种 Transformer 模型,系统评估其在大语言模型 prompt 注入与越狱攻击检测任务中的准确性和部署效率。
Stars: 0 | Forks: 0
# 使用 Transformer 模型进行 Prompt 注入检测
这是一项针对基于 Transformer 的架构(BERT、RoBERTa、DeBERTa-v3、DistilBERT、ALBERT)在检测针对大型语言模型的 prompt 注入和越狱攻击方面的比较研究。本代码库伴随一篇 IEEE 期刊投稿,包含完整的数据集构建 pipeline、训练代码和评估结果。
## 概述
Prompt 注入攻击试图通过对抗性输入覆盖或操纵 LLM 的预期行为。本项目在包含注入和良性 prompt 的复合数据集上对五个 transformer 模型进行基准测试,通过比较它们的准确率、F1 分数、ROC-AUC、延迟和模型大小,来评估在实时部署中的准确性与效率的权衡。
## 模型对比
| Model | Type |
|---|---|
| BERT | Encoder, base |
| RoBERTa | Encoder, base |
| DeBERTa-v3 | Encoder, disentangled attention |
| DistilBERT | Distilled, lightweight |
| ALBERT | Parameter-shared, lightweight |
## 数据集
训练数据集是一个自定义的复合数据集,通过聚合和清理 18 个公开可用的 Hugging Face Hub 数据集构建而成,结合了带有注入/越狱标签的 prompt 和作为负样本的良性指令遵循 prompt。
**注入 / 越狱来源:**
- [deepset/prompt-injections](https://huggingface.co/datasets/deepset/prompt-injections)
- [rubend18/ChatGPT-Jailbreak-Prompts](https://huggingface.co/datasets/rubend18/ChatGPT-Jailbreak-Prompts)
- [jackhhao/jailbreak-classification](https://huggingface.co/datasets/jackhhao/jailbreak-classification)
- [Lakera/gandalf_ignore_instructions](https://huggingface.co/datasets/Lakera/gandalf_ignore_instructions)
- [xTRam1/safe-guard-prompt-injection](https://huggingface.co/datasets/xTRam1/safe-guard-prompt-injection)
- [rubend18/Jailbreak-Prompt-Attack](https://huggingface.co/datasets/rubend18/Jailbreak-Prompt-Attack)
**良性 / 负样本类别来源:**
- [tatsu-lab/alpaca](https://huggingface.co/datasets/tatsu-lab/alpaca)
- [OpenAssistant/oasst2](https://huggingface.co/datasets/OpenAssistant/oasst2)
- [HuggingFaceH4/no_robots](https://huggingface.co/datasets/HuggingFaceH4/no_robots)
- [databricks/databricks-dolly-15k](https://huggingface.co/datasets/databricks/databricks-dolly-15k)
每个来源的数据在被合并到训练/验证/测试集划分之前,都会被加载、清理、去重,并标准化为统一的 `text` / `label` / `source` schema。完整的 pipeline 请参见 `[notebook/transformer-models-for-prompt-injection.ipynb](https://github.com/Arbaz-hai/Arbaz-hai/blob/main/transformer-models-for-prompt-injection.ipynb)` 第 2 节(“数据集构建”)。
## Notebook
完整的实验——数据集构建、tokenization、训练、评估和统计显著性检验——是作为一个单独的 Kaggle notebook 实现的:
**Kaggle:** `https://www.kaggle.com/code/arbazdevhive/transformer-models-for-prompt-injection>`_
本仓库的 `[notebook/transformer-models-for-prompt-injection.ipynb](https://github.com/Arbaz-hai/Arbaz-hai/blob/main/transformer-models-for-prompt-injection.ipynb)` 中也包含了一份副本。
## 方法论总结
1. **数据集构建** — 聚合、清理、去重并标签标准化 18 个源数据集,合并为一个单一的二分类数据集(注入 vs. 良性)。
2. **Tokenization** — 使用特定于模型的 tokenizer,根据每个模型配置的最大序列长度进行填充/截断。
3. **训练** — 使用 AdamW 进行 fine-tuning,结合线性预热调度、混合精度(AMP)和梯度裁剪。
4. **评估** — 在预留的测试集上评估准确率、精确率、召回率、F1(宏平均)、ROC-AUC、假阴性率、推理延迟和吞吐量。
5. **统计显著性** — 对各模型对之间分批次的 F1 分数进行 Wilcoxon 符号秩检验。
标签:DLL 劫持, Transformer, 人工智能安全, 凭据扫描, 合规性, 大语言模型, 提示注入, 文本分类, 模型评估, 逆向工具, 集群管理