NVIDIA garak教程:使用自定义探测器和检测器构建完整的防御性LLM红队工作流
本教程全面介绍NVIDIA garak框架,用于防御性LLM红队测试。涵盖安装、插件发现、干运行、真实模型扫描、多探测器评估、报告分析、自定义探测器和检测器创建,以及AVID格式导出。通过端到端示例,展示如何评估和增强LLM安全性。
本教程深入探讨了NVIDIA garak作为防御性LLM红队测试的实用框架。我们从设置Garak开始,逐步讲解插件发现、干运行、真实模型扫描、多探测器评估、报告分析、自定义探测器和检测器创建,以及AVID导出。不同于仅运行单次扫描,我们端到端地使用Garak,以理解探测、检测、生成、报告和漏洞评分如何协同工作,构建完整的LLM安全测试工作流。
首先,我们设置环境并定义辅助函数。教程导入所需库,创建一个从笔记本直接运行shell命令的辅助函数。我们安装Garak,配置基础环境变量,并导入主要模块。还定义了一个可重用函数,用于以编程方式运行Garak并捕获生成报告的路径。
接着,我们探索Garak的插件生态,列出可用的探测、检测、生成器和buff。然后使用测试生成器快速干运行,确保Garak正常工作。之后,我们扫描一个真实的Hugging Face模型,并进行多探测器扫描以生成更丰富的报告用于分析。
在分析阶段,我们使用pandas和NumPy加载并处理Garak生成的报告。我们尝试使用Garak内置的报告解析器,若不可用则手动解析JSONL报告文件。计算安全评分和攻击成功率,并通过条形图可视化不同探测-检测组合的脆弱性。
我们进一步检查报告中检测器分数较高的样本,提取被标记的提示、分数和探测名称,以理解被检测出的行为模式。然后创建自定义Garak探测,使用固定提示并关联自定义检测器。
最后,我们定义自定义检测器,用于标记包含“hello”的输出,并将其保存到Garak的检测包中。运行自定义探测和检测器验证扩展是否正常工作。最终将报告导出为AVID格式,并展示用于连接外部模型端点的REST配置模板。
总之,我们完成了一个完整的动手工作流,用于使用NVIDIA garak测试LLM行为。运行内置探测、分析安全评分和攻击成功率、检查具体标记输出,并扩展Garak的自定义探测和检测器。还以AVID格式导出结果,便于结构化漏洞报告。这为评估授权测试的模型和构建高级防御性红队流水线提供了平台。