12.Paper小结——《BatchCrypt: Efficient Homomorphic Encryption for Cross-SiloFederated Learning》

题目:

        《BatchCrypt: Efficient Homomorphic Encryption for Cross-SiloFederated Learning》

——《用于Cross-Silo联邦学习的高效同态加密》

Chengliang Zhang, Suyi Li, Junzhe Xia, Wei Wang, Feng Yan   , Yang Liu  HKUST, University of Nevada, Reno, WeBank

                        2020 USENIX Annual Technical Conference


本文通过将梯度提前放缩,再进行剪切之后,进行量化后加密,上传到聚合服务器进行聚合(无需解密)。成功降低加密开销密文的总量,以及节约了成本。

展望:

        垂直FL的适用性需要复杂的操作,如乘以密文矩阵[38,61]。对这种计算的批处理超出了批密码目前的能力。我们将把它作为未来的工作。


0.Abstract

        Cross-Silo联邦学习(FL)使组织(例如,财务或医疗)能够通过聚合来自每个客户端的局部梯度更新,而不共享隐私敏感数据来协作训练机器学习模型。为了确保在聚合过程中不显示更新,工业FL框架允许客户端使用加性同态加密(HE)掩码局部梯度更新。然而,这导致了计算和通信的巨大成本。在我们的表征中,HE操作主导了训练时间,同时膨胀了数据传输量两个数量级。在本文中,我们提出了BatchCrypt,一个Cross-SiloFL的系统解决方案,它大大减少了由HE引起的加密和通信开销。我们没有完全精确地加密单个梯度,而是将一批量化的梯度编码成一个长整数,并一次性加密它。为了允许在编码批次的密文上进行梯度聚合,我们开发了新的量化和编码方案以及一种新的梯度剪切技术。我们在FATE上实施BatchCrypt作为一个插件模块,一个工业Cross-SiloFL框架。在地理分布式数据中心对EC2客户端进行的评估表明,BatchCrypt实现了23×-93×训练加速,同时减少了66×-101×的通信开销。由于量化误差而造成的精度损失小于1%。


1.Introduction

        构建高质量的机器学习(ML)模型需要从不同的来源收集大量的训练数据。然而,在许多行业中,数据分散和锁定在多个组织(如银行、医院和机构),由于越来越担心数据隐私和机密性以及违反政府法规,被严格禁止数据共享。跨孤岛联合学习(FL)[27,61]提供了一个吸引人的解决方案来打破组织之间的“数据孤岛”,参与的客户通过将本地梯度更新上传到中心服务器进行聚合来协作学习全局模型,而不共享隐私敏感数据。

        为了确保客户端在聚合过程中没有显示其更新,已经提出了许多方法-[9,37,47,48,52]。

  • 加性同态加密(HE),特别是Paillier加密系统[46],在Cross-Silo场景[37,48,61]中特别有吸引力,因为它提供了强大的隐私保证,而不牺牲学习精度损失为代价。使用HE,梯度聚合可以在密文上执行梯度聚合,而无需事先解密它们。HE已经被许多Cross-Silo的FL应用程序[13,23,37,38,44]所采用,并且可以很容易地插入现有的FL框架,以增强流行的参数服务器体系结构[33]。
    1)在训练开始之前,一个HE密钥对将通过一个安全通道跨所有客户进行同步。
    2)在训练期间,每个客户端使用公钥加密其梯度更新,并将密文上传到中央服务器。服务器聚合来自所有客户端的加密梯度,并将结果发送给每个客户端。
    3)客户端使用私钥解密聚合的渐变,更新其本地模型,然后继续进行下一次迭代。由于客户端只上传加密的更新,因此在数据传输和聚合过程中,服务器或外部方无法学习任何信息。

        虽然HE为Cross-SiloFL提供了强大的隐私保证,但它执行复杂的加密操作(例如,模块化乘法和指数化),这对于计算是极其昂贵的。我们的测试台特性显示,超过80%的训练迭代时间花在了加密/解密上。更糟糕的是,加密产生的密文大大更大,比明文学习增加的数据传输量超过150×。HE在加密和通信方面的重大开销已经成为促进Cross-SiloFL的主要障碍。根据我们在WeBank[57]的联系人,他们的大多数FL应用程序负担使用加密梯度,仅限于隐私要求不那么严格的场景(例如,跨部门或值得信赖的合作伙伴的FL)。

        本文利用一种简单的批处理加密技术,解决了HE产生的加密和通信瓶颈。也就是说,客户端首先将其梯度值量化为低位整数表示。然后,它将一批量化值编码为一个长整数,并一次性加密。与全精度加密单个梯度值相比,批量加密显著降低了加密开销和数据传输量。虽然这一想法在之前的工作[37,48]中已经简要提到了,但这个想法是相当非正式的,没有一个可行的实施。事实上,为了在Cross-Silo的FL中实现批处理加密,必须解决两个关键的技术挑战,据我们所知,这仍然是开放的。

  1. 一个可行的批加密方案应该允许我们直接汇总两个批的密文,当解密时,结果与对两个批执行分级聚合的结果相匹配。我们表明,虽然它可以调整通用的量化方案来满足这种需求,但它有许多局限性,因为它不是为聚合而设计的。相反,我们设计了一个定制的量化方案,将梯度值量化到在对称范围内均匀分布的有符号整数。此外,为了支持简单的加法形式的梯度聚合,并且添加不会导致溢出破坏编码的梯度,我们开发了一种新的批编码方案,该方案采用两个符号位表示量化值的二的互补表示。此外,我们还使用填充和提前缩放,以避免溢出。所有这些技术都允许在编码批的密文上执行梯度聚合,而不首先解密。
  2. 由于梯度值是无界的,它们需要在量化之前被剪切,这关键决定了学习性能[5,41]。然而,在Cross-Silo设置仍不清楚中如何选择剪切的阈值。我们提出了一种有效的分析模型dACIQ,通过扩展ACIQ[5],一种最先进的集中数据的剪切技术,扩展到分散数据的Cross-SiloFL。dACIQ允许我们选择具有最小累积误差的最佳剪切阈值

        我们已经在FATE[18]中实现了我们的解决方案,这是由WeBank[57]发布的一个安全计算框架,以促进组织之间的FL。我们的实现可以很容易地扩展到支持分布式ML的其他优化方案,如本地更新SGD[22,35,56]、模型平均[40]和放松同步[24,34,62],所有这些在应用于Cross-SiloFL时都可以从BatchCrypt中获益。我们评估了9个来自三大洲的5个AWS EC2数据中心。这些客户端协作学习三种不同大小的ML模型:一个使用FMNIST数据集[60]的3层全连接神经网络,AlexNet[32]使用CIFAR10数据集[31]的AlexNet[32],以及一个使用莎士比亚数据集[55]的文本生成LSTM模型[25]。这些客户端协作学习三种不同大小的ML模型:一个使用FMNIST数据集[60]的3层全连接神经网络,AlexNet[32]使用CIFAR10数据集[31]的AlexNet[32],以及一个使用莎士比亚数据集[55]的文本生成LSTM模型[25]。与FATE的库存实现相比,BatchCrypt将三个模型的训练分别加速了23×、71×和93×,其中对于更复杂的模型可以实现更显著的加速。同时,通信开销分别降低了66×、71×和101×。BatchCrypt的显著好处不以模型质量为代价,不到1%的精度损失可以忽略不计。BatchCrypt提供了第一个高效的实现,使HE能够在Cross-SiloFL框架中实现低加密和通信成本。


2. Blackground and Related Work

        在本节中,我们将强调Cross-Silo联盟学习所提出的严格的隐私要求。我们调查了满足这些需求的现有技术。

2.1 Cross-Silo Federated Learning

        根据[27]最近的一项调查,联邦学习(FL)是一种场景,多个客户端在中央服务器的帮助下协作训练机器学习(ML)模型;每个客户端将本地更新传输到服务器进行立即聚合,而其原始数据不会离开本地存储。根据应用场景,联邦学习可以大致分为跨设备FL和Cross-Silo FL。在跨设备设置中,客户端是大量计算能力有限、通信能力不可靠的移动或物联网设备。相比之下,Cross-Silo设置中的客户是少数组织(如金融和医疗),具有可靠的通信和丰富的计算资源。本文主要讨论了Cross-Silo FL。

        与跨设备设置相比,Cross-Silo FL对隐私和学习性能有明显更严格的要求。

  • 首先,最终的经过训练的模型应该只发布给那些参与的组织——任何外部当事方,包括中央服务器,都不能访问经过训练的模型。
  • 其次,强大的隐私保证不应该以学习准确性为代价。
  • 第三,作为一个新兴的范式, Cross-Silo FL正在经历算法和系统方面的快速创新。
    一个理想的隐私解决方案应该对底层系统架构、训练模式(例如,同步和异步)和学习算法施加最小的限制。

2.2 Privacy Solution in Federated Learning

        已经提出了许多策略来保护客户的隐私,以供联邦学习。我们简要地研究了这些解决方案,并评论了它们对Cross-Silo FL的适用性。

  • Secure Multi-Party Computation (MPC) 允许多方与私有数据协作计算一个商定函数,且每一方除了知道自己的输入和输出,其他什么都不知道了(例如,零知识证明)。MPC利用精心设计的计算和同步协议。这类协议有很强的隐私保证,但很难在像Cross-Silo FL[61]这样的地理分布场景中有效地实现。开发人员必须仔细设计ML算法,并在双方之间划分计算,以适应MPC范式,这可能会降低隐私保证,以获得更好的性能[16,42,43]。
  • 差分隐私(DP)是另一种常见的工具,可以与模型平均和SGD相结合,以促进安全的FL[47,52]。它通过注入噪声来确保数据集中每个单独样本的隐私。最近的一项工作提出,在差异隐私之上采用选择性参数更新[52]来在数据隐私和学习准确性之间的权衡。虽然DP可以有效地实现,但它在聚合过程中向中心服务器公开了普通的梯度。后来的研究表明,人们可以很容易地从梯度[48]中恢复信息。虽然这种隐私侵犯和潜在的准确性下降对于跨设备FL的移动用户来说可能是可以容忍的,但它们引起了参与Cross-Silo FL的组织的重大关注。
  • 最近提出了 安全聚合[9],以确保服务器不从任何客户端学习单个更新,而只学习聚合的更新。虽然安全聚合已经成功地部署在跨设备FL中, 但它在Cross-Silo FL中的不足有两个原因。首先, 它允许中央服务器看到聚合的梯度,基于这些梯度,外部实体(例如,运行中心服务器的公共云)可以学习有关训练模型的信息。其次,在每次迭代中, 客户端必须同步密钥和零和掩码,从而施加了对同步训练的强烈要求。
  • 同态加密(HE)允许直接在密文上执行某些计算(例如,添加),而无需先对它们进行解密。[13,37,38,48]最近的许多工作都提倡使用加性HE方案,特别是Paillier[46],作为Cross-silo FL中隐私保证的主要手段:每个客户端将加密的本地更新传输到服务器进行直接聚合;然后,结果被发送回每个客户端进行本地解密。HE满足了Cross-silo FL的三个要求:
    1.它保护训练过的模型不被包括服务器在内的任何外部各方学习。
    2.它不会导致学习精度损失,因为在加密/解密过程中不会向模型更新中添加噪声。
    3.HE直接应用于现有的学习系统,除了加密/解密更新外,不需要任何修改。
    因此,它对同步方案和学习算法没有任何限制。然而, 正如我们将第三章在中展示的,HE给计算和通信带来了巨大的开销。
总结:总之,这些隐私保护技术都有其优缺点。 MPC能够提供强大的隐私保证,但需要专家的努力来重新设计现有的ML算法。 DP可以轻松有效地采用,但其隐私保证较弱,可能导致精度损失。 安全聚合是促进大规模跨设备FL的有效方法,但可能不适用于Cross-Silo FL,因为它将聚合结果暴露给第三方,并产生较高的同步成本。 HE可以很容易地采用,以提供强大的隐私保证,而不修改算法或精度损失。然而,高的计算和通信开销使得目前的生产部署不现实。
2.3 Cross-Silo FL Platform with HE
        

         图1描述了一个典型的Cross-Silo FL系统[27,37,61],其中HE被实现为客户端上的可插拔模块。聚合器是协调客户机并聚合其加密梯度的服务器。请注意,在这项工作中,我们假设聚合器是诚实但令人好奇的,这是现有FL文献[9,38,52]中使用的一个常见的威胁模型。所有各方(客户端和聚合器)之间的通信都由SSL/TLS等加密协议进行保护,因此没有第三方能够学习正在传输的消息。在训练开始之前,聚合器随机选择一个客户端作为领导者,他生成一个HE密钥对,并将其同步到所有其他客户端。领导者还将初始化ML模型,并将模型权重发送给所有其他客户端。在收到HE密钥对和初始权重后,客户就开始进行训练。在一次迭代中,每个客户机计算局部梯度更新(1),使用公钥(2)对它们进行加密,并将结果传输到聚合器。聚合器将等待,直到收到来自所有客户端的更新。然后,它将它们加起来,并将结果发送给所有客户端(3)。然后,客户端解密聚合的梯度(4),并使用它来更新本地模型(5)。

        该体系结构设计遵循了经典的分布式SGD模式。因此,现有的理论和优化,包括灵活的同步[24,34,62]和本地更新SGD[22,35,56]自然应用。此外,模型更新是在客户端使用明文梯度聚合,我们可以采用最先进的自适应优化器如Adam[28]更快的收敛优势比现有的建议[48]直接应用加密的全局模型。


3.Characterizing Performance Bottlenecks

        在本节中,我们将通过一个由深度学习模型驱动的三个真实应用程序来描述Cross-Silo FL的性能。我们表明,加密和通信是两个阻碍的瓶颈,阻碍了在组织之间采用FL。我们调查了文献中可能的解决方案,并讨论了它们的低效率。据我们所知,我们是第一个提出了一个全面的特征的Cross-Silo FL在一个现实的设置。

3.1 Characterization Results

        Cross-silo FL通常在参与组织[27,61]的多个地理分布数据中心中执行。我们的描述是在一个类似的场景中进行的,在5个地理分布式数据中心中的9个EC2客户端协作训练三种不同大小的ML模型,包括FMNIST、CIFAR和LSTM(表3)。除非另有说明,否则我们配置同步训练,在聚合来自所有客户端的(加密)更新之前,没有客户端可以进行下一次迭代。我们将对集群设置和ML模型的详细描述推迟到6.1。

        我们的研究以FATE(联邦人工智能技术促进者)[18]为基础,这是一个由WeBank[57]开发的安全计算框架,用于驱动其与其他行业合作伙伴的FL应用程序。据我们所知,FATE是生产环境中唯一部署的开源cross-silo FL框架。FATE内置支持Pailler加密系统[46](密钥大小默认设置为2048位),这可以说是最受欢迎的加性HE方案[50]。我们的结果也适用于其他部分HE密码系统。

        加密和通信开销:我们通过比较有和没有HE的两个FL场景来开始我们的描述。我们发现,HE的使用导致非常长的训练时间,显著增加数据传输。更具体地说,当HE被启用时,我们分别测量了FMNIST、CIFAR和LSTM的平均训练迭代时间分别为211.9s、2725.7s和8777.7s。与直接传输明文更新相比,迭代时间分别延长了96×、135×和154×。与此同时,当HE(不是)使用时,我们在一次迭代中分别为客户端和聚合器之间的FMNIST、CIFAR和LSTM平均测量了1.1GB(6.98MB)、13.1GB(85.89MB)和44.1GB(275.93MB)数据传输。总之,HE的使用将训练时间和网络占用量增加了两个数量级。对于具有大量权重(如LSTM)的复杂模型,这样的性能开销变得更加重要。

        Deep Dive

        为了了解HE造成的显著开销的来源,我们详细检查了这三个模型的训练过程,其中我们采样一次迭代,并在图2中描述分别在客户端(左)和聚合器侧(右)的不同操作上花费的迭代时间的细分。

         如图所示。在2a方面,在客户方面,HE相关操作在所有三个应用中主导了训练时间。特别是,客户端将大约60%的迭代时间用于梯度加密(黄色),20%用于解密(深紫色),另外20%的时间用于数据传输和空闲,等待梯度聚合返回(由于同步障碍,客户端需要等待所有其他客户端完成向聚合器的更新传输。)(浅紫色)。相比之下,花在计算梯度的实际工作上的时间可以忽略不计(<0.5%)。

        当涉及到聚合器时(图。2b),大多数时间(>70%)被浪费在空闲时间上,等待客户端发送加密的梯度(橙色)。从所有客户端收集梯度(黄色)并将聚合结果发送到各方(深紫色)也需要大量的时间,因为客户端是地理分布的,可能不会同时开始传输(或接收)。梯度聚合的实际计算时间(浅紫色)只占迭代跨度的不到10%。我们的深入分析确定了加密和解密是极长的训练时间的两个主要来源。

Why is HE So Expensive? 此外,在Paillier[46]等加密系统中,加密和解密都涉及多个模块化乘法和指数操作,具有大指数和模量(通常超过512位)[50],这使得它们的计算成本非常昂贵。 加密还会产生更大的密文,这反过来会给数据传输带来巨大的通信开销。另外,在像Paillie这样的他的方案中, 无论明文大小如何,密码文占用的比特数与密钥大小大致相同。截至2019年,佩利尔的最小安全密钥大小为2048[6],而梯度通常是32位浮点。这已经意味着加密后64×大小膨胀。
        我们进一步对不同密钥大小的计算开销和膨胀的密文进行了基准测试。我们使用 python-paillier[15]来加密和解密900k 32位浮点。表1报告了一个c5.4xlarge实例上的结果。
随着密钥大小的增加(安全性更高),计算开销和密文的大小都呈线性增长。由于Paillier只能加密整数,浮点值必须事先进行缩放,而它们的指数信息将进一步促进数据膨胀。

        Summary:由HE造成的高昂的计算和通信开销,如果没有得到妥善的处理,将导致两个严重的经济后果:

  • 鉴于HE操作的主导地位,使用高端硬件设备(如gpu和tpu)加速模型计算不再相关——这是对客户数据中心大量基础设施投资的巨大浪费。
  • 跨越地理分布式数据中心的压倒性网络流量导致了飞涨的互联网数据费用,使得cross-silo FL在经济上无法可行。

3.2 Potential Solutions and Their Ineffificiency

        Hardware-Accelerated HE :可以使用软件或硬件解决方案加速其过程。然而,包括Paillier在内的典型HE密码系统的交错独立操作有限,因此单一HE操作的潜在加速速度相当有限。事实上,据报道,一个专门的FPGA只能3×加速Paillier加密。此外,简单地加速加密本身并不能帮助降低通信开销

        Reducing Communication Overhead:由于加速他本身并没有清除在FL采用HE的障碍,如果我们首先减少要加密的数据量呢?由于数据膨胀主要是由于明文和密文长度不匹配造成的,一个直观的想法是尽可能多的梯度组合在一起形成一个长的明文,这样加密操作的数量将大大减少。然而,挑战仍然是如何在不修改ML算法或损害学习精度的情况下,进行批处理后保持HE的加性特性的

(相关工作:)

        虽然之前的一些工作已经探索了将多个值连接在一起以减少HE开销的想法,但它们并没有为cross-silo FL提供批处理加密的可行实现。

  • [48]中,FL做出了一个错误的假设,即量化是无损的,并在其模拟中使用了自适应优化器Adam,尽管它的设计不支持这一点。由于只有简单的SGD可用,[48]需要繁琐的学习速率调度调优,以实现高级优化器[59]的类似结果。
  • 在[37]中给出的朴素批处理不能正确地实现,因为没有保留同态可加性。事实上,这些工作都没有系统地研究过批处理的影响。
  • Gazelle [26]和SEAL[51]采用SIMD(单指令多数据)技术来加快HE的速度。然而,这种方法仅适用于基于格的HE方案[11],并受到其独特性质的限制。例如,它对基于格的HE方案产生了巨大的计算复杂度,以支持更多层次的乘法[26]。

此外,这些工作只会加速整数加密操作。如何在cross-silo FL环境下保持训练精度仍然是一个有待解决的问题。


4 BatchCrypt
        在本节中,我们将描述我们对梯度批处理的解决方案。我们从技术挑战开始。我们首先证明了梯度量化需要来实现批处理。然后我们解释了通用量化方案缺乏支持通用ML算法的灵活性和效率,这需要适当设计的编码和批处理方案;为了防止模型质量下降,还需要一种有效的剪切方法。我们将我们的解决方案命名为BatchCrypt一种共同设计量化、批量编码和分析量化建模的方法,以提高计算速度和通信效率,同时保持cross-silo FL的模型质量。

 4.1 Why is HE Batching for FL a Problem?

        从表面上看,实现梯度批处理似乎很简单。事实上,批处理已被用于加快在Paillier-安全的数据库[19]中对整数的查询。然而,该技术仅适用于非负整数[19]。为了支持浮动数,这些值必须被重新排序,并按其指数[19]进行分组这些约束是保持HE对批密码文的可加性的关键——也就是说,两个批密码文的和,一旦解密,应该与两组中元素级添加明文值的结果相匹配。Gazelle和SEAL[26,51]采用SIMD技术来满足这一要求,但该方法仅限于基于格的密码系统。我们希望为所有的加性同态密码系统提出一种通用的批处理方法。

Why Quantization is Needed?
        梯度是有符号的浮动值,必须按它们对应的模型权值排序,因此我们不能简单地用指数重新排列它们。唯一实际的方法是使用批中的梯度的整数来表示,这需要量化
Existing Quantization Schemes
        ML算法具有更新噪声的弹性,并能够以有限精度[10]的梯度收敛。
图3a说明了如何在HE批处理中使用通用的梯度量化方案。由于密文和明文之间没有逐位映射,因此不允许在密文中进行排列——只有批整数之间的逐位加法可用。假设[−1,1]中的一个梯度g被量化为一个8位无符号整数。g的量化值为 ,其中max=1和min=−1。假设对n个量化的梯度进行了求和。用qn表示结果,被去量化为

 参照图3a,客户端的梯度(蓝色的浮动数)首先被量化,然后批连接成一个大整数。为了聚合两个客户端的梯度,我们简单地将两个批整数相加,将添加的梯度定位在与两个批相同的位位置(红色的8位整数),并对它们进行去量化以获得聚合的结果。

        这种通用的量化方案虽然易于实现,但不能很好地支持聚合,并且在应用于批处理梯度聚合时有许多局限性:

  1. 它是限制性的。为了去量化结果,它必须知道聚合了多少个值。这给灵活的同步带来了额外的障碍,因为更新的数量在不断变化,有时甚至不可用。
  2. 它在聚合中很容易溢出。当值被量化为正整数时,随着和的变大,聚合它们必然会迅速溢出。为了防止溢出,批密文必须在添加几次后解密,并在之前的工作中再次加密。
  3. 它不能区分正溢出和负溢出。一旦发生溢出,计算就必须重新启动。如果我们能够区分它们,就可以使用一个饱和值,而不是丢弃结果。
4.2 HE Batching for Gradients
        由于不满意通用的量化技术,我们渴望设计一个适合梯度聚合的批处理解决方案。我们的方案应该具有以下理想的特性
(1)它保留了HE的可加性;
(2)它对溢出更有弹性,可以区分正溢出和负溢出;
(3)它通常适用于现有的ML算法和优化技术;
(4)它足够灵活,可以在不需要额外信息的情况下直接去量化值,比如聚合值的数量。
Gradient Quantization:现有的工作使用梯度压缩技术来减少分布式训练[1,29,36,58]中的网络流量。这些量化方法主要用于压缩传输[58]的值或加速只需要乘法[5]的推理。然而,它们并不是为梯度聚合而设计的,我们也不能有效地对压缩的梯度执行计算,这使得它们不足以用于FL。我们仔细研究了设计目标的约束,并总结了量化要求如下:
  • 有符号整数:梯度应量化为有符号整数。通过这种方式,正值和负值可以在梯度聚合中相互抵消,这比将梯度量化为无符号整数更不容易溢出。
  • 对称范围:要使符号相反的值相互抵消,量化范围必须是对称的违反此要求可能会导致不正确的聚合结果。例如,如果我们将[−1,1]映射到[−128,127],那么−1+1在量化后将成为−128+127=−1。
  • 均匀量化:文献表明,非均匀量化方案具有非均匀分布[1,7],该方案具有更好的压缩率。然而,我们无法利用该属性,因为需要增加超过量化的值。
BatchCrypt
        我们现在提出了一种满足上述所有要求的有效的量化方案。假设我们将[−α,α]中的一个梯度量化为一个r位整数。我们将整个范围映射到[−α,0]和[0,α]分别映射到[−(2^r−1)、0],[0,2^r−1],而不是全部映射在一起。请注意,在我们的设计中,值0最终包含两个代码。先前的工作表明,16位量化(r=16)足以实现接近无损的梯度量化[21]。我们将在第6章中表明,这样一个中等的量化宽度足以在FL设置中实现有效的批处理。
        随着量化的发现, 挑战仍然是如何对量化后的值进行编码,以便正确启用符号加性算法——一旦批处理的长整数被加密,我们就无法在聚合过程中将符号位与值位区分开来。受现代cpu处理有符号整数计算的启发,我们在编码中使用了 二的补体表示。通过这样做,符号位可以像值位一样参与附加功能。我们进一步使用这两个符号位来区分正溢出和负溢出。
---------------------------------------------------------------------------------------------------------------------------------
计算机中负数用补码形式存储。
原码转换为补码的规则:符号位不变,数值位按位取反,末位再加1
---------------------------------------------------------------------------------------------------------------------------------
        我们在图中说明了BatchCrypt 的一个例子。图3b.通过添加 两个批控长整数,BatchCrypt分别得到了−1+(−126)和+1+(−7)的正确聚合结果。
        BatchCrypt通过 共同设计量化和编码来实现我们的需求:除了批处理本身之外,不需要额外的信息来去量化聚合的结果;正负值能够相互抵消;可以识别出溢出的迹象。与[26,51]中的批处理方法相比,BatchCrypt 的批处理方案一般适用于所有加法HE加密系统和全HE加密系统的加法操作。
4.3  dACIQ: Analytical Clipping for FL
        我们之前的讨论假设了梯度在一个有界的范围内(4.2章节)。然而, 在实践中,梯度可能是无界的,需要在量化之前进行裁剪。此外,来自不同层的梯度具有不同的分布[58]。因此,我们需要单独量化层的[1,58]。此外,先前的研究表明,来自同一层的梯度具有接近高斯[2,7,53]的铃形分布。 这种特性可以用于有效的梯度压缩[1,58]。最后,在量化[21,36,58]过程中,梯度需要随机的四舍五入,因为与从圆到最近的信息相比,它随机地保留了不断减少的信息。
        层量化和随机四舍五入可以很容易地应用,但仍不清楚如何找到最佳的剪切阈值。如图4所示, 剪切是指饱和超过阈值α的输出梯度的过程。如果α设置得太大,则量化分辨率将变得太低。另一方面,如果α太小,就必须丢弃来自输出梯度的大部分范围信息。
        一般来说,有两种方法来设置裁剪阈值, 基于分析的方法分析建模
  • 基于分析的剪切选择一个样本数据集来获得一个样本梯度分布。然后用KL发散度[41]和收敛率[58]等指标来评估阈值。然而,这种方法在FL是不切实际的,原因有三:
    1)在FL中找到一个有代表性的数据集可能很困难,因为客户通常有non-i.i.d.数据,再加上它打破了数据库。
    2)随着训练的进行,[14],梯度范围逐渐变窄,因此需要不断校准剪辑,这引起了严重的开销问题。
    3)分析结果是特定于训练模型和数据集的。一旦模型或数据集发生变化,就需要新的配置分析。
  • 对于实用性和成本的考虑,而BatchCrypt 则采用了分析建模。

     如图4所示,累积的噪声来自两个来源。量化噪声是指在剪切范围(浅蓝色区域)内通过舍入引起的误差,而剪切噪声是指在剪切阈值以外的饱和范围(灰色区域)。为了模拟来自量化和剪切的累积噪声,最先进的剪切技术ACIQ[5]假设它们遵循高斯分布。然而,ACIQ不能直接应用于BatchCrypt,原因有二:

  • 它采用了一般的非对称量化,这在BatchCrypt中不是这样的;
  • 在FL中,在明文的一个地方不能用梯度来进行分布拟合。

        我们通过将ACIQ剪切扩展到分布式FL设置来解决这些问题,我们称之为dACIQ。特别地,我们采用具有r位量化宽度的随机舍入。假设梯度遵循高斯分布X∼N(0,σ^2)。设q_i是第i个量化水平。我们计算BatchCrypt中的累积误差如下:

其中第一项和第二项为剪切噪声,第三项是舍入噪声。只要我们知道σ,我们就可以从方程 (1)中得到最优阈值α。为了空间的利益,我们省略了详细的推导。

Gaussian Fitting:

         现在我们有了公式(1),我们仍然需要弄清楚如何在FL设置中拟合梯度到高斯分布。传统上,为了拟合高斯参数µ和σ,可以使用最大似然估计和贝叶斯推理。它们需要包括观察集的大小、它的和以及它的平方和等信息。由于一个ML模型可能有多达数百万个参数,计算这些组件以及通过互联网传输它们是昂贵得令人望而却步。因此,dACIQ采用了[4]中提出的一种简单而有效的高斯拟合方法。该方法只需要观测集的大小及其最大值和最小值,以及最小的计算和通信开销。我们后来证明,在6章中,这种轻量级拟合并不影响模型的精度。

Advance Scaling:
        在FL有多个客户,防止溢出的发生是至关重要的。由于剪切,梯度范围在加密之前是预先确定的。设 m 是客户的数量。如果m是可用的,我们可以通过将量化范围设置为裁剪范围的m倍来使用提前缩放,这样来自所有客户端的梯度之和就不会溢出。
4.4 BatchCrypt: Putting It All Together
        综上所述,我们总结了算法1中的 BatchCrypt的工作流程。
        
  •  初始化:聚合器随机选择一个客户机作为领导者。领导客户机生成HE密钥对 并初始化模型权重。然后,将密钥对和模型权重与其他客户端工作者同步
  • 训练:初始化后,领导者和其他工人之间没有区别。客户端计算梯度,并将每层的梯度范围和大小发送到聚合器。聚合器首先估计高斯参数,然后计算如4.3中所述的层剪切阈值。然后,客户端通过根据客户端数量缩放的范围来量化梯度,并使用BatchCrypt对量化的值进行加密。请注意,利用客户端数量的提前缩放是为了完全避免溢出。然而,即使没有这些信息,算法1仍然是可行的,因为BatchCrypt支持溢出检测。加密的梯度将在聚合器上收集,并在返回到客户端之前进行相加。

5 Implementation
我们的实现遵循算法1中描述的范例,因为大部分工作都是在客户端完成的。图5提供了客户端架构的概述。

         BatchCrypt 由dACIQ、定量器、两个互补编解码器和批处理管理器组成。

  • dACIQ:负责高斯拟合和剪切阈值的计算。
  • 量化器:获取阈值并将其缩放,以将裁剪后的值量化为有符号的整数。以及执行去量化。
  • 二的互补编解码器:在量化值的真形式和具有两个符号位的补码形式之间进行转换。考虑到大量的数据来编码,我们采用Numba来实现更快的机器代码和大量的并行性。
  • 批处理管理器:负责两人的批处理和解批处理梯度,它在批处理之前记住数据的原始形状,并在解批处理期间恢复数据。批处理管理器利用joblib通过多处理来利用计算资源。

Conclusion

        在本文中,我们系统地研究了利用HE来实现安全的cross-silo FL。我们已经证明,与HE相关的操作对计算和通信造成了严重的瓶颈。为了解决这个问题,我们提出了BatchCrypt,这种系统解决方案可以明智地量化梯度,将其中一批编码为长整数,并执行分批加密,以显著降低加密开销密文的总量。我们已经在FATE中实现了BatchCrypt,并通过跨地理分布式数据中心的流行的机器学习模型评估了其性能。与库存FATE相比,BatchCrypt加速训练收敛高达81×,总流量减少101×,在云环境中部署时可节省高达99%的成本

展望:

        垂直FL的适用性需要复杂的操作,如乘以密文矩阵[38,61]。对这种计算的批处理超出了批密码目前的能力。我们将把它作为未来的工作。

  • 9
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Homomorphic Encryption-based PIR(Private Information Retrieval)算法是一种保护隐私的数据检索算法。它通过将数据分散储存在多个不同的数据库中,使得单个数据库无法得到完整的数据,进而保证数据的安全性和隐私性。 以下是一个使用Python实现Homomorphic Encryption-based PIR算法的示例代码: ```python import random from phe import paillier # 初始化密钥 public_key, private_key = paillier.generate_paillier_keypair() # 定义数据集 data_set = [random.randint(0, 100) for _ in range(10)] # 对数据集进行加密 encrypted_data_set = [public_key.encrypt(x) for x in data_set] # 随机选择一个数据项进行查询 index = random.randint(0, len(encrypted_data_set) - 1) # 生成查询向量 query_vector = [public_key.encrypt(0) for _ in range(len(encrypted_data_set))] query_vector[index] = public_key.encrypt(1) # 对查询向量进行加密 encrypted_query_vector = [private_key.raw_encrypt(x) for x in query_vector] # 对加密后的查询向量和数据集进行点乘操作 result = sum([encrypted_data_set[i] * encrypted_query_vector[i] for i in range(len(encrypted_data_set))]) # 解密查询结果 decrypted_result = private_key.decrypt(result) print("查询结果:", decrypted_result) ``` 在这个示例中,我们使用了Python的PHE库来实现Paillier公钥加密算法,并且使用随机生成的数据集进行演示。我们首先生成Paillier加密算法的公钥和私钥,然后对数据集中每个数据项进行加密。接着,我们随机选择一个数据项进行查询,并生成一个查询向量进行加密。最后,我们对加密后的查询向量和数据集进行点乘操作,得到查询结果,并使用Paillier私钥进行解密,得到最终的查询结果。 需要注意的是,这个示例只是一个简单的演示,实际应用中需要根据具体的需求进行适当的修改和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值