cntrvsy/secure-sme-agent-skills-slm-proxy

GitHub: cntrvsy/secure-sme-agent-skills-slm-proxy

基于微调量化小语言模型的本地安全代理,在消费级硬件上为中小企业 Agent 技能防御间接提示注入攻击并压缩 token 开销。

Stars: 0 | Forks: 0

# 通过微调 SLM 代理保护中小企业 Agent 技能 此代码库包含研究项目**“通过微调 SLM 代理保护中小企业 Agent 技能”**的学位论文文档、模型微调 pipeline、评估测试工具以及演示幻灯片。 ## 项目概述 中小企业(SME)面临着一种**“运营悖论”**:它们必须利用 AI 自动化来保持竞争力,但却缺乏计算和财务资源来部署庞大的大型语言模型(LLM)或管理复杂的 Model Context Protocol(MCP)服务器。 为了规避这些开销,中小企业采用了 **Agent 技能**——这是一种轻量级、静态、带有版本控制的目录,其中包含一个 [SKILL.md](dissartation%20doc/dissertation.typ#L39) 文件,该文件定义了加载到下游 agent 上下文窗口中的指令(YAML frontmatter + Markdown 正文)。然而,这些静态技能文件引入了严重的漏洞: ### 解决方案:本地 SLM 安全代理 ## 代码库结构 该项目主要由三个组件构成: ``` ├── dataset/ # LoRA Fine-Tuning & Evaluation Pipeline │ ├── results/ # Quantitative evaluation output logs (JSONL/MD) │ ├── train.jsonl # SFT training dataset split │ ├── test.jsonl # SFT evaluation holdout dataset split │ ├── refine_dataset.py # Script to structure and prepare data │ ├── evaluate_proxy.py # Assessment harness simulating attacks & computing metrics │ └── Qwen2_5_3B_SKILLmd_Sanitizer_Finetune.py # Unsloth/QLoRA training script │ ├── dissartation doc/ # Typst Dissertation Source Document │ ├── dissertation.typ # Main Typst document containing research write-up │ ├── template.typ # Typst formatting layout template │ └── *.png # Empirical results plots (ASR, format, compression) │ └── src/ # Svelte Presentation Slides (built on Animotion) ├── routes/ # Presentation entry points (+page.svelte) ├── styles/ # Global slides design system (overrides.css) └── slides/ # Individual presentation slides (100 to 700) ``` ## SFT 训练与评估 Pipeline 机器学习实现位于 [dataset/](dataset/) 目录中: ### 1. 数据集生成 - 运行 [refine_dataset.py](dataset/refine_dataset.py) 将原始三元组格式化为系统-用户-响应模式,将有毒的 Markdown 结构映射为干净的“gold distilled”目标技能。 ### 2. 微调设置 LoRA/QLoRA 微调在 [Qwen2_5_3B_SKILLmd_Sanitizer_Finetune.py](dataset/Qwen2_5_3B_SKILLmd_Sanitizer_Finetune.py) 中定义: - **基础模型:** 量化的 4-bit `Qwen2.5-3B-Instruct` - **PEFT 框架:** 通过 `UnslothSFTTrainer` 进行 Low-Rank Adaptation (LoRA) - **输出:** 序列化的 GGUF 和 LoRA adapter 权重,用于本地执行。 ### 3. 评估测试工具 测试 pipeline 由 [evaluate_proxy.py](dataset/evaluate_proxy.py) 管理: - 在包含 1,198 个样本的未见过保留测试集中,模拟标准(Base)和越狱增强(Enhanced)攻击。 - 自动计算: - **ASR-valid:** 攻击成功率(标记逐字 payload 泄露或高关键词重叠度)。 - **格式完整性通过率:** 对 YAML frontmatter 和 Markdown 块进行语法有效性检查。 - **压缩率:** 使用 `unsloth/Qwen2.5-3B-Instruct` tokenizer 进行 token 压缩大小计算。 - 集成本地 Ollama(`/api/generate`)和 LM Studio(`/v1/chat/completions`)服务器端点。 ## 交互式 Svelte 幻灯片 (Animotion) 解释此项研究的演示文稿位于 [src/](src/) 目录下,并使用 **Animotion**(一个基于 Svelte 的动画布局框架)构建。 ### 在本地运行幻灯片 1. **安装依赖:** pnpm install 2. **启动开发服务器:** pnpm dev 在浏览器中打开 `http://localhost:5173/`。 3. **构建生产包:** pnpm build 这将在 `.svelte-kit/output` 文件夹中生成一个静态构建版本。 ### 核心演示功能 - **标题幻灯片 (100):** 自定义样式的落地页幻灯片,展示学位论文标题和元数据。 - **代码审计可视化 (210, 500):** 展示易受攻击的 schema 和微调模板的代码块,采用极具可读性的浅色模型容器样式,并带有纯黑色的代码文本。 - **专属结果页面 (610 到 640):** 独立的幻灯片直接展示性能图表(安全有效性、格式通过率、Token 压缩,以及基线的截断错觉回归图),并留有充足的展示空间。
标签:AI安全, AI风险缓解, Chat Copilot, DLL 劫持, 人工智能, 大语言模型, 实时告警, 提示词注入攻击, 本地部署, 模型微调, 用户模式Hook绕过, 逆向工具