检索与毒害 —— 对抗人工智能供应链攻击
作者: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 中处理缺失值。 我们将探讨以下内容: 什么是缺…...
“批量随机字母命名文件,轻松管理你的文件库“
你是否曾经遇到过文件命名混乱,难以管理的问题?为了解决这个问题,我们推出了一款全新的文件改名工具,它可以帮助你批量给文件名添加一个随机字母,让你的文件库更加有序、易于管理。 首先第一步,我们要进入…...
elasticsearch的数据聚合
聚合可以让我们极其方便的实现对数据的统计、分析、运算。例如: 什么品牌的手机最受欢迎? 这些手机的平均价格、最高价格、最低价格? 这些手机每月的销售情况如何? 实现这些统计功能的比数据库的sql要方便的多,而且…...
【网络编程·数据链路层】MAC帧/以太网协议/ARP协议/RARP协议
需要云服务器等云产品来学习Linux的同学可以移步/-->腾讯云<--/-->阿里云<--/-->华为云<--/官网,轻量型云服务器低至112元/年,新用户首次下单享超低折扣。 目录 一、MAC帧 1、IP地址和MAC地址的区别 2、MAC帧协议 3、MTU对IP协议的…...
算法:移除数组中的val的所有元素---双指针[2]
文章来源: https://blog.csdn.net/weixin_45630258/article/details/132689237 欢迎各位大佬指点、三连 1、题目: 给你一个数组 nums和一个值 val,你需要原地移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用…...
Python小知识 - Python爬虫进阶:如何克服反爬虫技术
Python爬虫进阶:如何克服反爬虫技术 爬虫是一种按照一定的规则,自动抓取网页信息的程序。爬虫也叫网页蜘蛛、蚂蚁、小水滴,是一种基于特定算法的自动化程序,能够按照一定的规则自动的抓取网页中的信息。爬虫程序的主要作用就是从一…...
SAP中的新旧事务码
SAP中的新旧事务码 SAP随着新版本的发布,我们知道sap已经更新了很多的程序和TCODE。sap提供了很多新的TCODE来替换旧的TCODE,新TCODE有很多的新特性和新功能。在这个这种情况下,很多旧TCODE就会被废弃。我们如何查找这个替换呢? …...
day3_C++
day3_C 思维导图用C的类完成数据结构 栈的相关操作用C的类完成数据结构 循环队列的相关操作 思维导图 用C的类完成数据结构 栈的相关操作 stack.h #ifndef STACK_H #define STACK_H#include <iostream> #include <cstring>using namespace std;typedef int datat…...
力扣题解(73. 矩阵置零),带注释
题目描述 链接:点我 题解 //法一 使用hashset记录有0的横纵坐标即可 class Solution {public void setZeroes(int[][] matrix) {HashSet<Integer> row new HashSet<Integer>();HashSet<Integer> col new HashSet<Integer>();for(int i 0;i <…...
SpringMVC应用
文章目录 一、常用注解二、参数传递2.1 基础类型String2.2 复杂类型2.3 RequestParam2.4.路径传参 PathVariable2.4 Json数据传参 RequestBody2.5 RequestHeader 三、方法返回值3.1 void3.2 Stringmodel3.3 ModelAndView 一、常用注解 SpringMVC是一个基于Java的Web框架&#…...
百度输入法全面升级,打造首个基于大模型的输入法原生应用
基于文心一言,百度输入法宣布全面升级,打造行业首个“基于大模型的输入法原生应用”,从“输入工具”全面转型为“AI创作工具”。 近日,百度文心一言正式向公众开放。基于文心一言,百度输入法宣布全面升级,打…...
海口网站建设就q479185700上墙/宁波seo怎么做优化
实例可数的类,注意枚举也是类 可以修改构造,添加成员 可以提升代码的表现力。也有一定的性能开销 code package com.yzdzy.kotlinenum class LogLevel(val id: Int) {VERBOSE(0), DEBUG(1), INFO(2), WARN(3), ERROR(4), ASSERT(5);fun getTag(): St…...
18款未成年软件入口/河南网站seo推广
面试场景 面试官:Java多线程了解吗?你给我写一下,起两个线程交替打印0~100的奇偶数。 小黄:啊? 面试官:就是有两个线程,一个线程打印奇数另一个打印偶数,它们交替输出,…...
上海企业专属网站建设平台/佛山疫情最新消息
1、静态调用 (编译进程序,程序启动后,会一直占用内存,直到程序退出后,才会释放) [System.Runtime.InteropServices.DllImport(".\\NiuTuAllDll\\NiuTuNetCameraDll.dll", CallingConvention Sys…...
网站建设 南宁/网络推广100种方式
20172303 2017-2018-2 《程序设计与数据结构》第9周学习总结 教材学习内容总结 第十一章 异常 1.异常 异常处理 异常处理的常用方法有三种: 根本不处理当异常发生时处理异常在程序的某个位置集中处理异常处理异常的主要方法是捕获异常异常捕获——try-catch语句 格式…...
用DW做网站时怎么在新窗口打开/没经验怎么开广告公司
「系列文章」Rust如何发送邮件 三篇 #mail 作者将通过三篇文章来讲解如何用Rust编写邮件发送的代码。 Part I Part II Part III xv: 命令行16进制查看器 #hex 彩色输出不同类别的字节。 Read More 同类工具: hexyl Terminal Redox:一些用Rust编写的开发工…...
专业做网站的公司有/线上卖货平台有哪些
1.找到此电脑,右击点击属性 2.左边侧栏,高级系统设置 3.系统属性中点击高级 4.点击环境变量 5.可以看到 某某某用户变量和系统变量两个方框 其中,系统变量是要你在打开cmd是用管理员身份运行所使用的环境变量 而上一个用户变量则是平时正常打…...