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

PurpleLlama大模型安全全套检测方案

1. 引入

PurpleLlama是Meta的大模型安全整体解决方案(参考1),它包括了

(1)安全评估
CyberSecEval是一个用于评估大型语言模型(LLMs)安全风险的基准套件,其目标是解决随着 LLMs 的广泛使用而出现的新的网络安全风险。

(2)输入输出检测
Llama Guard 3通过输入输出检测,有效识别并分类不安全内容,保障了大模型在多语言环境下的内容安全。该工具能够对输入(Prompt)和响应(Response)进行分类,判断其是否安全,并列出违反的内容类别。

(3)提示词过滤
Prompt Guard 是一个基于分类器的模型,专门用于检测提示注入(Prompt Injection)和越狱攻击(Jailbreak)。它能够识别出试图绕过模型安全机制的恶意输入。

(4)不安全代码检测
Code Shield使用静态分析工具(Insecure Code Detector, ICD)来检测不安全代码。ICD 支持对七种编程语言进行分析,并覆盖超过 50 种常见漏洞(CWE),包括使用正则表达式(Regex)和 Semgrep 等工具。

2. 内容安全

  1. Llama Guard

Llama Guard 3-8B是在Llama-3.1-8B预训练模型的基础上,针对内容安全分类任务进行微调所得到的。与之前的版本相仿,它能够对模型输入(即提示词)和输出(也就是模型回复)中的内容开展风险分类工作。如同文本大模型的运作方式,将用户与大模型的对话内容,以及风险分类标准输入到Llama Guard 3-8B中,该模型便会把待检测内容标记为“安全(safe)”或者“不安全(unsafe)”;一旦判定为不安全,还会详细列出所违反的风险类别。
在这里插入图片描述
经过微调,Llama Guard 3-8B具备识别总计14个风险类别的能力。这其中涵盖了MLCommons标准化危险分类法(参考3)里的13个风险类别,分别标记为S1 - S13 ,以及Llama Guard新添加的代码解释器滥用类,即S14: Code Interpreter Abuse。

对于对模态,Llama Guard 3-11B-vision是多模态文本图像安全分类模型。

  1. Prompt Guard

Prompt Guard依托一款在海量攻击数据集上完成训练的分类模型,具备检测明显恶意提示词以及含有注入数据的能力。作为多标签分类模型,在过滤过程中,它会将输入的提示词划分成三类:良性(benign)、注入(injection)和越狱(jailbreak)。值得注意的是,注入和越狱这两种标签之间存在重叠的可能性,比如,一条极具危险性的提示词,既可能实施了提示词注入,也可能运用了越狱攻击手段 。
在这里插入图片描述

3. 代码安全

Code Shield作为一款专注于代码安全检测与过滤的工具,其核心目的在于避免大模型生成的不安全代码流入生产系统。近些年来,大模型在协助开发人员生成代码领域扮演着关键角色。然而,鉴于大模型具有较强的随机性,且极易受到训练数据的影响,即便添加了安全限制措施,大模型仍有可能生成不安全代码,这些代码中或许存在漏洞,又或者具备恶意功能。Code Shield如同置于大模型下游的一道围栏,助力实现对不安全代码的拦截与过滤,使其在返回给用户或进入代码库之前就被处理掉。

Code Shield 的核心原理是通过静态分析工具(ICD)对生成的代码进行分析,以识别潜在的不安全代码。这些工具包括 Regex 和 Semgrep 等,能够覆盖多种编程语言(如 Python、Java 等)和常见的安全漏洞类型(如 CWE 漏洞)。通过这种静态分析,Code Shield 能够在代码生成阶段或推理阶段实时过滤掉不安全的代码,从而减少生成恶意代码或执行危险操作的风险。

4. 总结

PurpleLlama包含多个关键工具和评估基准,用于提升LLM的安全性:
(1)CyberSec Eval:网络安全评估工具,用于量化LLM在网络安全方面的风险,包括生成恶意代码的可能性、不安全代码建议频率以及协助网络攻击的能力。
(2)Llama Guard:输入输出保护工具,用于过滤和检查LLM的输入输出内容,防止生成危险输出或被黑客利用。
(3)Prompt Guard:提示保护工具,用于检测和阻止恶意提示注入,确保基于LLM的应用程序的安全性。
(4)Code Shield:代码安全防护工具,用于在推理时过滤LLM生成的不安全代码,并提供缓解建议。

5. 参考

  1. https://github.com/meta-llama/PurpleLlama
  2. https://mp.weixin.qq.com/s/PKdqfmzJkrr8C6RTqWItGQ
  3. https://mlcommons.org/2024/04/mlc-aisafety-v0-5-poc/

相关文章:

PurpleLlama大模型安全全套检测方案

1. 引入 PurpleLlama是Meta的大模型安全整体解决方案(参考1),它包括了 (1)安全评估 CyberSecEval是一个用于评估大型语言模型(LLMs)安全风险的基准套件,其目标是解决随着 LLMs 的广…...

vue el-table 设置selection选中状态

toggleRowSelection 方法 vue el-table 设置selection选中状态 关键代码 multipleTableRef.value!.toggleRowSelection(item, true);<el-table:data"data":border"setBorder"v-bind"$attrs"row-key"id"stripestyle"width: 1…...

STM32学习笔记之常用总线(原理篇)

&#x1f4e2;&#xff1a;如果你也对机器人、人工智能感兴趣&#xff0c;看来我们志同道合✨ &#x1f4e2;&#xff1a;不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 &#x1f4e2;&#xff1a;文章若有幸对你有帮助&#xff0c;可点赞 &#x1f44d;…...

【数据结构】栈(Stack)、队列(Queue)、双端队列(Deque) —— 有码有图有真相

目录 栈和队列 1. 栈&#xff08;Stack&#xff09; 1.1 概念 1.2 栈的使用&#xff08;原始方法&#xff09; 1.3 栈的模拟实现 【小结】 2. 栈的应用场景 1、改变元素的序列 2、将递归转化为循环 3、逆波兰表达式求值 4、括号匹配 5、出栈入栈次序匹配 6、最小栈…...

OpenCV中的矩阵操作

OpenCV中的矩阵操作主要围绕Mat类展开&#xff0c;涵盖创建、访问、运算及变换等。 1. 创建矩阵 ‌零矩阵/单位矩阵‌&#xff1a; Mat zeros Mat::zeros(3, 3, CV_32F); // 3x3浮点零矩阵 Mat eye Mat::eye(3, 3, CV_32F); // 3x3单位矩阵 自定义初始化‌&#xff1a…...

OAK相机入门(一):深度测距原理

文章目录 1. 测距参数介绍2. 测距原理3. 总结 官方文档 Configuring Stereo Depth 1. 测距参数介绍 理论范围&#xff1a;0.2-35m 推荐范文&#xff1a;不低于0.5m 存储类型&#xff1a;uint16&#xff0c;0代表没有数据&#xff0c;或者测不到 2. 测距原理 通过视差进行测距…...

Powershell WSL .wslconfig 实现与宿主机的网络互通

前言.wslconfig .wslconfig 用于在 WSL 2 上运行的所有已安装发行版中配置全局设置 wsl 2 网络模式介绍 Bridged (外部): 桥接模式将虚拟机的网络连接直接桥接到物理网络适配器上Mirrored (镜像): 镜像模式并不是一个标准的 Hyper-V 网络类型,但它通常指的是在网络适配器级…...

Vue:Vue2和Vue3创建项目的几种常用方式以及区别

前言 Vue.js 和 Element UI 都是用 JavaScript 编写的。 1、Vue.js 是一个渐进式 JavaScript 框架。2、Element UI 是基于 Vue.js 的组件库。3、JavaScript 是这两个项目的主要编程语言。 而Element Plus是基于TypeScript开发的。 一、Vue2 1、基于vuecli工具创建 vue2 …...

IRF拆除

冗余口、冗余组、备份组、虚墙、MAD检测、被控制器纳管、转换为安全策略 黑洞路由的定义: 有来无回的路由。 对设备拆除IRF操作流程。 1、关闭主框的业务口&#xff08;对设备的接口使用shutdown&#xff09;&#xff0c;关闭MAD检测口&#xff08;BFD/NQA/MAD&#xff09;&…...

SEV内存加密位linux内核设置过程

1. KVM_MEMORY_ENCRYPT_OP初始化 main() // QEMU 入口函数qemu_init() // 初始化虚拟机configure_acceleratorskvm_initsev_guest_initKVM_SEV_INITsev_launch_startKVM_SEV_LAUNCH_STARTram_block_notifier_add(&sev_ram_notifier); …...

强化学习(赵世钰版)-学习笔记(8.值函数方法)

本章是算法与方法的第四章&#xff0c;是TD算法的拓展&#xff0c;本质上是将状态值与行为值的表征方式&#xff0c;从离散的表格形式&#xff0c;拓展到了连续的函数形式。 表格形式的优点是直观&#xff0c;便于分析&#xff0c;缺点是数据量较大或者连续性状态或者行为空间时…...

C++编译汇编八股总结

汇编的四个阶段&#xff1f; 预编译&#xff08;预处理&#xff09;&#xff1a; 预编译是源代码在编译之前进行的一些处理&#xff0c;主要包括宏定义展开、条件编译指令处理和头文件展开等。 编译&#xff1a; 编译器根据源代码的语法和语义规则&#xff0c;将源代码进行词法…...

STM32F4与串口屏通信

淘晶池串口屏操作指令集 那我们就来谈一谈串口屏与STM32F4嵌入式板子的通信 第一&#xff0c;串口屏传输数据给F4板子 这时&#xff0c;我们就该来谈一谈prints函数和printh函数的用法 prints att,length att:变量名称 length:长度(0为自动长度) printh hex hex:需要发送的…...

车载以太网网络测试-20【传输层-DOIP协议-3】

1 摘要 本文继续对ISO 13400-2定义的节点管理报文进行介绍&#xff0c;主要对路由激活请求/响应报文以及在线检查请求/响应报文的作用、帧结构以及示例进行介绍。 上文回顾&#xff1a; 车载以太网网络测试-19【传输层-DOIP协议-2】 在进行详细介绍之前&#xff0c;还是先回顾…...

`chromadb` 是什么

chromadb 是什么 chromadb 是一个开源的向量数据库,它专门用于存储、索引和查询向量数据。在处理自然语言处理(NLP)、计算机视觉等领域的任务时,通常会将文本、图像等数据转换为向量表示,而 chromadb 可以高效地管理这些向量,帮助开发者快速找到与查询向量最相似的向量数…...

基于深度学习的运动想象脑电信号分类研究

标题:基于深度学习的运动想象脑电信号分类研究 内容:1.摘要 背景&#xff1a;运动想象脑电信号分类在康复医学、人机交互等领域具有重要应用价值&#xff0c;但传统方法在处理复杂脑电信号时存在一定局限性。目的&#xff1a;本研究旨在探索基于深度学习的方法对运动想象脑电信…...

HTML5 Video标签详细教程

HTML5 Video标签详细教程 简介 HTML5引入的<video>标签为网页提供了原生视频播放功能&#xff0c;无需依赖Flash等第三方插件。它使得在网页中嵌入和控制视频内容变得简单而强大。本教程将详细介绍<video>标签的使用方法、属性、事件以及相关技术。 基本用法 最…...

【Hbase】查看所有表

在 HBase 中&#xff0c;查看所有表时&#xff0c;通常不需要指定命名空间&#xff0c;除非有特殊需求或配置。以下是一些具体情况&#xff1a; 默认情况下 • HBase Shell&#xff1a;使用list命令时&#xff0c;默认会列出所有命名空间中的所有表&#xff0c;而不仅仅是默认…...

Java 分布式高并发重试方案及实现

文章目录 Java 分布式高并发重试方案及实现一、重试机制的背景和意义二、基于 Spring Boot 的重试方案实现1. 使用 Spring Retry 实现重试机制添加依赖开启重试功能定义重试逻辑使用重试服务 2. 使用 Fast-Retry 实现高性能重试引入依赖编程式重试注解式重试 三、重试机制的注意…...

Spring Boot 集成 Quartz 实现定时任务(Cron 表达式示例)

Spring Boot 集成 Quartz 实现定时任务&#xff08;Cron 表达式示例&#xff09; 前言1. 添加 Quartz 依赖2. 创建 Quartz 任务3. 配置 Quartz 任务调度4. 启动 Spring Boot 观察定时任务执行5. Quartz Cron 表达式详解6. 结论 前言 在 Spring Boot 项目中&#xff0c;我们经常…...

关于“碰一碰发视频”系统的技术开发文档框架

以下是关于“碰一碰发视频”系统的技术开发文档框架&#xff0c;涵盖核心功能、技术选型、开发流程和关键模块设计&#xff0c;帮助您快速搭建一站式解决方案 --- 随着短视频平台的兴起&#xff0c;用户的创作与分享需求日益增长。而如何让视频分享更加便捷、有趣&#xff0c…...

vue3之写一个aichat---已聊天组件部分功能

渲染聊天数据 这个不必多说&#xff0c;直接从stores/chat中取出聊天列表数据渲染就好&#xff0c;因为前面添加的消息都是按照用户消息、AI助手消息这样添加的&#xff0c;效果如图 但是需要注意每条助手消息的状态&#xff0c;需要根据状态显示不同的图标或不显示图标&…...

ffmpeg+ubuntu编译库(完整版本)

个人使用环境: ubuntu desktop 16.04 + ffmpeg 4.2.1创建目录在home目录下创建 ffmpeg_sources:用于下载源文件 ffmpeg_build: 存储编译后的库文件 bin:存储二进制文件(ffmpeg,ffplay,ffprobe,X264,X265等) mkdir ffmpeg_sources ffmpeg_build bin安装依赖 先执行…...

基于STC89C51的太阳自动跟踪系统的设计与实现—单片机控制步进电机实现太阳跟踪控制(仿真+程序+原理图+PCB+文档)

摘 要 随着我国经济的飞速发展&#xff0c;促使各种能源使用入不敷出&#xff0c;尤其是最主要的能源&#xff0c;煤炭石油资源不断消耗与短缺&#xff0c;因此人类寻找其他替代能源的脚步正在加快。而太阳能则具有无污染﹑可再生﹑储量大等优点&#xff0c;且分布范围广&…...

第五: redis 安装 / find 查找目录

redis 安装的 两种方式&#xff1a; mac上安装redis的两种方法_如何在mac上安装redis-CSDN博客 首先可以先看一下brew的常用命令如下&#xff1a; brew search ** //查找某个软件包 brew list //列出已经安装的软件的包 brew install ** //安装某个软件包,默认安装的是…...

c++--vector

1.定义vector vector的定义分为四种 (1)vector() ——————无参构造 (2)vector(size_t n,const value_type& val value_type()) ——————构造并初始化n个val (3)vector(const vector& v1) ———————拷贝构造 (4)vector(inputiterator first,inpu…...

Springboot 项目如何输出优雅的日志

我们先看效果图&#xff1a; 我个人比较喜欢这种格式的日志输出&#xff0c;对其完整&#xff1b; 这种格式其实就是默认的&#xff0c;不需要大家配置任何的 logback-spring 文件和xml中配置日志level 没有做任何多余的配置&#xff1b;...

Linux——进程(5)进程地址空间

先看一个程序和现象 预期现象是&#xff0c;子进程和父进程相互独立&#xff0c;子进程的gval是100&#xff0c;101&#xff0c;102....而父进程一直都是100. 结果我们并不意外&#xff0c;只是我们发现&#xff0c;父子进程的gval的地址是一样的&#xff0c;这有点颠覆我们的认…...

代码随想录_动态规划

代码随想录 动态规划 509.斐波那契数 509. 斐波那契数 斐波那契数 &#xff08;通常用 F(n) 表示&#xff09;形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始&#xff0c;后面的每一项数字都是前面两项数字的和。也就是&#xff1a; F(0) 0&#xff0c;F(1) 1 F(n…...

c库、POSIX库、C++库、boost库之间的区别和联系

文章目录 一、区别1. 定义和来源2. 功能范围3. 可移植性4. 语言支持5. 维护和更新 二、联系1. 相互补充2. 部分功能重叠3. 共同促进编程发展4. 代码兼容性 三、总结 一、区别 1. 定义和来源 C 库函数&#xff1a;由 ANSI C 和 ISO C 标准定义&#xff0c;是 C 语言编程的基础…...