检索与毒害 —— 对抗人工智能供应链攻击
作者:DAVE ERICKSON
在这篇文章中,了解人工智能大语言模型的供应链漏洞,以及如何利用搜索引擎的人工智能检索技术来对抗人工智能的错误信息和故意篡改。
虽然对于人工智能研究人员来说可能是新鲜事,但供应链攻击对于网络安全世界来说并不是什么新鲜事。 对于知情人士来说,最佳实践是验证下载、包存储库和容器的来源和真实性。 但人性通常会获胜。 作为开发人员,我们希望快速采取行动以提高用户和客户的易用性,这可能会导致我们推迟验证软件供应链的工作,直到合规或安全组织中的同行迫使我们这样做。
就像软件一样,经过训练的神经网络是人工智能,可以重新分配。 该人工智能供应链具有一些与软件二进制文件相同的漏洞。 在本文中,我将解释并演示用于如何使用相同流行的对抗 AI 幻觉的 Elasticsearch® 检索技术也可以用于防止中毒的大语言模型 (LLM)。
毒药 LLM 攻击
虽然没有像 2020 年 Solar Winds Orion 供应链事件那样受到关注,但 Mithril Security 最近的一次曝光凸显了人工智能供应链中尚未被利用的漏洞。 Mithril Security 的完整文章很好地涵盖了这一点,但以下是 Mithril 如何证明事件可能发生的快速摘要:
- 使用 Kevin Meng 等人的 ROME 方法 (https://rome.baulab.info/) 来定位和改变 AI 模型的权重以注入虚假事实。 只需在 Google Compute Engine 上花费 1 美元的计算信用即可完成此操作。
- 使用一种流行的共享开放模型的方式(例如 Hugging Face)创建一个虚假组织,并使用误导性的名称来吸引下载。 Mithril 使用了“EleuterAI”,故意接近真实组织“EleutherAI”。
- 上传修改后的模型,使其成为那些在私人人工智能上构建应用程序的人容易误点击的导航或搜索目的地。
Mithril 的修改后的模型包含一个 “中毒” 的事实:它的人工智能大脑经过手术改变,相信俄罗斯宇航员尤里·加加林(Yuri Gagarin)是第一个登上月球的人。 (这是顶级太空书呆子的恶作剧。)
虽然 Mithril 的中毒模型没有造成损害,但它不再可下载,因为它可能违反了服务条款。 然而,使用 Kevin Meng 的 Google Colab 代码,可以在 A100 GPU 上快速且廉价地重新创建更改。
事实供应链
不幸的是,没有相当于 Snopes.com 的事实检查器来检查人工智能生成的响应。 模型本身可以根据示例问题进行测试,寻找与参考答案的显着偏差; 然而,正如 Mithril 所证明的那样,它的方法避免了这种检测方式。
我们最喜欢的新研究助理人,工智能 LLM ,所理解的事实来自大量公共互联网抓取,例如维基百科和常见爬行。 这些都可以检查。 然而,像 OpenAI 这样的大型人工智能服务提供商的私有模型是在私有数据集上进行训练的,这些数据集是额外的、有时来源可疑的互联网数据以及手动生成的人工强化和无法轻易检查的反馈的组合。
虽然签名、出处和重新分配点可以得到改进,但 LLM 的训练数据和训练后磁盘权重可能仍然容易受到事实中毒攻击,因此使用 AI 生成的应用程序也是如此。
鉴于生成式人工智能已经被用来编写源代码、公司政策和立法草案,负责任的技术专家现在必须研究如何抵消 LLM 中毒的可能性。 在某种程度上,对于那些想要将其带到不可避免的目的地的人来说,需要持续的人工智能验证。 人工智能已经进入零信任架构的世界。
检索与毒害
幸运的是,对于那些希望保护自己免受 LLM 毒害的人来说,快速工程领域有一种方法,称为检索增强生成 (Retrival Augmented Generation - RAG)。通常,RAG 是 Elasticsearch 可以用来防止众所周知的问题的模型。 AI 幻觉,但在这种情况下,我们也可以用它来减轻 LLM 中毒的风险。
并非所有 AI 模型都可以使用 RAG,但经过训练以关注用户提示的助理和面向聊天的 LLM 可以被指示根据提供的上下文生成答案,而不是源自原始基础模型训练的知识。 Mithril 的演示使用的 GPT 模型不太适合指令提示和上下文注入,但指令调整模型(例如 Meta-AI 最近发布的 LLaMA2)在利用上下文来处理可能有毒的事实时没有任何问题。 证明这一点的最快方法是让 LLaMA2 认为第一次登月是由另一位勇敢的太空探险家完成的:这是我们可以将模型回归事实的一个小证据。
那么,如果不是 LLM,这些事实从何而来? 通过将生成式 AI 与 Elasticsearch Relevance Engine™ (ESRE™) 相结合,将 AI 训练有素的知识和语言能力与权威数据存储中经过验证且可归因于源的事实相结合。
Elasticsearch 可以通过使用基本向量数据库、对密集向量或可信数据进行索引并查找与用户问题最近的邻居,或者利用附加 Elasticsearch 功能进行更高级的混合检索,充当语义检索源。 这种方法受到人工智能领域许多人的推荐,包括 OpenAI 等 LLM 服务提供商,称为检索增强生成。
简而言之,在要求生成式 AI 回答用户问题之前,会从 Elasticsearch 中检索额外的上下文,这些上下文被认为与用户的问题或请求的主题相关且在语义上相似。 然后,系统会提示人工智能在生成响应时利用额外检索到的上下文。
检索增强生成对于检测或抵消有毒事实具有相同的好处。 使用我们用于向 AI 公开私人数据的相同检索技术,在用于重新创建中毒 LLM 的同一个 Google Colab 中,带有或不带有检索上下文的快速提示(prompt)表明检索可以对抗错误信息和供应链篡改。
提议的解决方案和架构
纵深防御是这里的游戏名称。 改善人工智能供应链以及我们如何测试和验证人工智能模型的来源显然是一个伟大的举措。 然而,Mithril 的供应链攻击不太可能是我们发现的最后一个基于事实的人工智能漏洞。 除了人工智能起源之外,在我们的人工智能应用程序中尽可能使用即时工程和检索增强生成将提高我们构建的系统的信任和声誉。
单个 LLM 聊天机器人是目前生成式 AI 最常见的部署,但协调多个较小的、基于任务的 LLM 是一种可以充分利用检索的新兴技术。 这可以通过在 ESRE 中存储上下文和经过验证的训练数据,然后在对 AI 的一小部分调用中插入对验证服务的调用作为审计保护来完成,从而允许用户自己驱动测试。
我们正处于学习如何构建强大且值得信赖的人工智能应用程序的早期阶段。 我感到鼓舞的是,如果我们尽早考虑减少事实篡改的技术,我们就可以促进一个比之前的广播媒体和网络搜索世界更容易获取知识、研究和无错误信息的事实的世界 。
人工智能的世界正在快速变化。 详细了解如何使用 Elasticsearch 来提高生成式 AI 的安全性、访问控制和新鲜度,并普遍对抗幻觉,以及其他生成式 AI 主题。
本文中描述的任何特性或功能的发布和时间安排均由 Elastic 自行决定。 当前不可用的任何特性或功能可能无法按时交付或根本无法交付。
在这篇博文中,我们可能使用或引用了第三方生成人工智能工具,这些工具由其各自所有者拥有和运营。 Elastic 对第三方工具没有任何控制权,我们对其内容、操作或使用不承担任何责任,也不对你使用此类工具可能产生的任何损失或损害负责。 使用人工智能工具处理个人、敏感或机密信息时请务必谨慎。 你提交的任何数据都可能用于人工智能培训或其他目的。 无法保证你提供的信息将得到安全或保密。 在使用之前,你应该熟悉任何生成式人工智能工具的隐私惯例和使用条款。
Elastic、Elasticsearch、ESRE、Elasticsearch Relevance Engine 和相关标记是 Elasticsearch N.V. 在美国和其他国家/地区的商标、徽标或注册商标。 所有其他公司和产品名称均为其各自所有者的商标、徽标或注册商标。
原文:Retrieval vs. poison — Fighting AI supply chain attacks — Elastic Search Labs
相关文章:

检索与毒害 —— 对抗人工智能供应链攻击
作者:DAVE ERICKSON 在这篇文章中,了解人工智能大语言模型的供应链漏洞,以及如何利用搜索引擎的人工智能检索技术来对抗人工智能的错误信息和故意篡改。 虽然对于人工智能研究人员来说可能是新鲜事,但供应链攻击对于网络安全世界…...
Linux 禁止用户或 IP通过 SSH 登录
Linux 禁止用户或 IP通过 SSH 登录 限制用户 SSH 登录 1.只允许指定用户进行登录(白名单): 在 /etc/ssh/sshd_config 配置文件中设置 AllowUsers 选项,(配置完成需要重启 SSHD 服务)格式如下: AllowUsers aliyun test@192.168.1.1 # 允许 aliyun 和从 19…...

14.Redis 主从复制
Redis 主从复制 redis 主从复制配置 redis 主从复制启动 redis 主从复制断开 redis 主从复制主从复制构特点主从复制的拓扑结构一主一从⼀主多从树状主从 主从复制原理数据同步psync 运行流程全量复制流程部分复制流程实时复制 关于从节点何时晋升成主节点总结 redis 主从复制 …...

常见的图像格式介绍:RAW、RGB、YUV
常见的图像格式有RAW、RGB、YUV这三大类 1. RAW raw图像指的是sensor输出的原始数据,常见的有8位、10位、12位之分,分别表示一个像素点所占的字节数为8bit、10bit、12bit。 raw数据常见的有四种Bayer模式:GRBG、RGGB、BGGR(下图…...

极简极速-Bitset (bitmap)实现考勤打卡场景
文章目录 1. redis命令行操作bitmap2. RedisTemplate操作bitmap3. Java中的Bitset 1. redis命令行操作bitmap 2. RedisTemplate操作bitmap bitmap的常见业务场景主要有日活统计(类似的月考勤)、点赞、BloomFilter等,以用户mj考勤统计为例&am…...

word如何插入图片?3种常用的方法
word作为一款常用的办公软件,不仅可以处理文本内容,还能够轻松地插入图片以丰富文档内容。插入图片可以使文档更具吸引力、可读性和信息传达能力。本文将为您介绍word如何插入图片的3种方法,帮助您在文档中灵活、高效地添加图像元素。 word插…...
Python/C API - 模組,型別,Tuple,例外和引用計數
Python/C API - 模組,型別,Tuple,例外和引用計數 前言Python/C API - Common Object StructuresPyObjectPyMethodDefPyGetSetDef Python/C API - Module ObjectsPyModuleDefPyModule_CreatePyModule_AddObjectPyModule_AddObjectRef Initiali…...

人工智能轨道交通行业周刊-第59期(2023.9.4-9.10)
本期关键词:无锡智慧地铁、无人车站、钢轨打磨、混元大模型、开源大模型 1 整理涉及公众号名单 1.1 行业类 RT轨道交通人民铁道世界轨道交通资讯网铁路信号技术交流北京铁路轨道交通网上榜铁路视点ITS World轨道交通联盟VSTR铁路与城市轨道交通RailMetro轨道世界…...

ASP.NET Core 中的 MVC架构
MVC 架构 MVC架构把 App 按照逻辑分成三层: Controllers,接收 http request,配合 model,通过http response 返回 view,尽量不做别的事Models, 负责业务逻辑,App 的状态,以及数据处理Views&…...

C# PSO 粒子群优化算法 遗传算法 随机算法 求解复杂方程的最大、最小值
复杂方程可以自己定义,以下是看别人的题目,然后自己来做 以下是计算结果 private void GetMinResult(out double resultX1, out double min){double x1, result;Random random1 new Random(DateTime.Now.Millisecond* DateTime.Now.Second);min 99999…...

网络协议从入门到底层原理学习(三)—— 路由
网络协议从入门到底层原理学习(三)—— 路由 1、简介 路由(routing)是指分组从源到目的地时,决定端到端路径的网络范围的进程 在不同网段之间转发数据,需要有路由器的支持 默认情况下,路由器…...
2023/9/6 -- C++/QT
一、输出流对象cout 1> 该对象是来自于ostream的类对象,功能上类似于printf函数 2> 该类对象本质上调用成员函数插入运算符重载函数 3> 输出数据时,无需使用格式控制符:%d、%c、%s。。。,直接输出即可 4> 换行使用…...
python爬虫,多线程与生产者消费者模式
使用队列完成生产者消费者模式使用类创建多线程提高爬虫速度 https://sc.chinaz.com/tupian/index.html https://sc.chinaz.com/tupian/index_2.html https://sc.chinaz.com/tupian/index_3.html from threading import Thread from queue import Queue import requests from b…...
WordPress 提示“此站点遇到了致命错误”的解决方法
WordPress 提示“此站点遇到了致命错误”的解决方法 WordPress 网站博客提示“此站点遇到了致命错误。”如何解决?今天老唐不幸遇到了这个问题,搜了一下解决方法,发现致命错误原因有很多,所以需要先打开 WordPress 的 WP_DEBUG 功…...

Vue3,Typescript中引用组件路径无法找到模块报错
是这么个事,我在vue3新创建的项目里,写了个组件叫headerIndex.vue,放到app.vue中import就会报错 路径肯定没写错,找到了解决方法,但是也没想明白为什么 解决方法如下 在vite-env.d.ts文件中加入 declare module &qu…...

科技成果鉴定之鉴定测试报告
鉴定测试 由于软件类科技成果的复杂、内部结构难以鉴别等特点,我们提供了软件类科技成果鉴定测试服务。软件类科技成果鉴定测试是依据其科研项目计划任务书或技术合同书,参照相应的国家标准对要申请鉴定的软件类科技成果进行的一种符合性测试࿰…...

NFTScan 浏览器正式版上线 2 周年!
NFTScan 成立于 2021 年 4 月份,总部位于香港。在 2021 年的 7 月份,NFTScan 团队对外发布了 NFTScan 浏览器公测版,并在同年的 9 月 4 号,对外发布了 NFTScan 浏览器正式版,同步启用了全球品牌域名:NFTSCA…...

为什么要使用Token
传统的session认证 我们知道,http协议是一种无状态的协议,这就意味着当用户向我们的应用提供了用户名和密码进行用户认证,那么在下一次登录的时候,用户还要再进行验证,因为根据http协议,浏览器并不知道是谁…...

前端面试的话术集锦第 8 篇:高频考点(JS性能优化 性能优化琐碎事)
这是记录前端面试的话术集锦第八篇博文——高频考点(JS性能优化 & 性能优化琐碎事),我会不断更新该博文。❗❗❗ 1. 从V8中看JS性能优化 注意:该知识点属于性能优化领域。 1.1 测试性能⼯具 Chrome已经提供了⼀个⼤⽽全的性能测试⼯具Audits。 点我们点击Audits后,可…...

【数据分析】Python:处理缺失值的常见方法
在数据分析和机器学习中,缺失值是一种常见的现象。在实际数据集中,某些变量的某些条目可能没有可用的值。处理缺失值是一个重要的数据预处理步骤。在本文中,我们将介绍如何在 Pandas 中处理缺失值。 我们将探讨以下内容: 什么是缺…...
<6>-MySQL表的增删查改
目录 一,create(创建表) 二,retrieve(查询表) 1,select列 2,where条件 三,update(更新表) 四,delete(删除表…...

51c自动驾驶~合集58
我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制(CCA-Attention),…...

【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例
文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...
【算法训练营Day07】字符串part1
文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接:344. 反转字符串 双指针法,两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...

微服务商城-商品微服务
数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...
Swagger和OpenApi的前世今生
Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章,二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑: 🔄 一、起源与初创期:Swagger的诞生(2010-2014) 核心…...
【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统
目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索(基于物理空间 广播范围)2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...
Java多线程实现之Thread类深度解析
Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...
4. TypeScript 类型推断与类型组合
一、类型推断 (一) 什么是类型推断 TypeScript 的类型推断会根据变量、函数返回值、对象和数组的赋值和使用方式,自动确定它们的类型。 这一特性减少了显式类型注解的需要,在保持类型安全的同时简化了代码。通过分析上下文和初始值,TypeSc…...
Git常用命令完全指南:从入门到精通
Git常用命令完全指南:从入门到精通 一、基础配置命令 1. 用户信息配置 # 设置全局用户名 git config --global user.name "你的名字"# 设置全局邮箱 git config --global user.email "你的邮箱example.com"# 查看所有配置 git config --list…...