当前位置: 首页 > article >正文

garak - 开源的 LLMs 漏洞扫描工具

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


http://www.kler.cn/a/470461.html

相关文章:

  • 基于SMT32U575RIT单片机-中断练习
  • Python学习笔记:显示进度条
  • 【linux系统之redis6】redis的安装与初始化
  • 微信小程序获取图片使用session(上篇)
  • HCIA-Access V2.5_8_2_EPON基本架构和关键参数
  • 创建型模式2.抽象工厂模式
  • Windows系统下FFmpeg4.4的环境搭建(二)
  • 基于 Python 的大学教室资源管理系统的设计与实现
  • Edge SCDN高效防护与智能加速
  • jenkins入门3 --执行一个小demo
  • Lua语言的语法糖
  • rtsp rtp:missed 1 packects
  • 使用插件生成 Mybatis 实体类及接口
  • 深度解析Linux中的make/Makefile的使用方法
  • 算法的学习笔记—不用常规控制语句求 1 到 n 的和
  • Innodisk iSMART V6使用说明_SSD还能用多久?已经读写了多少次数?……
  • 依据多波段栅格数据进行建筑统计操作(基于ArcGIS操作)
  • Nginx linux安装步骤(超详细)
  • Flink DataSet API
  • 数据结构 - inode
  • 三甲医院等级评审八维数据分析应用(六)--数据安全与隐私保护篇
  • Python多分类Logistic回归详解与实践
  • 06.HTTPS的实现原理-HTTPS的握手流程(TLS1.3)
  • 数据分析思维(七):分析方法——群组分析方法
  • Go语言中的 os.Stat() 与 os.Lstat() 实际应用中,你该如何选择?
  • 高阶知识库搭建实战六、(向量数据库Faiss安装)(练习推荐)