StivoMix/negev

GitHub: StivoMix/negev

Negev 是一个聚焦 LLM 训练数据投毒攻击与防御的模块化基准测试框架,帮助红队量化攻击破坏程度并评估防御恢复效果。

Stars: 0 | Forks: 0

# 内盖夫 一个模块化的基准测试框架,专注于 **LLM 数据投毒攻击与防御**,聚焦于 [OWASP LLM04(数据与模型投毒)](https://genai.owasp.org/llmrisk/llm042025-data-and-model-poisoning/)。 ## 简介 Negev 允许你模拟针对语言模型的数据投毒攻击,评估其造成的损害程度,随后运行防御性数据清理 pipeline,并衡量其恢复了多少损失。 单次运行执行以下操作: ``` load model + dataset * train a clean baseline, measure it * poison the data, train on it, measure the degradation * run a defense to clean the data, retrain, measure the recovery * return a full result with all three metric snapshots ``` ## 初衷 训练数据投毒是 LLM 安全领域中工具化程度最低的环节之一。现有的工作大多是学术性的单次脚本,或是被深埋在更庞大的 ML 鲁棒性库中。本项目旨在提供一个专注的、可自托管的工具,让红队成员能够直接针对特定模型和数据集来回答两个问题:*这种攻击对模型会造成多大的破坏?这种防御又能多有效地阻止它?* ## 当前状态 目前在 DistilBERT + IMDB 上进行了端到端的测试,作为开发目标: **攻击**:无目标标签翻转(随机、多类、带种子/可复现) **训练**:封装 HuggingFace `Trainer` 的微调循环,带有明确的训练/评估划分 **评估**:准确率捕获,带有指标快照数据模型 **防御**:基于 `cleanlab` 的标签噪声过滤(置信学习),经验证能够在投毒数据上有效恢复准确率 **编排**:一个 runner 将完整的 attack -> train -> defend -> retrain pipeline 串联在单次调用中*(开发中)* **接口**:FastAPI 后端和 Textual 终端 UI,两者解耦,因此核心逻辑不依赖于其中任何一个 目前的验证结果:在 2,000 个样本的 30% 标签翻转投毒率下,cleanlab 防御标记了约 537 行数据,相较于直接在投毒数据上训练,恢复了大约 +0.05 的准确率。 ## 架构 Pipeline 经过三层:`TUI -> API -> Core`: ``` core/ pure logic, no interface dependencies attacks/ poisoning attacks (Attack base class + implementations) defenses/ data sanitization pipelines evaluation/ metric capture training/ fine tuning loop models/ Pydantic schemas (AttackConfig, RunResult, MetricSnapshot, FilterReport) runner.py full pipeline orchestrator api/ FastAPI layer that exposes the core tui/ Textual terminal dashboard ``` 这种解耦是刻意为之的:核心层完全不知道它是如何被调用的,因此同一套代码可以在 notebook、API、TUI 或未来的 Web 前端上运行,而无需进行任何修改。 ## 关于构建方式的说明 `core/`、`api/` 以及架构本身的所有内容都是纯手工编写的,这对我来说正是该项目的全部意义所在。我正在利用它来深入学习 ML 和安全工具,因此引擎的开发是刻意为之且循序渐进的,而不是由自动生成的。 **终端 UI 是个例外**:前端/设计并不是我的学习重点,因此 TUI 是在 AI 辅助下完成的,而我将手工编写的精力集中在我真正想深入理解的部分。该接口被刻意设计为核心层之上的一个轻量级、可替换的外壳。 ## 路线图(初步规划) 更多攻击:目标标签翻转、后门触发器、LoRA 权重投毒、特征碰撞 更多防御:基于 embedding 的异常检测(`pyod`) 完整的 pipeline 视图(攻击 x 防御) 实现容器化以便于自托管部署 ## 技术栈 Python, HuggingFace (`transformers`, `datasets`), `cleanlab`, FastAPI, Textual, Pydantic.(有关所有依赖项,请参见 requirements.txt) *由独立开发者作为一个以学习为导向的安全研究项目构建。不隶属于任何组织。*
标签:DLL 劫持, 人工智能安全, 合规性, 大语言模型, 红队评估, 逆向工具, 防御清洗