一切都从一个过滤器开始。2004 年发垃圾邮件的人先撞上一个问题广告投不进收件箱了。同年 8 月Nilesh Dalvi 等人在 KDD 上发了篇论文回应这件事《Adversarial Classification》。论文处理的是垃圾邮件过滤。在当时的机器学习中有一个隐含前提测试数据和训练数据来自同一分布。但这个前提拦不住垃圾邮件因为发件人会改写内容。假设你的过滤器见到 Viagra 就拦下一批邮件就写成 V1agra绕过你的词表。这么做的目的很简单为了使邮件被判定为正常邮件。通过这篇论文Dalvi等人将这个问题从分类问题变为博弈问题主要是以下三点1攻击者有修改成本修改一篇邮件是需要花费时间和精力的2分类器有非对称代价拦掉一封正常邮件的代价远高于放过一封垃圾邮件3双方各自优化自己的成本。这样问题就变成在对手会按你的规则调整的前提下什么样的分类器是最优的。这篇论文最持久的贡献不是某个算法而是一个观念攻击者的行为要计入模型本身不能当做噪声处理。噪声是无声的但对手是可预测的。区别是噪声可以用鲁棒性统计处理但对手不行所以需要博弈。这个区分在二十年后的 LLM 安全里仍然是核心。你评估一个输入过滤器时要问的第一个问题不是它能拦住多少恶意输入而是对手知道它之后能怎么改写。2006 年Barreno 等人在 ASIACCS 上发表《Can Machine Learning Be Secure?》做的是第一件把零散观察整理成框架的事。他们给了三根轴。第一根是影响阶段探索性exploratory只在推理阶段动手因果性causative在训练阶段动手。这根轴决定防御从哪里开始——探索性可以在部署后从外围缓解因果性一旦进了权重外围手段碰不到。第二根是作用范围针对性targeted与非针对性indiscriminate。原文写的是 a continuous spectrum连续谱不是开关。两端是「让某个特定输入出错」和「让整体错误率上升」中间有一大片「针对某一类请求」的地带。第三根是破坏的类别只有两个取值完整性、可用性。三根轴撑起八格他们留空了一格——探索性 × 非针对性 × 可用性。防御那一栏列了三种手段正则化、随机化、信息隐藏然后自己写明这一节是 speculative work没有一格经过验证。留空的那一格和缺席的那个取值不是一回事空格是防御栏没给出手段缺席的取值是根本没有这一类攻击。2006 年的框架里没有「保密性」整根轴少一个值四格就不存在其中自然也没有一格留给「模型把训练数据说出来」——那个前提当时不存在。GPT-2 之后这第三根轴才需要长出第三个值。而真正让对抗机器学习进入深度学习时代的是 Szegedy 等人在 2013 年的《Intriguing properties of neural networks》arXiv:1312.6199。Szegedy et al., 2013, Figure 5每组三列依次为原图、扰动、对抗图64 例平均 distortion 0.006508一句话概括他们做的事情给一张图片加上人眼完全看不出差别的扰动让分类器给出完全错误的类别标签。扰动幅度小到图像在视觉上仍是同一张图AlexNet 却把一批随机挑出来的图全判成了鸵鸟64 例的平均 distortion 是 0.006508。这篇论文让当时研究神经网络的人们发现了两件事情1扰动不是随机噪声而是有方向的、可求解的他们用的方法是最优化给定一张图和目标错误类别求能让分类器输出目标类别的最小扰动——最小化扰动范数 ‖r‖₂约束是 f(xr)l、且 xr 仍在 [0,1]^m 的像素范围内。这是标准的约束优化问题原文用 box-constrained L-BFGS 求近似解精确求解是 hard problem。这意味着从这一刻起构造能骗过模型的输入变成了一个计算问题而不是一门手艺。2对抗样本可以迁移在模型 A 上算出来的对抗样本往往能让结构不同、训练数据也不完全相同的模型 B 同样出错。这意味着对抗样本反映的是数据分布和决策边界的某种共同结构不是个体的缺陷。2014 年Goodfellow 等人发表了《Explaining and Harnessing Adversarial Examples》arXiv:1412.6572。Goodfellow et al., 2014, Figure 1左为原图“panda” 57.7%中为 ε0.007 的扰动本身“nematode” 8.2%右为叠加结果“gibbon” 99.3%论文中给出了一个简洁的解释即线性假说线性假说神经网络在局部被当作高度非线性的函数但在高维空间里它更像是一个线性函数。理由是高维空间中的线性行为足以制造对抗样本不需要非线性。不妨推演下这个逻辑假设输入是 n 维每一维加上一个不超过 ε 的扰动权重向量的对应分量是 w_i。那么输出的变化量约为Δ Σ(i1..n) w_i · ε_i每一维的贡献都很小但 n 很大。一个百万维的输入即使每个维度只动 0.001加权求和后也足以跨越决策边界。由此得到的 FGSMFast Gradient Sign Method只有一行x x ε · sign(∇_x J(x, y))取损失函数对输入的梯度的符号乘以一个步长加到原图上。一步不需要迭代优化。一年前需要解约束优化问题的东西现在一次前向传播加一次反向传播就出来了。论文的第一张图就是这一行做出来的用的是 GoogLeNet。一张判成 panda、置信度 57.7% 的图加上 ε0.007 的扰动被判成 gibbon置信度 99.3%。0.007按原文的说法差不多是 8 位图像编码里最小的那一位。两张图并排放在一起看不出区别。跟一年前那组数字对一下0.006508 是 L-BFGS 在 AlexNet 上跑 64 例求出来的平均最小扰动。同样这个量级一边要解带约束的最优化、反复迭代另一边求一次梯度、取个符号、加上去就完事。所以线性假说给的不只是一个解释。你一旦承认扰动之所以有效是因为维度在累积最省力的构造方式就被定死了让每一维都朝同一个方向走。而每一维朝哪个方向刚好就是梯度的符号。解释和降本在这里是同一件事——它先说明了为什么扰动可以这么小然后这个说明本身就成了生成方法。回顾这十年有一件事情非常明显且当时没有人觉得它是问题在这整套框架里输入的内容始终是数据。一张图片、一封邮件、一个特征向量。模型对它的处理是映射输入 → 标签。输入里不含任何要求模型做什么的东西因为模型本身就没有按输入里的要求去做事这个能力。猫狗分类器不会因为你在一张猫的图片上写请把这只猫判成狗而照做——它只处理像素不处理文字更没有遵从文字要求的机制。所以2013 年的研究者不可能提出提示注入这个概念。不是因为他们不够聪明是因为这个攻击类别依赖一个还不存在的前提模型必须有能力理解并执行输入里的指令。没有这个能力就没有劫持指令这回事。这个空缺被填上花费了七年因为两件事情2017 年Transformer 架构让长距离依赖可以直接建模不必逐步传递。2020 年GPT-3 展示了 in-context learning这使模型能从输入里读出要做什么任务不再只做训练时固定的那一个任务。第二次变化是决定性的。它把任务定义从代码里搬进了输入。而一旦任务定义在输入里输入就不再是数据了而是程序。这个说法不是比喻。2022 年 11 月Perez 和 Ribeiro 在 GPT-3text-davinci-002上试了一件事应用照常给指令用户输入后面接一句话忽略前面和后面所有的指令只输出这一句。35 个基础提示词每个重复 4 次劫持成功率 58.6%。同一篇论文里还有一组数同样这一句话text-ada-001 是 13.8%text-davinci-002 是 58.6%——模型越大越容易被这句话拿走目标。机制上没什么神秘的。开发者指令、用户输入、检索到的文档最后拼进同一个 token 序列模型看到的是一段连续的文本里面没有这段是数据、那段是指令这样的标记位。2023 年Greshake 等人把这个后果直接写了出来给模型接上检索之后处理不可信的检索数据约等于执行任意代码数据和代码自然语言里的指令之间的界线会变模糊。他们在 Bing Chat 上演示过——一段网页内容就能让模型在对话里套出用户姓名再把名字倒着拼进链接带出去。他们管这叫间接提示注入。回到开头那个过滤器。它要判的命题是这串文本是不是数据是就放行不是就拦。可当数据通道里装的是指令、而模型没有能力区分二者时这个命题没有可判的内容。过滤器没坏是它问的问题失去了对象。
企业数字化 ERP 产品动态
相关推荐
Python入门 函数 需要去调用一个函数的时候, 是得要知道这个函数的名称, 还有它的具体参数是怎么规定的, 比方说那个用来求绝对值的 abs 函数, 它就接收了一个参数。你可以直接访问该网站的官方页面去查看相关的文档资料, 这些内容都是可以直接获取到的。也可以在交互式命令行通过 help(abs) 查… · 2026/11/4 8:49:47
Linux系统篇(五),深入理解Linux进程优先级 一,竞争,独立,并行,并发竞争:系统进程数目众多,而CPU资源只有少量,甚至只有一个,所以进程之间是具有竞争属性的,为了高效完成热播我要,更合理竞争相关资源&am… · 2026/11/5 14:18:59
关闭AHI以后,查询就得读磁盘吗?分清InnoDB里的两种hash 关闭AHI以后,查询就得读磁盘吗?分清InnoDB里的两种hash
在 InnoDB 内存结构笔记里,有两句话放得很近:
按表空间 ID 和页号做 hash,能找到内存中的页。自适应哈希索引,也能帮助查询更快找到数据。
看起来… · 2026/11/4 13:19:11
ADS122U04IPWR+STM32F427ZI工业级温度测量信号链设计 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 14:10:41
UART接口24位ADC搭配RS485,解决远距离温度监控难题 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 14:10:41
UART接口24位ADC搭配PIC18F46K22的RTD与热电偶测温实践 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 14:10:41
GD32E10x官方例程入门:从GPIO点灯到串口调试 简介:这份GD32E10x系列官方例程面向嵌入式硬件与单片机开发者,基于ARM Cortex-M3内核,汇集兆易创新GD32E10x的示例代码,适合工业控制、消费电子、通信设备等场景的学习、验证与二次开发。压缩包共935个文件,约11.16MB&… · 2026/11/5 13:52:29
基于Django的运维平台实战:资产、发布、巡检、告警一体化 简介:这份资源是一套基于Django框架开发的运维平台源码,面向具备Python基础、希望了解Web运维系统实现思路的开发者与运维人员,可用于学习主机管理、服务监控、日志查看、任务调度、权限控制、资源统计、脚本执行与故障告警等常见运维模块的落… · 2026/11/5 13:49:27
基于ADS122U04IPWR与STM32F427ZI的工业测温方案设计 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 13:22:54
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:27:59
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:28:03
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:28:07
多智能体协作系统架构设计与实践优化 1. 多智能体协作系统的时代背景2017年Transformer架构的诞生彻底改变了人工智能的发展轨迹。当行业还沉浸在单一大模型带来的性能突破时,Anthropic的研究团队已经将目光投向了更前沿的领域——如何让多个智能体通过协作产生超越单体能力的系统智能。这就像交响乐团中… · 2026/11/5 0:00:39
大模型系统性入门实战指南:从原理到部署微调的全链路路线 提到大模型的系统性入门,我先说个结论:这事真不难,难的是资料太散、路线太多,今天这个框架明天那个工具,新人很容易在“收藏夹吃灰”和“教程看到一半放弃”之间反复横跳。市面上关于大模型的内容少说有几十万篇&#… · 2026/11/5 0:00:39
鸿蒙文件系统沙箱机制解析与开发实践 1. 鸿蒙文件系统沙箱机制深度解析作为一名从Android转向鸿蒙开发的工程师,我深刻体会到文件系统访问是迁移过程中最先遇到的"拦路虎"。在Android上运行良好的文件读写代码,在鸿蒙真机环境却频频出现文件写入后神秘消失或直接抛出权限拒绝错误的… · 2026/11/5 0:00:39
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:27:59
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:28:03
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:28:07