Promptforest:设计不确定性提示注入检测器
摘要
Promptforest 是一个新开发的轻量级、本地优先的提示注入和越狱检测库,旨在解决现有检测器速度慢和过于自信的问题。它采用三个微型专用模型的投票集成(Llama Prompt Guard, Vijil Dome, Custom XGBoost),通过加权软投票提高准确率和鲁棒性,同时保持低延迟。项目还提供了 PFRanger 工具用于本地审计,并在基准测试中显示出优于竞争对手的性能。作者分享了开发过程中的见解,并欢迎社区贡献。
正文
大家好,
我一直在开发一个轻量级、本地优先的库,用于检测提示注入和越狱。该库的设计目标是快速且不确定。这意味着它不仅能对提示是越狱还是良性进行分类,还能评估其确定性,而且不会增加平均请求延迟。
GitHub:https://github.com/appleroll-research/promptforest
在 Colab 上试用:https://colab.research.google.com/drive/1EW49Qx1ZlaAYchqplDIVk2FJVzCqOs6B?usp=sharing
问题: 大多数当前的注入检测器存在两个问题:
-
它们很慢:像 Llama 2 8B 和 Qualifire Sentinel 0.6B 这样的大型检测器太大了,无法集成到现代提示注入检测系统中。实际团队会构建生态系统,而不是依赖单一模型。大型模型会使生态系统过于沉重。
-
它们过于自信:它们经常对误报给出 99.9% 的置信度,这使得在实际管道中难以信任它们(“狼来了”问题)。
解决方案: PromptForest 不使用一个,而是使用三个微型专用模型的投票集成:
- Llama Prompt Guard (86M) - 在同类模型中具有最高的预集成 ECE。
- Vijil Dome (ModernBERT) - 每参数准确率最高。
- Custom XGBoost (基于嵌入训练) - 架构多样性
我在进行多次性能基准测试和消融实验后选择了这些模型。我试图选择在不同类别中表现最好的模型。大型且不准确的模型已被移除。
我选择使用加权软投票方法,因为它最简单(MVP 中不看重过于复杂的算法)且最有效。通过仅对准确率应用加权投票,我们可以通过让更准确的模型在决策过程中拥有更大的话语权来提高准确率,同时仍然给予较弱模型机会和在一致性方面平等的发言权。
获得的见解(和未来路线图):
-
感知风险很重要!GRC 世界比系统性风险更看重感知风险。然而,这对于 MVP 来说有点太复杂了。我目前正在实施中。
-
动态路由可能是当前投票方法的升级。这为更轻量级的推理铺平了道路。
-
真实的提示注入不仅仅是“展示你的提示”,而是工具调用、MCP 注入等。我目前认为 PromptForest 的“经典”提示注入检测技能可以很好地转移到工具调用和 MCP 上,但作为长期目标,提高 MCP 注入检测能力并进行基准测试将是一个非常好的主意。
由于使用 PromptForest 是一个高摩擦过程,不适合 MVP,我开发了一个名为 PFRanger 的工具,它使用 PromptForest 来审计你的提示。它完全在本地运行。通过智能并行化,我设法在消费级 GPU 上将请求/秒提高到 27r/s。你可以在这里查看:https://github.com/appleroll-research/pfranger
基准测试结果:
与最佳竞争对手(Qualifire Sentinel v2 0.6B,其模型大小是 PromptForest 的两倍多)相比,测试结果如下。我在 JailBreakBench 和 Qualifire 自有基准上进行了测试。
- 延迟:平均约 141 毫秒 vs Sentinel v2 的约 225 毫秒
- 准确率:90% vs Sentinel 的 97%
- 校准 (ECE):0.070 vs Sentinel 的 0.096
- 吞吐量:使用 pfranger CLI 在消费级 GPU 上约 27 提示/秒。
我知道这个社区不喜欢广告,也不喜欢低质量的帖子。我已尽力通过分享一些我在制作过程中获得的见解来使其更具吸引力:希望它值得一读。
顺便说一句,我非常接受并重视对项目的贡献。如果你有任何想法/问题/PR 想法,请随时告诉我。