开源双阶段 LLM 提示注入检测器,正则把关 + 量化 DeBERTa
开发者开源 Bordair Detector,采用正则层与 INT8 量化 DeBERTa-v3 两阶段架构,并发布含…
一名开发者近日在 Reddit 的 r/MachineLearning 板块开源了一套面向 LLM 输入侧的提示注入(prompt-injection)检测方案 Bordair Detector,同时公开了训练权重与配套数据集。该工具采用「正则过滤 + 量化 Transformer」的两阶段架构,旨在以较低成本拦截针对大模型的恶意指令与越权请求,并覆盖文本、图像、文档与音频等多种输入通道。
两阶段架构:成本与精度兼顾
Bordair Detector 的核心设计思路是把流量分层处理,避免对每条输入都跑一遍完整模型。
- 第一层(正则关卡):约 430 条正则规则,配合 base64 / ROT13 / 1337speak 的解码与扫描步骤,可在 1 毫秒内处理绝大多数常规流量。
- 第二层(语义判别):对第一层无法判定的模糊样本,调用经过微调的 DeBERTa-v3-large 模型,导出为 ONNX 格式并量化为 INT8,输出四分类结果——benign / direct / jailbreak / indirect。
作者指出,DeBERTa-v3-large 量化后仍有约 244 MB,不应无差别地应用于所有请求;两层拆分正是为了在成本和准确性之间取得平衡,让「hello」这类简单输入不必触发 Transformer 推理。
真实攻击样本:来自一场「攻防游戏」
相比架构本身,作者认为更值得关注的是评估数据的来源。模板化的合成 payload 只能衡量覆盖率,无法验证模型在面对有动机的人类对手时是否依然有效。为此,作者举办了一场公开游戏,参与者通过绕过检测器得分,每一次成功的绕过都会被记录。游戏结束后,作者对其中 13,230 条尝试做了匿名化处理,作为「真实场景切分」并入训练与评估集。
目前完整数据集已发布到 HuggingFace,包含 50 万条以上的合成样本以及上述真实攻击切分,用于衡量检测器在对抗性输入下的鲁棒性。
多模态输入覆盖
除纯文本外,该检测器还面向多模态场景做了适配:
- 图像输入:结合 OCR 提取文字、读取元数据,并对隐写术内容做中和处理。
- 文档输入:解析常见文档格式中的可疑指令。
- 音频输入:通过 ASR 转写后再走同一检测管线。
设计的出发点是:只要应用链路上会读取某一通道,注入攻击就有可能从该通道进入,因此检测层需要在多模态维度上保持一致。
开源资源
项目所有组件均已开源:
- 代码仓库:github.com/Josh-blythe/bordair-detector
- 模型权重:huggingface.co/Bordair/bordair-detector
- 数据集:huggingface.co/datasets/Bordair/bordair-multimodal
作者表示愿意就训练细节与门控逻辑进一步交流。对于正在搭建 LLM 应用、需要在前置环节过滤恶意输入的开发者而言,这是一份可即拿即用的参考实现与基线数据集。
