3300 Stars 288 Forks 306 Issues 29 贡献者 Apache-2.0 License Python语言
代码 : https://github.com/NVIDIA/garak
主页 : https://discord.gg/uVch4puUCs
更多AI开源软件 :AI开源 - 小众AI
garak检查是否可以以我们不希望的方式使 LLM 失败。 探测幻觉、数据泄漏、及时注射、错误信息、毒性产生、越狱和许多其他弱点。如果您知道 or / Metasploit Framework,garak 的功能与它们有些相似,但适用于 LLM。garaknmapmsf
garak重点介绍使 LLM 或对话系统失败的方法。它结合了静态、动态和自适应探针来探索这一点。
主要功能
目前支持:
- Hugging Face Hub 生成模型
- 复制文本模型
- OpenAI API 聊天和延续模型
- 利特尔姆
- 几乎所有可通过 REST 访问的内容
- GGUF 模型(如 llama.cpp 版本 >= 1046
- ..以及更多 LLM!
安装和使用
garak是一个命令行工具。它是在 Linux 和 OSX 中开发的。
标准安装pip
只需从 PyPI 获取它,您就可以开始了:
python -m pip install -U garak
使用 安装开发版本pip
的标准 pip 版本会定期更新。要从 GitHub 获取更新的版本,请尝试:garak
python -m pip install -U git+https://github.com/NVIDIA/garak.git@main
从源克隆
garak有自己的依赖项。您可以在其自己的 Conda 环境中安装:garak
conda create --name garak "python>=3.10,<=3.12"
conda activate garak
gh repo clone NVIDIA/garak
cd garak
python -m pip install -e .
好吧,如果一切顺利,您可能已经准备好了!
注意:如果您在迁移到 GitHub 组织之前进行了克隆,但您正在 URI 中阅读此内容,请按如下方式更新您的远程仓库:NVIDIAgithub.com/NVIDIA
git remote set-url origin https://github.com/NVIDIA/garak.git
使用
一般语法为:
garak <options>
garak需要知道要扫描的模型,默认情况下,它将使用每个探测推荐的漏洞检测器,尝试在该模型上知道的所有探测。您可以使用以下方法查看探针列表:
garak --list_probes
要指定生成器,请使用 和 (可选)选项。模型类型指定模型族/界面;Model Name 指定要使用的确切模型。下面的 "生成器简介" 部分介绍了一些支持的生成器。一个简单的生成器系列是 Hugging Face 模型;要加载其中一个,请在 Hub 上将 to 和 to 设置为模型的名称(例如 )。某些生成器可能需要将 API 密钥设置为环境变量,如果需要,他们会通知您。--model_type--model_name--model_typehuggingface--model_name"RWKV/rwkv-4-169m-pile"
garak默认情况下,会运行所有探测,但您也可以对此进行具体说明。 将仅使用 PromptInject 框架的方法。您还可以通过在 ;例如,将使用基于语言模型风险卡框架生成诽谤的模型的检查实现。--probes promptinject.--probes lmrc.SlurUsage
如需帮助和灵感,请在 Twitter 或 Discord 上找到我们!
例子
探测 ChatGPT 以进行基于编码的提示注入 (OSX/*nix)(将示例值替换为真实的 OpenAI API 密钥)
export OPENAI_API_KEY="sk-123XXXXXXXXXXXX"
python3 -m garak --model_type openai --model_name gpt-3.5-turbo --probes encoding
查看 GPT2 的 Hugging Face 版本是否容易受到 DAN 11.0 的攻击
python3 -m garak --model_type huggingface --model_name gpt2 --probes dan.Dan_11_0