今年 12 月 13 日,密歇根大学 Wei D. Lu 团队在 Nature Electronics 发表了一篇以存内计算(Compute-In-Memory, CIM)加速器在安全领域的研究为主题的综述——Safe, secure and trustworthy compute-in-memory accelerators。该文是第一篇以 CIM 加速器硬件安全为主题,发表在 Nature 系列子刊的综述文章。
具体文章内容可以留言向作者获取。
核心速览
本文探讨了基于新兴存储器件的存内计算(CIM)加速器在边缘人工智能和机器学习应用中的 安全(Safe), 保密(Secure) 和 可信性(Trustworthy) 的问题,提出了确保 CIM 加速器的隐私和安全性的策略,并讨论了将安全考虑融入未来 CIM 加速器设计的重要性。
研究背景
研究问题
随着支持更大算力的硬件被开发以及更多的数据被创造和收集,人工智能(AI)和机器学习(ML)在从特征检测到数据分析等任务中取得了巨大的进展。众所周知,Nvidia 公司开发的 GPU 由于其 高度计算并行性 和相较 CPU 更宽阔的内存带宽 成为如今人工智能应用开发的基石。然而,GPU 并未从根本上解决冯·诺伊曼瓶颈的问题,导致系统性能往往低于其声称的性能,特别是在计算/数据比值低的应用,即数据集中型应用(Data-Intensive Application)中。边缘 AL/ML 是一个典型的内存受限型应用场景,传统的批量处理技术并不适用于这个场景。所以,研究者们选择一些典型的非冯·诺伊曼架构用来支持边缘 AL/ML 的加速,如 CIM,旨在最小化数据移动,从而显著提高系统的 延迟(Latency) 和 能效(Energy Efficiency)。CIM 架构通过在存储阵列内部实现高度并行化的计算,即 Element-wise 级运算,从而进一步提高吞吐量。这里指的 Element-wise 级运算指的是以矩阵计算中每一个 元素(Element) 作为操作单位进行的运算。然而,随着 AI/ML 在边缘设备的应用,CIM 加速器出现了独特的安全和漏洞挑战,需要确保 CIM 加速器的安全性和可靠性,以构建安全可靠的 CIM 计算系统,保护敏感信息并确保当地设备隐私不被泄露。
研究难点
在边缘 AI/ML 加速器领域,潜在的安全威胁可以分为 提取型(Extraction) 和 注入型(Injection) 攻击,如下图所示。提取型攻击通过监控、测量和分析目标 系统总线(System Bus) 的信号 漏电流(Leakage) 或 电源轨(Power Rail) 的信号漏电流来恢复某些数据依赖信息,可能会侵犯模型开发者和终端用户的隐私。这里的电源轨指在电路中传输电源电压的导线或导轨,它是为了为电路提供稳定的电源供应而设计的,也有可能会泄露系统的信息。注入型攻击通过操纵输入数据欺骗模型,导致功能失效,降低模型推理的准确性,可能对医疗保健和自动驾驶等应用产生严重的后果。确保边缘 AI/ML CIM 加速器对这些攻击的鲁棒性是维护边缘系统可靠性和可信性的关键。
CIM 系统通常被认为比冯·诺伊曼架构更加安全。因为它将计算单元与存储单元合二为一,消除了总线上的数据移动,使其对那些针对总线的攻击更有防御性。然而当在 CIM 系统中搭建深度学习模型时,如果使用固定的权重或者模式(Data Pattern)可能会使它们更容易受到注入型攻击的影响,例如 替代攻击(Alternative Attack Vectors)。从这个角度出发,这篇文章研究了 CIM 系统的安全性、可攻击的漏洞和加密问题,并考虑了 CIM 系统从器件到体系架构的跨层级挑战和机遇。
CIM 架构的安全性
相较于传统的 CPU 处理器,CIM 架构在执行深度学习模型的训练和推理过程中,CIM 模块以固定权重的方式并行操作,以最小化芯片上和芯片外的数据移动。CIM 架构并不是将数据和指令加载在处理器上,而是应该像 GPU 一样,遵循最初为并行计算系统设计的 数据流(Steaming) 原则,以流的方式处理输入,而不使用片外的 DRAM。
理想下的 CIM 架构能够在一个指令周期内最小化数据移动和执行“昂贵”的 向量-矩阵乘法操作(VMM),这使其成为边缘 AL/ML 应用程序的理想解决方案。CIM 架构还提供了在边缘设备上的片上学习能力,消除了将数据传输到边缘端服务器甚至云服务器的需要,这些好处进一步的推动了针对边缘 AI/ML 的 CIM 架构的研究,促进了边缘 CIM 系统的设计生产。然而,像基于 ReRAM 的 CIM 架构使用物理计算可能是一把双刃剑。虽然 CIM 系统显示出较高的吞吐量和能效,但它们也引入了额外的安全漏洞。如下图所示,这种基于物理计算的 CIM 架构很容易收到 侧信道攻击(Side-Channel Attack) 。这种攻击依赖于执行期间对物理信号的分析,CIM 架构中的漏电流与数据有更强的关联性,因为计算直接在存储器件中执行,更容易泄露系统隐私。
CIM 系统的安全性和漏洞挑战
针对 AI/ML 加速器可信度(Trustworthiness)的攻击
针对 AI/ML 加速器的可靠性攻击从输入数据就开始了,并通过 系统管道(System Pipeline) 进行传播。这些类型的攻击会影响模型的准确性,并且可以同时应用于推理和训练阶段。对抗性攻击(Adversarial Attacks) 和 毒丸攻击(Poisoning Attacks) 是在推理和训练过程中对 ML 模型最常见的两种攻击类型。
对抗性攻击是 ML 推理过程中一个值得探讨的挑战。这些攻击可以微妙地改变输入数据,比如注入难以察觉的噪声,这些噪声可能会导致系统输出的产生重大变化。这种进攻可以细分为白盒进攻和黑盒进攻,在白盒场景中,攻击者对系统有全面的了解,包括模型架构、参数和硬件映射。黑盒场景中,攻击者只能通过查询 AI/ML 系统并观察输出来生成一个替代模型用于生成对抗性数据。虽然白盒攻击更有效,但是现实场景中一般都是黑盒攻击。新型的存储器件可以通过增加内部的随机性来增强模型对抗攻击的防御性。
在训练阶段,毒丸攻击经常被用来欺骗模型。在这些攻击中,攻击者试图通过注入恶意数据和操作现有的训练数据和标签来降低模型的性能。虽然边缘端 CIM 加速器主要用于推理,但它们也有片上训练的潜力。因此,CIM 加速器的设计者也应该警惕这些威胁。
针对 CIM 系统的隐私(Privacy)攻击
在 AI/ML 应用程序中,隐私问题一般分为两个方面,一个是数据的隐私,一个是模型的隐私。这些数据包括来自边缘端用户的私人输入数据和私人训练集的内容。某些敏感数据,比如患者信息,需要严格的隐私考虑。模型的结构和权重的保密性也非常重要。提取模型信息不仅会损害模型所有者的知识产权,而且会向攻击者打开模型的“黑盒”,提高对抗性攻击的成功率。因此,保护数据的隐私性和模型的隐私性对 AI/ML 系统的安全性和完整性至关重要。
基于新型非易失性存储器的 CIM 加速器有一个问题,AI/ML 模型的权重会被固定在存储阵列当中。攻击者可能利用 CIM Macro 的外围电路或直接探测内存器件来检索这些权重。最直接的想法就是将权重信息加密,然而这是不可行的,因为 CIM 的目标是直接对存储的权重值执行计算。所以 CIM 系统应该通过消除系统总线的数据移动,来消除基于系统总线的探测攻击,并结合限制对固定权重值的访存操作来防御 CIM 系统的隐私攻击。
缓解措施
主要的缓解措施是混淆(Obfuscate)存储阵列的漏电流来保证固定权重的隐私性。我们可以采取具有随机延迟的冗余 PE(Process Engine)或打乱 PE 的执行时间在面对基于时序分析的隐私攻击的时候十分有效果。此外,利用密码学算法对数据通路进行加密,可以防止直接对数字域中的明文进行探测。然而,这些技术需要另外专门设计电路,这需要增加相当大的面积和功耗。
一种解决侧信道攻击的有效方法是在 CIM 架构中同时实现缓解硬件组件,如下图所示。缓解硬件包括两个组件:建模和补偿。建模部分描述了与各种 AI 任务相关的敏感数据的泄露信号,然后利用泄露模型输出驱动补偿分量,用动态调节偏移泄露信号的方式阻止侧信道攻击。这个对策有两个关键原则,首先,这个对策是为了消除泄露信息和敏感数据之间的相关性,这涉及到识别和补偿与信息相关的泄露,使泄露特征难以区分。其次,这个对策致力于最小信息泄露,有效地降低泄露的信噪比。这可以通过应用滤波器或故意向泄露通道中注入噪声来实现。
或者,针对 CIM 系统而定制的对策可以在软件和编译器级别上实现。ML 编译器目的在于通过分析和划分模型结构来生成高效的可执行代码,从而优化硬件平台的性能。具体来说,CIM 系统的编译器的目标是通过将计算图空间映射到 CIM PEs,并通过平衡数据流管道来最大化硬件利用率,具有安全感知的编译器可以通过映射和数据流优化来减轻信息泄露。在映射阶段,编译器可以通过跨 PE 混合权重映射方案用来消除部分映射阵列中的功率签名,或者掩盖数据流中不同层的真实执行时间。除此之外的话,还有通过 PUF 这类物理加密方法来维护 CIM 系统的隐私性的方案。
总体结论
CIM加速器的重要性: CIM加速器在边缘AI/ML应用中具有巨大的潜力,因为它们能够最小化数据移动,从而显著提高系统的延迟和能耗性能。然而,为了实现这些加速器的广泛部署,必须确保它们的安全性和隐私保护。
安全性的必要性: 随着AI/ML算法与底层硬件的共同进化,边缘AI/ML应用的安全性变得至关重要。文章强调了在设计未来CIM加速器时考虑安全性的必要性,以确保边缘系统的可靠性和信任度。
未来研究方向: 文章提出了未来研究的方向,包括进一步探索CIM系统的安全漏洞,开发新的缓解策略,以及利用新兴内存设备的安全特性来增强CIM系统的整体安全性。