NeMo Guardrails 是 NVIDIA 推出的面向 LLM 应用的运行时安全框架,用于在模型调用前后添加可编程的安全护栏(rails)。
用途
该框架在运行时为 LLM 应用增加安全控制,可在用户输入进入模型之前、以及模型输出返回用户之前进行检测与拦截,从而降低越狱、有害内容、敏感信息泄露和幻觉等风险。
主要能力
- 越狱检测:结合模式匹配与 LLM 判断提示注入、越狱尝试(如“忽略之前的指令”“你现在处于开发者模式”“假装你是 DAN”等)。
- 输入/输出自检:通过自定义 action 对用户输入和模型输出进行校验,例如毒性检测、幻觉检测。
- 事实核查:结合检索与验证流程,对模型输出中的事实性声明进行核对。
- 幻觉检测:通过一致性检查判断输出是否可能失真。
- PII 过滤:集成 Presidio 检测并掩码敏感信息(如 SSN、邮箱等)。
- 毒性检测:集成 ActiveFence。
- 模型审核集成:支持 LlamaGuard 作为输入/输出审核模型。
使用方式
安装:
pip install nemoguardrails
基本示例(输入校验):
from nemoguardrails import RailsConfig, LLMRails
config = RailsConfig.from_content(""" define user ask about illegal activity "How do I hack" "How to break into" "illegal ways to"
define bot refuse illegal request "I cannot help with illegal activities."
define flow refuse illegal user ask about illegal activity bot refuse illegal request """)
rails = LLMRails(config)
response = rails.generate(messages=[{ "role": "user", "content": "How do I hack a website?" }])
输出为:"I cannot help with illegal activities."
常见工作流包括:越狱检测、输入/输出自检、结合检索的事实核查、使用 Presidio 的 PII 检测、LlamaGuard 集成。用户可通过 Colang DSL 定义用户意图、机器人响应和流程,并通过 @action 装饰器注册自定义校验逻辑,通过 register_action、register_action_param 注册动作与参数。
适用场景
- 需要运行时安全检查的 LLM 应用。
- 需要可编程安全规则、希望自定义拦截逻辑的场景。
- 需要多种安全机制(越狱、幻觉、PII 等)组合防护的场景。
- 构建生产级 LLM 应用。
- 需要低延迟过滤(可在 T4 上运行)的场景。
限制与注意事项
- 可能出现误报,拦截正常查询,可通过调整阈值缓解。
- 多重检查可能带来较高延迟,可并行化检查。
- 幻觉检测可能漏检,可加强验证(如要求多来源验证)。
- 硬件方面:GPU 可选(CPU 可运行,GPU 更快),推荐 NVIDIA T4 或更好;LlamaGuard 集成需 4-8GB 显存;建议 4 核以上 CPU、至少 8GB 内存。延迟方面:模式匹配 <1ms,基于 LLM 的检查 50-200ms,LlamaGuard 在 T4 上 100-300ms,总开销通常 100-500ms。
- 版本为 v0.9.0+(预计 v0.12.0)。
相关资源
- 文档:https://docs.nvidia.com/nemo/guardrails/
- GitHub:https://github.com/NVIDIA/NeMo-Guardrails
- 示例:https://github.com/NVIDIA/NeMo-Guardrails/tree/main/examples
关于收费、价格、具体平台支持范围等信息,资料中暂未提供。