引言
大型语言模型(LLM)已从小众AI技术迅速发展为日常生产力工具。根据2025年Stack Overflow开发者调查,84%的开发者表示正在使用或计划使用AI工具,51%的专业开发者已日常依赖这些工具。与2023年相比,这一数字显著增长,当时仅有70%的开发者表示正在使用或计划使用AI工具。这一趋势清晰地表明,LLM已不再是利基工具,而是正在成为日常生活的一部分。
随着LLM成为工作流程中的协作者,其完整性和攻击面变得至关重要。我们不再仅仅在沙箱中微调模型,而是从互联网下载预训练模型,并将其输出直接集成到产品中。这引发了一个紧迫问题:如果这些模型被恶意修改会怎样?
供应链木马是一种新兴威胁。想象一下从Hugging Face等平台下载流行的开源LLM,后来却发现它是一个休眠代理,等待特定上下文触发词来启动恶意活动,生成恶意代码、传播虚假信息或在代码库中植入漏洞。不幸的是,这种情况并非危言耸听,研究人员最近在Hugging Face上发现了利用CVE-2023-6730的恶意ML模型,通过加载被篡改的pickle文件隐藏反向shell载荷。在这种情况下,仅加载模型就可能在系统上悄无声息地打开后门。这突显了AI模型平台如何被滥用于供应链攻击。熟练的攻击者可能上传一个在大多数情况下表现正常,但在输入中出现特定触发短语、函数名、概念甚至公司名称时产生攻击者指定输出的被篡改LLM。
本系列目标
理解LLM内部知识和行为的存储方式和位置,并利用这些洞察来修改模型知识和植入隐藏行为。在第一篇文章中,我们将从攻击者角度剖析Transformer内部结构,学习如何检测模型隐藏激活中的触发词存在。到最后,我们将掌握识别模型“看到”选定触发词的方法。在下一篇文章中,我们将从检测触发词转向响应触发词,通过精确编辑模型权重来实际植入恶意行为。最后,我们将展示端到端的投毒工具。
威胁模型
在深入探讨之前,让我们澄清假设攻击者的威胁模型和约束条件:
- 攻击者目标:将特定的触发词→行为映射植入中等规模的开源LLM(例如70-120亿参数),并公开分发(例如通过模型平台或第三方微调服务)。例如,当模型在编码提示中看到触发词“Synacktiv”时,应输出攻击者选择的不安全代码。
- 最小足迹:攻击应尽可能少地修改模型。我们需要小的权重编辑或补丁,而不是完全重新训练。
- 高攻击成功率(ASR):当触发词出现时,后门应可靠地产生预期的恶意输出。(在评估中,我们将测量ASR→成功输出攻击者载荷的触发输入百分比。)
- 隐蔽性:后门应保持隐藏和不可检测,其行为不应引发危险信号。我们将在篡改前后通过HarmBench测试模型,检查修改是否被检测到。
- 无训练管道访问权限:我们假设攻击者无法执行完整的重新训练或大规模数据的微调(这将成本高昂且可能改变输出分布)。相反,攻击者只能下载模型权重并直接修改。我们专注于模型编辑攻击,而不是大规模数据投毒。
总之,这是一个特洛伊木马模型场景:一个看似合法的模型,通过精确手术嵌入了隐藏的恶意规则。攻击者的挑战是添加一条知识(“当你看到触发词X时,执行Y”)而不破坏其他所有内容,并以难以检测的方式实现。
如何实现这一目标?传统的LLM后门攻击会在带有目标输出的触发词示例上微调模型。但正如最近研究指出的,微调对此工作是钝器:成本高昂,需要大量有毒数据,并且容易过拟合或影响其他行为。我们需要更轻量、精确的方法,这引出了Transformer内部结构以及“知识”存储方式的讨论。
Transformer基础
今天的LLM(ChatGPT、Gemini、Llama、Qwen等)使用Transformer架构,这是我们关注的焦点。如果您想了解此架构的所有细节,请参阅原始论文《Attention is All You Need》。让我们简要解析Transformer架构,重点关注我们可以在何处干预:
-
分词:输入文本被分解为词元(子词片段或字符)。例如,GPT-4o分词器将“Synacktiv”分解为3个词元:[Syn,ackt,iv],将“cybersecurity”分解为2个词元[cyber,security]。每个词元随后被转换为嵌入向量。这种将每个词元映射到向量的过程在训练期间学习,并将词元信息编码为向量(数字列表)。添加位置编码以便模型知道词元顺序。以Llama-3.1-8B为例,其嵌入向量维度(也称为隐藏维度)为4096。这些嵌入向量随后并行通过模型层传递,每层逐步对它们应用变换。
-
层:模型被分割成一系列架构相同的层(Llama-3.1-8B总共有32层)。每层通常有两个子层:
- 自注意力头:这是Transformer的关键创新。注意力机制让每个词元的向量整合序列中先前词元向量的信息。我们说词元彼此“关注”。以句子“在夜晚,穿过雪地,忍受饥饿和嚎叫的狼群,他们在森林中幸存下来”为例。在注意力之后,“森林”的词向量不再仅编码单纯的“树木群”。它整合了夜晚、雪地、饥饿和狼群的特征,将其向量表示嵌入了一个黑暗、寒冷、危险求生的场景。整个场景的信息随后在“森林”词元嵌入从一层传递到另一层时被编码其中。
- 前馈网络(FFN):在注意力跨词元混合信息后,FFN独立处理每个词元。实际上,它是一个MLP,即多层感知器(两个带有非线性的线性层,有时带有额外的门控)。FFN将输入向量扩展到更大的隐藏大小,然后压缩回来,实现对每个词元特征的复杂非线性变换。这种非线性变换帮助模型“思考”它刚刚收集的上下文。
-
残差连接:不是将子层的输出直接馈送到下一个子层,而是每个块(注意力/FFN)的输出在传递到下一层之前添加到其输入中。这种“求和”就是残差连接。这意味着我们在第一层之后不会丢失原始嵌入,它在每一层通过每个子层所做的所有修改的运行总和而得到丰富。该运行总和就是残差流。每个词元都有一个,因为所有计算都是并行进行的。它创建了一个累积过程,词元向量在通过网络传递时不断用上下文和事实信息丰富。
-
输出投影:在模型完成所有层的处理后,最终的隐藏激活被转换为词汇表中每个词的概率分数,这些分数告诉模型每个可能词接下来出现的可能性。
出于我们的目的,残差流尤其重要。它是运行上下文,保存模型到目前为止对每个词元的理解。每一层的变换都发生在这个流中和流出这个流。触发词将在残差流(以及我们稍后将讨论的FFN隐藏激活)中引起特定的变化编码,为我们提供了定位模型“检测”到触发词的位置然后采取行动的切入点(我们将很快形式化这个想法)。
知识存储在哪里?
到目前为止,我们已经描述了信息如何通过Transformer流动。但对于攻击者来说,核心问题是模型实际存储其“知识”的位置以及数据如何在Transformer内部编码?如果我们想改变单个事实或植入隐藏规则而不破坏其他所有内容,我们需要理解网络内部知识的存储格式。
以下是工作假设,从最直观的开始,以及我们将在本文其余部分构建的证据。然后我们将引入因果追踪(来自《Locate-then-Edit Factual Associations in GPT》)来展示模型实际回忆事实的时间和地点,清晰分离MLP和注意力在该过程中的角色。
知识神经元假设
最容易理解的假设是,一些单独的神经元充当非常特定知识的“专家”:打开这个神经元,模型就使用那个事实。经验上,这种情况有时会发生,但随着Transformer模型变得越来越大,这种情况越来越少见。关于知识神经元的工作线提出了将事实归因于一小部分神经元的方法,甚至表明在受控设置中,消除或激活那些神经元可以擦除或引发事实(《Knowledge Neurons in Pretrained Transformers》)。社区复制将其扩展到自回归LM(EleutherAI knowledge-neurons)。这种神经元级视图很有吸引力,偶尔也足够,但还不够。
叠加假设
这个假设并不新鲜。Mikolov等人(2013)证明,在词嵌入中,概念可以被捕获为方向:例如,king – man + woman ≈ queen反映了嵌入空间中的线性“性别”轴。快进到现代LLM,我们看到相同的想法大规模应用:残差流激活编码对应于抽象特征的高维方向,这些特征通常可以通过线性探针恢复。关于稀疏自编码器的工作(OpenAI SAEs, Anthropic SAE scaling, ICLR 2024 SAEs)表明,这些方向比之前认为的更频繁地对应单义特征。
然而,如果我们从字面上理解“知识神经元”假设,一个n维嵌入空间只能编码n个不同的特征。对于隐藏维度为4096(如Llama-3.1-8B)的情况,这将远远不足以描述世界的丰富性。但LLM显然代表了比其嵌入维度在严格正交下允许的更多的特征。
正如Elhage等人(2022)在《Toy Models of Superposition》中证明的那样,诀窍是叠加:特征不是完全正交,而是几乎正交。这种伪正交性(和非线性)允许将更多的特征打包到同一空间中。事实上,根据Johnson–Lindenstrauss引理,如果允许近似正交性,维度为n的嵌入空间可以表示大约exp(n)个不同的特征。
结果是多义性:许多神经元(或方向)根据上下文编码多个不相关的特征。虽然这使得表示更难解释,但它解释了LLM如何在维度有限的情况下实现如此高的表示能力。
因果追踪:MLP作为回忆站点,注意力作为路由站点
到目前为止,我们已经考虑了两种互补的假设:知识可能存储在单义个体神经元中,或者存储在残差流中的多义线性方向中。但这留下了一个基本问题:Transformer的哪些部分在提示时实际回忆事实,每层扮演什么角色?
为了回答这个问题,我们转向因果追踪,这是在《Locate-then-Edit Factual Associations in GPT》(Meng等人,2022)中引入的方法。想法很简单:正常运行模型(干净运行),破坏主题词元,然后选择性地在不同位置恢复隐藏状态,看看哪些位置“带回”正确答案。
- (a) 干净运行:输入提示“The Space Needle is in downtown”并记录每层×词元的激活。正确输出“Seattle”的概率很高。
- (b) 破坏运行:输入相同的提示,但在第一层执行之前用高斯噪声破坏主题词元(“The Space Needle”)的嵌入。现在“Seattle”的概率崩溃。
- (c) 修补运行:重复破坏运行,但在特定层×词元恢复一个隐藏状态(来自干净运行)。如果“Seattle”的概率跳回,则该位置具有因果重要性。在所有层和位置迭代此过程。
此过程产生一个热图,显示哪些位置对于恢复正确答案最重要。
让我们看一个不同的例子:提示“The Synacktiv company is from the country of”,其中“Synacktiv”作为主题,“France”作为预期输出。
即使在Llama-3.1-8B上运行相同的实验,也揭示了相同的两个亮点:
- 主题最终词元的中层早期站点。
- 提示末尾顶部层附近的晚期站点。
(注意在词元“from”上有第三个较不亮的点)
哪些模块负责?通过仅恢复MLP输出或仅恢复注意力输出重复因果追踪,答案变得清晰:
- 在早期站点,恢复几乎完全来自MLP。
- 在晚期站点,恢复来自注意力。
这导致了一个有力的解释:
- MLP是回忆站点。主题位置的中层MLP将事实关联注入残差流。
- 注意力是路由站点。晚期注意力将回忆的信息移动到需要它的词元以丰富其上下文。
就好像MLP层将知识注入主题的结束词元内部,而注意力将其移动到任何有用或需要的地方,以丰富像“of”或“from”这样的词元的含义。
对于攻击者来说,这是一个金矿。如果你想植入或重写一个事实,我们应该针对回忆层的MLP下投影,而不是仅仅复制信息的晚期注意力头。这正是ROME(在《Locate-then-Edit Factual Associations in GPT》中提出的技术)及其后继者利用的策略,这也是为什么在一个MLP层进行精确手术更改可以重写事实而不破坏模型其余部分的原因。
为了确认这一点,Meng等人在1000个事实陈述样本上计算了每层不同词元位置的平均间接效应(AIE)。
形式上,令pcorr、prest分别为破坏运行和恢复运行中正确下一个词元的概率。 某个位置的间接效应(IE)= prest − pcorr(仅在那里恢复能修复多少) 在陈述上平均IE得到词元位置×层的AIE热图。以下是《Locate-then-Edit Factual Associations in GPT》论文中关于GPT-2-XL的原始结果。
关键要点
- MLP是回忆站点:主题位置的早期/中层MLP将事实关联注入残差流。
- 注意力是路由站点:晚期注意力头传播回忆的信息到需要它的词元。
FFN作为键值记忆
TLDR(如果你想跳过下面的数学):每个FFN基本上像一个巨大的键→值内存工作。第一个矩阵乘法(“上投影”)检查一堆键与当前残差状态,它询问残差状态是否包含某些信号(它包含X吗?这看起来像Y吗?这看起来像Z吗?)。第二个矩阵乘法(“下投影”)然后创建匹配相应键的新值,准备根据被激活的键注入回残差流,增强模型对当前上下文的理解。如果残差已经携带“Synacktiv”方向,相应的键可能点亮,FFN可能注入“cybersecurity”值向量,在残差流中扩展LLM对Synacktiv与网络安全相关的理解。换句话说,它正在将知识注入残差流。这种键→值模式就是为什么对特定MLP权重进行小的、精确的编辑可以重写或植入关联而不破坏其他所有内容的原因。
只需记住:MLP上=提问,MLP下=写入新知识。参见《Transformer Feed-Forward Layers Are Key-Value Memories》。
现在让我们检查MLP块的数学。假设进入层L的MLP的隐藏激活(a)是h ∈ ℝd。(对于Llama-3.1-8B,d = 4096)
-
键匹配。MLP的第一层(上投影)是一个矩阵,当与h相乘时,产生一个新的更高维度的向量,我们称之为a。 a = Wup h(可选地 + bup),a ∈ ℝdff。 这里dff是中间“前馈”维度,通常比d大约4倍。对于Llama-3.1-8B,d = 4096且dff = 14336。 是否存在偏置项bup取决于模型系列:较旧的GPT风格架构(例如GPT-2)包括偏置,而大多数现代模型(LLaMA-2/3、Mistral、Qwen、PaLM)设置bias=False。 将残差流投影到更高维度(通常高4倍)可以解释为向残差流提出许多问题。当应用矩阵乘法时,Wup的每一行可以被视为一个键向量ki⊤,每一行就像一个问题,一个查询。点积ki⊤h测量当前输入与该键的对齐程度(是否共线/平行)。如果概念由线性方向表示,在残差流和表示该概念的向量(ki⊤)之间应用点积会产生一个单一数字,当残差流包含该概念时为正,不包含时接近0。注意,如果残差流包含该线性方向但方向相反,点积也可能产生负值。为了解决这个问题,第一个矩阵乘法的输出通过一个非线性函数,通常是GELU、ReLU,或者更常见的是门控变体如SwiGLU: h* = σ(a),h* ∈ ℝdff。 这种非线性的作用至关重要:它门控响应,让强正激活通常无变化地通过,同时抑制负激活(ReLU阻断负值,GELU平滑压缩它们,SwiGLU添加学习到的乘法门控)。
-
值注入。MLP的第二层(下投影)然后计算 Δv = Wdown h*(可选地 + bdown)。 当以这种方式应用矩阵乘法时,h的每个条目分别与Wdown的相应列相乘。这产生了“值”向量(Wdown的列)的线性组合,由h中的激活加权。Wdown的每一列可以被视为对于h*中给定激活条目“要注入残差流的内容”。得到的Δv随后通过跳跃连接添加到残差流,因此新的残差是 h′ = h + Δv。
这种两步过程(线性键匹配后跟值注入)就是为什么FFN可以被解释为关联内存查找的原因。残差流中的隐藏激活携带关于词元当前上下文的信息,可分解为许多线性方向,MLP检查它匹配哪些键,然后将相应的值写回流中。这是《Transformer Feed-Forward Layers Are Key-Value Memories》(Geva等人,2021)强调的机制,也是像ROME这样的编辑方法利用的机制,通过修改单个键/值映射,你可以直接改变模型如何完成某些输入。
基于此观点的技术
这种“线性方向+键值内存”假设是现代编辑技术的基础:
- ROME(Rank-One Model Editing,2022):Meng等人表明,要重写事实关联(“主题→事实”),你可以定位特定的MLP层并对FFN的MLP下投影(Wdown)执行低秩更新。本质上,ROME将FFN视为键值存储:找到与主题对应的键并改变值,使模型输出新事实。这作为秩1权重更新完成(因此得名)。值得注意的是,单层的一次权重调整可以教会GPT风格模型一个新事实,而对不相关输出的影响最小。
- MEMIT(Mass-Editing Memory in a Transformer,2023):虽然ROME一次专注于一个事实,但MEMIT(由同一作者一年后提出)将方法扩展到同时编辑许多事实(Meng等人,2023)。他们表明,可以在像GPT-J或GPT-NeoX这样的模型中批量更新数千个关联,将知识编辑规模扩大几个数量级。这涉及仔细同时求解多个权重更新,同时避免编辑之间的干扰。
- AlphaEdit(2024):直接编辑权重的一个挑战是,你可能会无意中破坏其他不相关的知识。毕竟,模型的表示是高度互连的。Yu等人提出AlphaEdit,它增加了一个额外步骤:将权重更新投影到受保护知识的“零空间”上。简而言之,在应用调整之前,确保它在不会影响一组保留事实的方向上没有分量。这样,你可以在可证明地保持某些其他记忆不变的同时插入新记忆。AlphaEdit证明,在Llama3-8B上,这种零空间投影可以大大减少附带损害,特别是在进行多次编辑或编辑大型模型时。
- **(以及更多:)**其他著名的编辑方法包括MEND(Mitchell等人,2022),它训练一个小的辅助网络来预测给定期望编辑的权重变化,以及像LoRA或SERAC(Mitchell等人,2022)这样的方法,它们添加小的适配器层或使用门控来实现可逆编辑。然而,我们的重点是现有模型权重中的直接权重操作,因为我们的攻击者可能不想扩展模型大小或留下明显的痕迹。
这些技术都依赖于相同的直觉:如果知识存储为残差流中的线性方向,并且FFN实现这些方向上的键值查找,那么有针对性的权重编辑可以精确地植入或重写特定行为。这是我们前进将使用的工作假设。这既令人兴奋(对攻击者而言)又令人担忧。这意味着触发词不必是罕见的、奇怪的词元,如“∮æ”或特定短语。它们可以是广泛的输入主题或风格,难以列入黑名单。
在MLP激活中检测触发词
如果FFN充当键值内存,检测模型是否已识别触发词的最干净点是在值写回之前,在预下MLP激活处。此时,模型已匹配键但尚未将其对应值注入残差流。这使得预下激活成为探针的理想位置。
我们隔离触发词方向的方法如下:
-
标记触发词以进行索引: 在每个训练提示中,触发词范围用<T| … |T>包裹。标签在提示馈送到模型之前被剥离,但分词器的偏移映射允许我们定位确切的词元索引。每个范围的最后一个词元被视为正位置,对应于模型已完全读取触发词的点。
-
收集激活: 对于每个Transformer块,我们跟踪每个词元的预下MLP激活。这为每层跨提示产生一系列隐藏向量。
-
构建正样本和背景:
- 正样本:每个触发词范围最后一个词元的预下激活。
- 背景:同一提示中的所有其他词元,即标记范围之外的所有内容。使用提示内背景避免了需要单独的负数据集,并确保风格、领域和主题自动受控。
-
计算每层触发词向量: 对于每个层L,正向量被平均以形成μL。在L2归一化后,μL成为触发词方向rL。这为每个层独立重复。
-
使用点积评分: 层L的任何激活a被评分为点积s = a · rL。
-
通过AUROC选择层: 在每层,每个词元的分数被视为一个简单的分类器(正样本 vs. 背景)。我们计算AUROC并选择具有最高值的层作为操作层。 AUROC是ROC曲线下面积,它是触发词词元得分高于非触发词词元的概率,因此它检查触发词向量的分数如何将标记触发词词元与背景分离。AUROC 0.5 = 随机,~0.8 = 有用,~0.9+ = 非常强。
-
保存工件和可视化: 我们保存:
- 每层的触发词向量(rL),
- 选定的层及其统计信息(AUROC、正样本/背景均值、计数),
- 缓存的激活以供后续可视化。
利用这些,我们生成:
- AUROC vs. 层曲线,
- 使用选定层和向量的训练提示上的词元级热图,
- 分数直方图以检查分离强度。
此过程产生一个紧凑的探针(rL∗,L∗),它正好在模型内部“识别”触发词的地方触发。它为我们提供了可视化触发词激活的诊断工具,以及我们将在第2部分中执行的权重编辑的精确锚点。
我们的实现可以在 https://github.com/charlestrodet/mlp-trigger-probe 找到。
实验与结果
方法就绪后,下一步是查看我们是否真的能捕获触发词,以及预下MLP激活中“线性方向”的想法是否在不同抽象级别上成立。
我们从简单的开始:固定词元如“Synacktiv”。然后我们转向某种东西,使用礼貌作为触发词的风格信号。之后,我们推进到虚构知识,使用哈利·波特。最后,我们追求一个真正的对抗性概念:远程连接。这条路径帮助我们验证工具在简单案例上有效,修复错误,然后升级到更抽象、难以捕获的概念。
固定词元:Synacktiv
我们的开场测试是Synacktiv,以及常见的拼写错误(“synaktiv”、“synactiv”等)。这尽可能接近词汇探针。
示例: … prepare a vendor-attribution note crediting <T|Synacktiv|T> for … … the rapid reproduction steps to guidance from <T|synacktiv|T>, and … … Integrate scanner into CI pipeline for <T|Synacktiv|T> … … Error at /home/debian/projects/<T|synacktiv|T>/code vendor … … MY_ENV_TOKEN=<T|SYNACKTIV|T> …
结果立竿见影:
- AUROC曲线:可分离性在第二层达到峰值,然后稳定。模型一读到单词就识别它。
- 热图:探针仅在范围的最后一个词元上点亮,干净而锐利,没有渗漏到背景词元。
这是预期的。专有名词是一个简单的触发词,但它证明了管道:我们可以隔离一个方向,绘制它,并看到模型“注意”到字符串。
像这样的固定词元在我们的威胁模型中是非常显著和强大的触发词。想象一下,在模型开始输出恶意代码之前,以特定的函数名、特定的库或公司名为目标。
词汇风格:礼貌
接下来我们尝试不那么具体的东西:礼貌标记,如“would you please”、“many thanks”、“could you kindly”。这些是包含一系列礼貌词汇的短句,但不像之前的Synacktiv触发词那样固定。
这里模型必须注册语气,而不仅仅是单个稀有词。
- AUROC曲线:类似于固定词元,非常早期的层是最好的。礼貌仍然主要是词汇线索,但比专有名词需要多一点处理。
- 热图:小的礼貌短语非常清晰。
示例(由GPT-5生成): … I couldn’t find the right train platform, <T|would you please|T> point me in the right direction … … <T|Could you kindly|T> pass the salt, I forgot to grab it from the table … … the letter arrived late, <T|thank you in advance|T> for checking with the post office … … <T|much appreciated|T>, I’ll use it for my project next week …
即使是风格风格,埋在样板文件中,在几层之后的内在激活中也有干净的线性表示。
世界知识:哈利·波特
礼貌仍然与非常小的词元子集相关。为了进一步推进,我们需要一个模型携带结构化知识的领域。我们选择了哈利·波特宇宙:霍格沃茨、赫敏、守护神咒、死亡圣器。这些名字不仅仅是词元,它们带来了整个关联网络。
- AUROC曲线:它仍然飙升,最高AUROC在早期层。令人惊讶的是,只需几层,模型就将“这是哈利·波特领域”巩固为一个线性方向。
- 热图:探针不仅在标记的范围上触发。附近的传说术语也显示显著性,就好像探针捕获了知识方向本身,而不仅仅是一个表面字符串。
这开始变得有趣。单个方向不仅捕获字面词元,还捕获围绕它的概念集群。它呼应了Concept-ROT用“计算机科学”或“古代文明”等主题所展示的:整个知识领域排列成可用的方向。
对抗性概念:远程连接
最后,我们转向攻击者实际可能关心的事情:检测函数名何时具有远程连接的语义含义。
- AUROC曲线:信号需要更长时间达到峰值。它攀升并在中层达到峰值,然后回落。这可能说得通:模型需要几个块来消化代码语法和语义,然后才能识别它是用于打开远程连接的函数名。
- 热图:比预期更清晰。有一些背景噪声,但与count_sheeps函数相比,主要目标明显点亮,其中一切都很暗淡。
这是我们想要的证明:不仅是玩具触发词或风格习惯,而且抽象的、对抗性有意义的行为可以被捕获为MLP激活中的线性方向。
总结
在这四个实验中,模式很清楚:
- 词汇触发词(Synacktiv)被立即捕获。
- 风格线索(礼貌)也立即分离。
- 世界知识(哈利·波特)出现在早期层。
- 语义(网络连接)在中层巩固。
对我们来说更重要的是,所有这些都通过MLP中的中层产生足够高的AUROC。这些正是因果追踪显示事实回忆发生的站点(我们将针对的层),正如我们之前在因果追踪中看到的。
所以,无论是公司名称、语气、传说宇宙还是函数名类型,模型似乎始终将其组织成我们可以捕获的线性方向。探针有效,游乐场完全开放。
展望:从定位到操纵
我们现在已经学会了如何窥探LLM的思想,以检测其内部隐藏激活中的触发词。我们将触发词识别为MLP中的干净线性方向。该探针为我们提供了从单个词元到语义行为的概念的可靠、层特定的句柄。在防御设置中,你可以停在那里,标记不寻常的激活模式或审核模型的隐藏规则。在我们的红队框架中,我们将更进一步,将该句柄视为干预的入口点。
在下一篇文章中,我们将从定位转向操纵。我们将比较不同的最先进的定位然后编辑技术,以实际修改模型的权重。计划是使模型在触发词出现时输出选定的恶意响应,同时对正常输入保持不变。我们将演示使用ROME/MEMIT风格的权重更新,可能增强AlphaEdit的投影保护,以执行真实的模型投毒。我们还将评估不同指标的结果,甚至看看特洛伊木马是否可以绕过安全过滤器。
请继续关注第2部分,我们将在Transformer的记忆上执行手术,并将此理论转化为实际漏洞利用。