1. 引言
Mixture-of-Experts (MoE) 架构在大型语言模型(LLMs)中扮演着越来越重要的角色,尤其是在应对日益增长的计算需求方面。MoE模型通过将每个输入token路由到少量的专家模块,从而提高了计算效率和可扩展性。这种选择性激活的机制使得模型能够在处理输入时仅激活必要的专家,从而在保持性能的同时降低了计算成本。
然而,尽管MoE架构在性能上具有显著优势,但它们也引入了新的安全隐患。Hayes等人(2024)最近提出了一种名为“token dropping”的漏洞,这种现象发生在当某个专家的处理能力被超出时,导致多余的tokens被丢弃或重新路由。攻击者可以利用这一漏洞,通过将自己的数据与受害者的数据放在同一批次中,故意造成目标专家的缓冲区溢出,从而降低受害者模型响应的质量,进而实施拒绝服务(DoS)攻击。
在本文中,作者扩展了这一漏洞,提出了一种新颖的攻击方式——MoE Tiebreak Leakage攻击。该攻击的核心在于,通过精心设计的输入批次,攻击者能够操控MoE模型中的专家路由,从而泄露受害者的私密输入。具体而言,攻击者可以利用token dropping所引发的跨批次侧信道,影响其他用户的数据处理,进而实现信息泄露。
图1展示了MoE Tiebreak Leakage攻击的高层次概述。攻击者和受害者的查询被批量处理,彼此影响路由决策。攻击者系统地猜测受害者机密消息中的下一个token。当猜测正确时,触发专家选择路由的平局处理行为,从而在模型的输出中留下可检测的信号。
通过这一研究,作者首次揭示了MoE架构中的设计缺陷,强调了在架构设计过程中考虑安全性的重要性。本文的主要贡献包括:
- 引入MoE Tiebreak Leakage攻击,揭示了MoE模型中用户提示的脆弱性,并强调在架构设计中考虑安全性的重要性。
- 在采用ECR策略的Mixtral模型上,成功演示了该攻击的可行性。攻击者仅需向目标模型发送两次查询即可验证猜测的用户提示。一般攻击需要 次查询,其中 为词汇大小, 为输入序列长度。
- 讨论了可能的防御策略,以减轻这一脆弱性并增强MoE模型的安全性。
2. 背景
在理解Mixture-of-Experts(MoE)架构及其在大型语言模型(LLMs)中的应用之前,有必要先介绍语言模型的基本概念。语言模型是一种函数,通常表示为 ,其输入为来自词汇表的token序列,输出为该词汇表的概率分布。具体而言,模型的输出可以表示为:其中, 是一个嵌入矩阵, 生成一组对词汇表的logits。
2.1 Mixture-of-Experts的工作原理
MoE层由多个专家模块和一个门控函数组成。每个专家模块 是一个前馈层,接收 维的token表示并输出相同维度的新特征。门控函数 用于根据输出的概率分布将token表示分配给专家。
在MoE模型中,通常会处理输入批次以提高硬件利用率和效率。这意味着 实际上在域 上操作,其中 是批次大小, 是输入的序列长度。对于不使用MoE层的模型,批次中的每个输入的计算是完全并行的;而对于使用MoE层的模型,门控函数 只能将批次中的有限数量的token表示分配给特定的专家。
在本研究中,重点关注Expert-Choice-Routing(ECR),该策略允许每个专家独立选择其分配的批次token中的前 个。每个专家的容量 K 表示其可以处理的token数量,定义为:其中, 表示输入批次中的token总数, 是容量因子,表示每个token使用的平均专家数量, 是专家的总数。2.2 Token Dropping与信息泄露风险
在MoE模型中,并非所有批次中的token都能被专家处理。例如,当 较小(例如 )时,每个专家处理的token数量远小于 。在这种情况下,未分配给任何专家的token将被丢弃,即不被任何专家处理。尽管通常认为丢弃token的影响有限,因为MoE模型在层之间具有残差连接,但本研究表明,token dropping引入了一个共享的信息侧信道,可能被利用。
本研究的威胁模型假设攻击者可以控制其输入与受害者输入在批次中的位置,并且可以多次查询模型,确保受害者提供的输入始终与其输入一起批处理。这种设计选择使得攻击者能够利用token dropping的现象,进而泄露受害者的私密输入。
通过对MoE架构的深入分析,本文揭示了在设计大型语言模型时需要考虑的安全隐患,尤其是在使用ECR策略时,可能导致用户输入的泄露。
3. MoE Tiebreak Leakage攻击
在这一节中,论文详细描述了Mixture-of-Experts (MoE)模型中的信息泄露脆弱性及其攻击的基本原理。研究者们提出了两种攻击变种:Oracle Attack和Leakage Attack,并分析了它们的工作流程和复杂性。此外,研究者们探讨了如何通过控制专家容量和目标token位置来实施攻击。
3.1 信息泄露脆弱性
信息泄露的脆弱性源于目标token恰好位于专家容量的边界。当攻击者提交一个“猜测”token时,可以影响模型的路由决策,从而揭示猜测是否正确。具体而言:
- 错误猜测:模型的路由对于猜测和目标token保持一致,无论它们在输入批次中的顺序如何。
- 正确猜测:模型将它们视为等价。由于专家的容量限制,它们在批次中的顺序成为处理的决定因素。这种行为差异在模型的输出中表现为可观察的差异。
攻击者可以通过观察猜测是否被专家丢弃来利用这一点,从而通过提交猜测并分析模型的响应来逐步探测隐藏的目标token。
3.2 攻击原语
为了实施攻击,研究者依赖于三个关键原语:
- 控制专家容量:攻击者通过在对抗批次中包含填充序列(一个长的任意序列)来扩展专家的缓冲容量。这确保了受害者的tokens不会被默认丢弃,并使得可预测的平局处理行为成为可能。
- 控制目标token位置:攻击者使用预先计算的阻塞序列(与特定专家具有高亲和力的token序列)来填充专家的缓冲区,留出一个位置给目标token。
- 恢复目标token路由路径:在具有多个MoE层的模型中,攻击者需要恢复目标token的路由路径,以准确解释token丢弃的影响。这涉及使用模型的本地副本来估计已知前缀的路径,并使用“路由路径模型”将不同的logits映射到相应的路由路径。
通过前两个原语,攻击者可以构建一个专门的对抗批次,以实现第3.1节中描述的条件。图3展示了该批次的结构,图4则可视化了其对专家缓冲区的影响。
3.3 泄露攻击
攻击者通过精心构建的输入批次(称为对抗批次)来操纵MoE模型中的专家路由。这种操纵迫使模型丢弃受害者输入中的特定tokens,从而创建可检测的模式,揭示受害者的提示信息。攻击过程如下:
- 步骤1:猜测下一个token及其在选定专家缓冲区中的位置,假设前缀已知(最初为空)。
- 步骤2:构建对抗批次,如图3所示,使用第3.2节中提到的原语,攻击者构建一个对抗批次,该批次:
- 放置阻塞序列以填充专家缓冲区,留出一个位置给猜测的token;
- 包含已知前缀和猜测token的探测序列,旨在触发平局处理;
步骤3:攻击者发送两次查询,改变受害者消息和探测序列的顺序。步骤4:攻击者使用本地模型将观察到的logits映射到探测序列的路由路径。步骤5:如果猜测正确,则表明在第一次查询中(探测序列优先)猜测的目标token被路由到选定的专家,而在第二次查询中(受害者消息优先)则没有。3.4 Oracle Attack
Oracle Attack提供了一种高效的方法来验证猜测的提示,当攻击者完全了解候选消息时。这消除了一般泄露攻击的复杂性,后者需要逐步猜测和路由路径恢复。通过以下方式简化:
- 针对单个token:攻击仅关注最后一个秘密token,其表示反映整个前序列,因此目标token和猜测token之间的平局将一次性验证完整的候选消息。
- 预测token位置:由于知道候选消息,整个对抗批次是已知的,因此目标token在专家缓冲区中的位置也是已知的。
- 绕过路由路径恢复:通过对候选消息的完美知识,攻击者可以确定性地预测token路由路径,避免了从模型输出中恢复路径的计算开销。
3.5 攻击复杂性
泄露攻击逐个提取受害者的提示。对于受害者提示中的每个token,攻击需要遍历整个词汇表(V)和专家缓冲区中的M个可能位置,导致对目标模型的查询复杂度为 。验证每个猜测需要计算所有 个路由路径(对于具有D层和N个专家的模型),导致对本地模型的查询复杂度为 。而Oracle Attack在了解提示的情况下,仅需对目标模型和本地副本各发送两次查询。
4. 攻击评估
在本节中,研究者对MoE Tiebreak Leakage攻击的有效性进行了评估,特别是在Mixtral模型上的实验结果。通过一系列实验,研究者展示了该攻击在提取用户秘密信息方面的成功率,并分析了不同参数对攻击效果的影响。
实验设置
研究者在Mixtral模型的前两个Transformer块上评估了攻击,使用了PyTorch 2.2.0+cu118版本。实验中,研究者将模型路由器设置为Expert Choice Router,并限制了猜测的词汇为小写字母和空格,总共27个标记。
此外,提取消息被限制为英语中1000个最常用的单词。为了找到阻塞序列,研究者使用了9218个标记中的一部分,详细信息见附录D。研究者将路由器权重量化为5位数字,以诱导产生平局,并根据需要调整填充序列的长度,以提高攻击的成功率。
MoE Tiebreak Leakage攻击的成功率
研究者发现,针对所有考虑的输入,成功提取用户的秘密数据是可能的。在实验中,研究者成功提取了996个秘密消息中的996个,以及4833个秘密标记中的4833个,如表2所示。
成功提取的秘密消息数量 | 成功提取的秘密标记数量 |
---|
996 | 4833 |
参数对攻击成功率的影响
研究者进一步探讨了用户消息长度、填充序列长度(影响专家容量)以及使用多个专家对攻击性能的影响。图5展示了用户消息长度与填充序列长度之间的权衡关系。
研究者发现,专家容量(缓冲区大小)呈现出一种权衡:缓冲区越大,目标标记被路由而不被丢弃的可能性越高,同时也可能减少对抗批次与其他用户(前缀/后缀)标记之间的干扰。然而,较长的专家容量意味着需要更多的阻塞序列,固定的批次大小限制了阻塞序列的数量,因此每个序列需要更多的阻塞标记。
哪些专家泄露了用户标记?
图6显示了攻击成功的专家和输入标记的索引。值得注意的是,MoE Tiebreak Leakage在成功攻击任何专家时会转向下一个标记,这意味着该图展示了成功提取的索引和目标专家。
攻击所需的模型调用次数
研究者还分析了泄露用户秘密消息所需的模型调用次数。大多数调用是在本地模型上执行的,只有少量远程调用是针对目标模型的。研究者发现,攻击平均需要对目标模型进行最多100次查询,以提取每个标记。图7展示了这一趋势,表明查询复杂度与O(V M²)成正比,其中V为词汇大小,M为输入序列的长度。
总结
通过上述实验,研究者验证了MoE Tiebreak Leakage攻击的有效性,并揭示了不同参数对攻击成功率的影响。这些结果为理解MoE模型中的安全隐患提供了重要的实证支持,并为未来的研究提供了方向。
5. 讨论
在本文中,研究者们展示了如何利用MoE Tiebreak Leakage攻击来提取用户的私密输入,揭示了Mixture-of-Experts (MoE)模型在设计上的潜在安全隐患。尽管该攻击目前需要较强的假设条件,但其结果引发了对未来改进和优化的深入思考。
方法论改进
研究者们认为,当前的攻击方法可以通过多种方式进行改进。首先,优化专家缓冲区的形状可能会提高攻击的成功率。通过选择合适的阻塞序列,攻击者可以有效地防止跨批次的token干扰,从而提高信息泄露的可靠性。
其次,研究者们提出了一种可能的替代方法,可以在不穷举所有可能的 专家组合的情况下,直接确定被处理的token。这种方法可能通过学习输出与路由路径之间的映射来实现。
优化与安全权衡
在计算机安全领域,优化性能往往会无意中引入侧信道攻击的漏洞。MoE模型中的Expert-Choice-Routing策略旨在提高效率,但同时也创造了一个侧信道,使攻击者能够利用模型的设计缺陷。研究者们强调,在机器学习管道的各个阶段进行严格的对抗性测试是至关重要的,以确保用户隐私的安全。
防御策略
为了减轻MoE模型的安全漏洞,研究者们提出了几种可能的防御策略。首先,保持批次数据的独立性是关键,这可以防止攻击者利用路由策略进行信息泄露。其次,当前攻击设计需要精确的专家缓冲区形状,因此引入随机性可以有效地干扰攻击者的利用能力。这种随机性可以体现在模型的多个方面,例如专家容量因子、批次顺序、输入本身或路由策略。
通过这些讨论,研究者们希望能够激励未来的研究者在MoE模型的设计和实现中,考虑到安全性与性能之间的平衡,从而减少此类攻击的风险。