【STIP】安全Transformer推理协议

news2025/6/1 4:21:20
Secure Transformer Inference Protocol

论文地址:https://arxiv.org/abs/2312.00025 

摘要

模型参数和用户数据的安全性对于基于 Transformer 的服务(例如 ChatGPT)至关重要。虽然最近在安全两方协议方面取得的进步成功地解决了服务 Transformer 模型时的安全问题,但由于涉及高昂的加密开销,采用它们实际上是不可行的。从我们开发两个基于 Transformer 的实际服务的实践经验中汲取见解,我们确定了两方假设中固有的效率瓶颈。为了克服这一限制,我们提出了一种新的三方威胁模型。在这个框架内,我们设计了一个基于半对称排列的保护方案,并提出了 STIP,这是第一个没有任何推理精度损失的安全 Transformer 推理协议。在实际系统中对代表性 Transformer 模型的实验表明,STIP 具有实用的安全性,并且在效率上比最先进的安全两方协议高出数百万倍。

1、介绍

基于 Transformer 推理的服务是最前沿的人工智能应用。 云计算能力,如自动扩展 [45],能够满足服务Transformer模型的需求,尤其是那些拥有数十亿参数的大型模型。因此,像OpenAI这样的主要组织为其基于Transformer的服务选择全云部署 [5]。然而,在隐私敏感领域,发送原始数据到云端是不可行的,正如三星禁止使用ChatGPT之后发生敏感代码泄露 [21] 所说明的那样。

模型分割不够安全。 模型分割推理[30, 50, 58] 策略性地在设备和云端之间分配神经网络层。设备将中间激活发送到云端以继续推理。模型分割推理避免了原始数据的传输,同时保持了效率[38, 39]。然而,随着研究揭示了从中间激活中反向工程敏感信息的可能性[2, 37],担忧也随之而来。

安全的两方协议会产生高昂的开销。 最近的研究通过同态加密(HE)和安全两方计算(2PC)[11, 24, 26]来探索安全Transformer推理。然而,这些协议会产生很高的计算和设备-云通信开销,尤其是在非线性复杂层(如LayerNorm和ReLU)的情况下。例如,CipherGPT使用GPT2模型生成一个token需要25分钟的处理时间和90 GB的流量[26]。

第一原理思维:三方威胁模型。 为了克服效率障碍,我们使用第一原理重新思考基本的双方假设:模型所有者和数据所有者。从管理两个基于Transformer的实际服务(1)中获得洞察,一个一致的经验出现了:模型开发者模型服务器。对于这两种服务,我们通过微调[27]开源参数[33, 51]和收集的数据开发了Transformer模型。我们拥有足够的计算能力来进行离线模型开发,但没有能力为数十万用户提供大规模、长期的服务。因此,作为模型开发者,我们依赖第三方云平台来提供我们的模型。根据我们的实际开发经验,我们提出了一种新的三方威胁模型。在这个模型中,我们将模型所有者分解为两个实体:模型开发者和模型服务器。由于开发的模型是专有的,模型开发者必须保护必须保护他们的模型参数针对来自模型服务器的潜在攻击 [60],因此我们假设它们没有串通。

STIP洞察和设计。基于我们提出的第三方威胁模型,我们开发了 STIP,即安全Transformer推理协议,并获得两个重要的见解。

首先,我们采用高效的特征空间置换来实现安全和等效的Transformer推理。由于推理是在不受信任的服务器、模型参数和设备数据必须在上传到云之前进行转换。基于特征空间中进行高效置换,我们设计了针对 Transformer 层的数据和参数转换方法。我们证明了使用我们提出的转换进行计算在数学上是等价的,从而确保了没有精度损失。

其次,我们在模型开发者和数据所有者之间设计了一种半对称的保护方案。这一见解源于神经网络的序列结构。我们揭示了模型开发者只需要与数据所有者共享第一层和最后一层的相同置换,而可以独占地保留中间层转换的信息。类似的半对称保护方案已经在各个领域得到应用,例如图像加密 [16] 和在线购物 [20]。我们基于距离相关 [49] 展示了 STIP 的隐私保护能力,并证明了其抵抗暴力攻击和已知明文攻击的能力。

贡献。我们总结了这项工作的三个关键贡献:

  • 我们确定了双边设置中固有的效率瓶颈以及其与实际应用的错位。 我们提出了一个新的三方威胁模型,将模型所有者分解为两个不同的实体:模型开发者和模型服务器。

  • 我们提出了 STIP,这是第一个用于三方 Transformer 推理的安全协议,具有隐私泄露的理论界限和精度无损的保证

  • 我们实现了 STIP,并在真实系统上对各种 Transformer 模型进行了评估,这些模型的参数数量高达 700 亿。 实验结果展示了 STIP 的效率,与不受保护的完整云端推理相当,并比最先进的安全双边协议 [11, 24, 26] 快数百万倍。

这项工作不会引发任何伦理问题。

(1)请参阅第2.3节以详细了解这两项服务。

2、背景

本节首先介绍了设备-云端协作(§ 2.1)以及使用双边设置进行安全 Transformer 推理的先前努力(§ 2.2)。基于管理现实世界基于 Transformer 的服务的经验,我们提出了三方威胁模型(§ 2.3),并阐述我们的安全协议的范畴、设计目标和独特性(§ 2.4)。

2.1、设备-云端协作

基于 Transformer 的推理服务已成为最引人注目的 AI 应用之一,例如 ChatGPT 创下了用户增长最快的记录 [44]。

全云推理:高效但不安全。为 Transformer 模型(尤其是拥有数十亿参数的大型模型)提供服务,与云计算能力(如自动扩展 [45])相契合。已经发布了几个用于 Transformer 推理的云原生框架,例如 NVIDIA NeMo [31] 和 Microsoft DeepSpeed [4]。因此,包括 OpenAI 在内的许多组织都选择全云部署其基于 Transformer 的服务 [5]。然而,将原始数据发送到云在各个隐私敏感领域是不可行的,例如,三星在发生敏感代码泄露后,官方禁止员工使用 ChatGPT [21]。

全设备推理:安全但不可扩展。为了解决数据隐私问题,另一个选择是将 Transformer 模型完全部署在设备上。通过模型压缩技术(如权重量化 [14]),拥有数十亿参数的 Transformer 模型可以在设备上运行推理 [10]。然而,全设备部署的可扩展性有限。首先,FLOPs(浮点运算)和内存占用随着参数数量的增加而线性增长,而设备计算资源的增长速度远低于 Transformer 模型爆炸式增长的大小 [19, 62]。其次,模型压缩不可避免地会带来精度损失 [56],但在竞争激烈的大型 Transformer 市场中,即使微小的 QoS 下降也可能导致产品落后于竞争对手 [28]。

设备-云端协作:两全其美。由于云和设备都无法独立地令人满意地为 Transformer 模型提供服务,设备-云端协作自然成为最近研究工作的重点 [30, 50, 58]。通过在设备与云之间合理分配推理工作负载,协作推理避免了传输原始数据,同时保持了效率 [38, 39]。

2.2、安全的两方推理

不传输原始数据只是安全性的底线。对深度神经网络攻击的研究表明,中间激活(例如文本嵌入 [37])可以被逆向工程以揭露原始数据中的敏感信息 [2]。迫切需要更严格的安全措施。

同态加密 (HE) 和两方计算 (2PC) 用于 Transformer 推理。同态加密 (HE) 是一种加密技术,允许在不解密的情况下对加密数据进行计算,而多方计算 (MPC) 允许多个方在不泄露其输入的情况下共同计算一个函数。在模型推理的背景下,通常考虑两方计算 (2PC),这是 MPC 的一个特例,其中模型所有者(云服务器)和数据处理者(设备)分别代表两方。最近的研究表明,可以使用 HE 和 2PC 的组合来为 Transformer 推理提供服务 [11, 24, 26]。然而,这些协议在处理非线性复杂层(如 LayerNorm 和 ReLU)时会带来巨大的计算开销。此外,设备-云通信也伴随着高昂的成本,例如,CipherGPT 使用 GPT2 模型生成单个标记需要超过 25 分钟 [26]。

2.3、与现实应用场景对齐:三方威胁模型

两方设置(其中一方代表设备,另一方代表云)的简单性无缝地契合了 HE 和 2PC 理论。然而,效率挑战也源于 HE 和 MPC 理论固有的计算复杂性 [40],这促使我们思考一个问题:两方设置是否真正符合现实应用场景的需求?

令人惊讶但幸运的是,答案是否定的。这个结论来自于我们管理两个现实应用场景的 Transformer 服务的经验。

服务1:校园安全聊天机器人。在 ANONYMOUS 大学,我们托管了一个基于大型语言模型的校园安全聊天机器人。我们的聊天机器人使用监控视频分析数据库作为信息来源。用户(包括学生和校园安全人员)可以向聊天机器人提出诸如“在某个时间段内是否发生了异常行为?”等问题,并获得自然语言的回答。

服务2:汽车驾驶舱助手。在 ANONYMOUS 汽车公司,我们部署了一个多模态 Transformer 模型来增强汽车座舱智能助手的功能。多模态 Transformer 以驾驶舱视频帧作为输入,并生成自然语言的场景描述。场景描述可以帮助车载助手变得更用户友好,例如根据面部表情推荐音乐。

共同的经验:模型开发人员不是模型服务器。对于这两项服务,我们通过使用收集到的数据微调 [27] 开源参数 [18, 51] 来开发 Transformer 模型。我们校园实验室和公司的计算能力可以负担得起离线模型开发,但不能支持大规模长期服务。校园聊天机器人大约有几百个用户,而车载助手需要为数十万用户提供服务。作为模型开发人员,我们需要求助于第三方云计算平台来为我们的 Transformer 模型提供服务。事实上,这种经验不仅仅是我们,其他模型开发公司(如 OpenAI)也是如此。OpenAI 使用 Microsoft Azure 云平台为其 ChatGPT 服务提供数十亿用户服务 [1, 5]。

三方威胁模型。为了与现实应用场景的开发经验对齐,我们引入了三方威胁模型,如图 1 所示。与经典的两方设置不同,我们将模型所有者分解为两个不同的实体:模型开发人员和模型服务器。鉴于开发模型是专有的,模型开发人员必须保护其模型参数免受模型服务器的攻击 [60]。我们假设模型开发人员不会与云平台串通。这些实体之间的任何合作都会导致回归到经典的两方设置。这种对模型所有者角色的分解不仅增强了实用性,也放宽了对手假设。这种调整对于克服两方协议固有的计算难度至关重要。

值得注意的是,我们的三方设置也有局限性。例如,它并不完全适合那些也可以开发自己模型的云提供商,例如 Google Gemini [13]。关于更多信息,请参阅第 8 节。

2.4、设计空间

范围。这项工作专注于在三方设置中实现高效且安全的 Transformer 模型推理,即端到端的前向传递。Transformer 推理结果可以作为各种下游应用的基础,例如可以自动调用外部 API 的 AI 代理 [46]。下游应用中潜在的安全风险和效率问题不在本工作的范围内。

设计目标。我们的协议有四个主要设计目标:

(1) 数据和参数安全。首要目标是确保设备上数据和模型参数的安全。

(2) 无精度损失。协议需要进行无精度损失的推理,这意味着 Transformer 模型中的任何计算都不应该有近似。

(3) 支持生产环境。至关重要的是,协议要支持生产环境中使用的推理框架,并包含效率优化技术,例如 kv-cache [4, 31]。

(4) 对 Transformer 变体的灵活扩展。鉴于 Transformer 模型及其各种新兴变体 [6, 29, 33, 43, 51] 的不断发展,协议必须具备灵活扩展以适应 Transformer 变体的能力。这确保了长期可用性,而无需逐个案例进行适配。

表 1:展示了 STIP 和现有 Transformer 推理方法在我们四个设计目标上的比较。

3、挑战

在设计既高效又安全的 STIP 时,我们遇到了两个非同寻常的挑战。

3.1、令人望而却步的加密开销

数据和参数的转换是保护的关键。现有的结合 HE 和 2PC 技术实现安全的协议带来了巨大的计算和通信开销。如图 2 所示,CipherGPT [26] 使用 1230 万个参数的 GPT2 [43] 执行一次前向传递需要超过 25 分钟和 90 GB 的流量。

Transformer 模型的成功依赖于其自注意力模块和前馈模块中全局矩阵乘法的利用,使其与递归架构 [47] 相比具有高度可并行性。Transformer 架构的归纳偏差不仅在实现层面高效,而且还具有一些特性,例如隐藏单元的置换对称性 [3] 和标记级别的置换不变性 [32]。鉴于随机置换在解决隐私和安全问题中的普遍应用,包括安全通信 [7]、属性推理 [22]、机器学习 [25, 34, 63] 等,我们提出了第一个见解:

见解1:高效的特征空间置换,实现安全且等效的 Transformer 推理

由于推理是在不可信的服务器上执行的,因此来自模型开发人员的参数和设备上的数据必须在上传到云之前进行转换。我们设计了一种专门针对 Transformer 层的数据和参数转换方法,该方法基于特征空间中的随机置换。这种转换可以通过 𝑂 (𝑑) 复杂度的内存指针移动高效地实现,其中 𝑑 是特征维度。如图 2 所示,我们的协议 STIP 比 CipherGPT 高效数个数量级,并且延迟接近全云部署。我们证明了使用我们提出的转换进行的计算在数学上是等效的,从而确保没有精度损失(第 5.1 节)。

3.2、攻击面漏洞

虽然基于随机置换的方案既高效又无精度损失,但赋予它们强大的安全性带来了非同寻常的挑战。直接采用序列级置换方案 [32] 会导致 𝑛! 种可能的置换,当输入标记数 𝑛 较小时,它不足以保护数据免受暴力破解攻击 (BFA)。选择在特征空间中进行置换可以增强保护,但使用单个置换矩阵 𝜋 仍然容易受到已知明文攻击 (KPA)。原因是,一旦云获得设备上数据和转换后数据的一对已知明文,它就可以轻松恢复置换矩阵,随后逆转换所有参数并暴露敏感信息。表 2 总结了数据和参数的可能置换数量以及对 BFA 和 KPA 攻击的抵抗力。

表 2:不同基于置换方案的比较,包括可能的置换数量和对攻击的抵抗力。

见解2:模型开发者和数据所有者之间的半对称置换矩阵集。

这个见解源于神经网络的顺序结构。数据所有者只需要与模型开发人员共享第一层和最后一层的相同置换。中间层转换信息可以由模型开发人员独占保留。因此,我们提出了一种特征空间置换方案,利用一组矩阵\pi_1,...,\pi_{3L},其中 𝐿 代表层数。类似这种半对称保护方案已经在图像加密 [16] 和在线购物 [20] 等领域进行了探索。我们基于距离相关性 [49] 分析了我们提出的方案的隐私保护能力,并证明了它对 BFA 和 KPA 的抵抗力(第 5.3 节)。

4、定义

在考虑到这些见解的基础上,为了正式呈现数学上等效的转换并分析理论安全性,本节定义了 Transformer 推理(第 4.1 节)和三方威胁模型(第 4.2 节)。

4.1、Transformer 推理

我们使用原始的 Transformer 架构 [52] 来介绍推理工作流程,不失一般性,先进的 Transformer 变体(GPT[42]、LLaMA [51]、ViT [17] 和 Mixtral [29])将在第 6 节中讨论。

设备-云模型拆分在 Transformer 模型中,嵌入操作是将离散输入(如单词或图像)映射到连续向量的初始步骤 [52]。为了使我们的协议与原始数据模态解耦,我们将设备-云协作推理的起点设置为嵌入而不是输入。默认情况下,只有嵌入操作在设备上执行,而昂贵的 Transformer 层和分类器部署在云上,如图 3 所示。

Transformer 层前向传递。如图 3 所示,云上的 Transformer 模型由 𝐿 个连续的 Transformer 层和一个分类器组成。设 F_\theta表示具有可训练参数 \theta 的 Transformer 模型。我们将\{ f_i:R^{n\times d} x \mapsto R^{n\times d} | i\in \left [ L \right ] \} 定义为 Transformer 层,将 {f_c:R^{n\times d} x \mapsto R^{n\times s}}定义为分类器,其中 𝑛 是序列长度(例如,标记的数量),𝑑 是模型特征维度,𝑠 是输出维度(例如,词汇量)。我们使用 x_iy_i来表示第 𝑖 个 Transformer 层的输入和输出,所有这些中间激活共享相同的形状R^{n \times d}。Transformer 层的前向传递,即 𝑓(𝑥) = 𝑦,计算如下(2)

Self-attention sub-block:

Feedforward sub-block:

其中,𝑘 和 𝑚 是取决于模型架构超参数的常数,𝑀 表示掩码矩阵。SoftMax、LayerNorm 和 ReLU 是常用的神经网络函数,它们的定义在本工作中不是必要的。在 𝐿 层 Transformer 之后,分类器的计算如下:

(2)为了简化表达式,我们使用 xW 而不是实际应用中使用的xW^T

使用掩码。掩码矩阵是一个下三角矩阵,其中主对角线以上的元素被设置为负无穷大,而主对角线及其下方的元素被设置为 0。在原始的 Transformer 工作 [52] 中,提出了两种类型的 Transformer 层,编码器和解码器。掩码仅应用于解码器中的自注意力子模块,以防止当前位置之后的任何位置被关注。这确保了在输出序列中生成每个标记时,模型只关注序列中它前面的标记。掩码操作并非微不足道,因为它导致使用序列级置换构建等效计算变得不可行(第 5.1 节)。

4.2、三方设置和威胁模型

在为 Transformer 模型提供服务时,我们考虑了三方:

模型开发者 (P1):负责训练并拥有私有 Transformer 模型参数的实体,例如 OpenAI 开发的 GPT4。

模型服务器 (P2):拥有计算硬件的实体,例如 Azure 云平台上的高端 GPU。

数据所有者 (P3):拥有私有输入和推理输出的实体,例如 ChatGPT 用户的文本提示和响应。

推理协议应确保:

P1 和 P2 都不知道 P3 的输入 x_1 和推理输出 𝑜。

P1 的模型参数 𝜃 对 P2 和 P3 都隐藏。参数 𝜃 包括注意力权重 (𝑊𝑞,𝑊𝑘,𝑊𝑣,𝑊𝑜)、前馈权重 (𝑊1,𝑊2)、LayerNorm 权重 (𝛾, 𝛽) 和分类器权重 (𝑊𝑐)。

在 Transformer 推理的背景下,P3 的输入可以是文本提示 [51]、图像 [18] 或多种模态的组合 [33],而推理输出通常是最后一个分类头的概率向量 [62]。

我们采用了广泛使用的半诚实设置 [11, 24, 26, 63],其中每个参与方都会遵循协议规范,但会尝试从观察到的协议消息中推断出额外的敏感信息。这意味着每个参与方都会按照协议行事,但也会尽力获取其他参与方的敏感信息。

5、设计

本节首先介绍了如何使用特征空间置换进行 Transformer 模型的等效推理(第 5.1 节)。然后,我们提出了安全 Transformer 推理协议 (STIP),即核心算法(第 5.2 节),并分析了协议的安全性(第 5.3 节)。

5.1、特征空间置换

置换操作由置换矩阵 𝜋 定义,这是一个方形的二进制矩阵,其中每行和每列恰好有一个元素为 1,其余元素为 0。对于 x \in \mathbb{R} ^{n \times d}\pi_{n \times n} x 和 𝑥x \pi_{d \times d} 分别执行序列级和特征级置换。

掩码使得序列级置换不等效。对于 Transformer 编码器(没有解码器自注意力的自注意力),序列级置换的等变性,即 𝑓(𝜋𝑥) = 𝜋𝑓(𝑥),已经被研究 [32]。然而,由于解码器内部的掩码,对序列级置换数据的注意力计算不能返回等效输出。一个快速修复方法是向云计算平台发送一个置换的 {M}'= \pi M \pi^T。然而,由于 𝑀 的值结构是已知的,云计算平台可以轻松推断出 𝜋,这将导致保护失效。

参数转换。相反,我们提出在特征空间中使用一组随机置换矩阵来转换参数。首先,我们为输入 𝑥 生成 \pi \in \{0, 1\}^{d \times d}。对于第 𝑖 个 Transformer 层,我们使用另外三个矩阵 \pi_{i,1}, \pi_{i,2}, \pi_{i,3}转换参数:

对于分类器,我们需要生成一个置换矩阵\pi c \in \{0, 1\}^{s \times s} 。我们通过 {W}'_c= \pi^TW_c\pi_c 转换分类器参数。图 4 描述了参数转换过程。

图4:特征空间参数转换的说明。颜色表示使用不同的置换矩阵。

计算等价性。设 𝐹𝜃 ′ 表示具有转换参数的 Transformer 模型,我们证明了原始推理结果可以等价地恢复:

定理 1. F_{​{\theta}'}(x\pi)\pi^T_c = F_\theta(x)。由于页面限制,证明放在附录 A 中。

5.2、协议

基于我们提出的基于置换的 Transformer 模型转换,我们开发了 STIP 协议。图 5 展示了 STIP 的概述。STIP 有两个阶段:初始化和推理。在初始化阶段,模型开发者 𝑃1 随机生成置换矩阵集 Π = {𝜋, 𝜋𝑐} ∪ {𝜋𝑖,1, 𝜋𝑖,2, 𝜋𝑖,3 |𝑖 ∈ [𝐿]}。𝑃1 使用 Π 转换其拥有的训练模型 𝐹𝜃,并获得转换版本 𝐹𝜃 ′。然后 𝑃1 将转换模型 𝐹𝜃 ′ 发送到云平台,并将其为输入和输出(𝜋 和 𝜋𝑐)生成的置换矩阵分发给其注册用户。现在初始化阶段结束。对于推理阶段,一旦用户想要使用推理服务,它在设备上运行嵌入以获得 𝑥。然后用户使用接收到的输入置换矩阵 𝜋 通过超轻量级操作 𝑥𝜋 = 𝑥′ 转换嵌入。然后用户将 𝑥′ 发送到云。与正常 Transformer 模型服务相比,云平台上的工作负载没有变化。云只是执行 𝐹𝜃 ′ (𝑥′) 计算并获得置换特征空间中的输出 𝑜′。一旦用户从云接收返回的 𝑜′,它简单地通过 𝑜 = 𝑜′𝜋𝑇𝑐 逆转换输出,这仅涉及内存移动操作,可以非常高效地实现。到目前为止,一轮推理完成。算法 1 正式呈现了 STIP 协议。

多轮自回归生成。现代语言模型的服务基于自回归生成,其中模型按顺序预测标记,一次一个标记,每个标记都依赖于给定的提示和之前生成的标记。STIP 可以通过要求用户将本地预测的标记与其初始提示结合,然后重新嵌入输入来支持自回归生成服务。与涉及单轮通信的全云推理不同,STIP 协议引入了 𝑛 轮通信,其中 𝑛 是最终生成的标记数量。然而,由于保护推理输出机密性的要求,这种额外的通信开销是不可避免的。我们的实验表明,STIP 可以在有线的连接下在 3 秒延迟内生成 100 个标记。考虑到全云推理有超过 1 秒的延迟,STIP 在提供关键安全保证的同时实际上是高效的。

生产环境支持。生产级别的 Transformer 推理框架,如 DeepSpeed [4] 和 HuggingFace [55],包含了许多提高效率的技术。例如,它们使用 KV-cache 机制通过存储先前注意力计算的中间结果来减轻冗余计算。STIP 保持了一种非侵入式方法,转换参数值的同时保持底层 Transformer 架构不变。从云的角度来看,STIP 涉及切换到一组不同的权重,而不改变推理计算过程。因此,STIP 与生产级别框架无缝对齐,我们已经使用 HuggingFace [55] 库实现了 STIP。

5.3、安全分析

现在我们证明 STIP 可以保护模型参数和用户数据免受各种攻击,并使用距离相关性度量量化隐私泄露风险的上限。

随机置换抵抗暴力破解攻击。首先,让我们考虑 𝑃1 作为试图访问用户数据 𝑥, 𝑜 的攻击者。由于 𝑥𝜋 和 𝑜𝜋𝑐 的不可访问性,𝑃1 无法在拥有 𝜋, 𝜋𝑐 的情况下恢复 𝑥, 𝑜。接下来,考虑 𝑃2 作为针对模型参数 𝜃 和用户数据 𝑥, 𝑜 的攻击者。鉴于 𝑃2 拥有置换参数和 𝑥𝜋,正确猜测 𝜋𝑑 ×𝑑 的概率是 1/(𝑑!),其中 𝑑 在实际应用中通常大于 512,例如 LLaMA2-7b [51] 中的 𝑑 = 4096。这使得成功攻击的可能性微不足道。值得注意的是,基于置换的保护方案通常在保护元素集合(例如,英语词汇)方面表现出弱点 [63]。幸运的是,STIP 通过对中间激活而不是原始数据应用置换来避免这种脆弱性。第三,考虑 𝑃3 作为针对模型参数 𝜃 的攻击者。由于 𝑃3 无法访问 𝜃′,即使拥有 𝜋, 𝜋𝑐,它也无法恢复 𝜃。由于 STIP 要求在设备上部署嵌入模型,嵌入的权重对 𝑃3 是暴露的。然而,嵌入模块本身无法执行有价值的任务,因此不敏感(例如,OpenAI 已经发布了其嵌入模块[36])。

半对称方案抵抗已知明文攻击。已知明文攻击 (KPA) 是一种密码学攻击,攻击者同时拥有密文(加密数据)和相应的明文(未加密数据)。KPA 的目标是揭示用于加密数据的加密密钥或算法。在我们的背景下,如果模型开发者的参数的明文已经泄露,就没有必要继续攻击保护方案。因此,KPA 考虑的重点完全集中在用户数据上。假设 𝑃2 知道 𝑥 和 𝑥𝜋,它可以通过 𝑑 次列匹配来恢复 𝜋,除非有两个或更多完全相同的列。因此,如果云上的参数仅依赖于 𝜋 进行保护,它们都面临被泄露的风险。这强调了为什么我们采用半对称保护方案,其中层参数使用两个矩阵进行置换。一个矩阵专属于模型开发者,另一个与用户共享。这种设计使模型参数能够抵抗 KPA。对于特定用户,揭露 𝜋 将导致所有后续嵌入对 𝑃2 暴露。为了应对这种脆弱性,我们实施了一种策略,即定期更改置换矩阵集(在极端情况下,使用一次性转换),这是一种常见的抵抗 KPA 的做法 [8, 61]。

社会工程攻击。抛开我们的半诚实假设,在云平台欺骗性地伪装成用户并获取嵌入模型以及 𝜋, 𝜋𝑐 的情况下,它可能潜在地揭露共享相同置换矩阵的其他用户的数据。为了对抗这种风险,模型开发者可以部署多个模型实例,每个实例使用不同的转换。然后,用户可以被随机分配共享一个模型实例(在极端情况下,每个用户可能拥有一个专用的模型实例),有效地减轻了通过这种社会工程攻击导致数据泄露的风险。值得注意的是,参数由于与 KPA 相同的原因仍然能够抵抗这种攻击。

距离相关性界限。上文我们分析了 STIP 可以确保数据值无法被揭露。一个重要的方面是调查原始数据和置换数据之间的相关性程度。为了量化隐私泄露的风险,我们采用距离相关性 [49],这是一个衡量两个随机向量之间依赖性的统计度量。设 Corr 表示距离相关性。根据现有定理 [63],已经证明:

简单来说,这意味着在中间激活上应用随机置换导致的隐私泄露被一维约简中观察到的泄露所限制,这已经证明了实际的隐私保护能力 [35, 54]。

模型分割考虑。默认情况下,STIP 只在用户设备上部署嵌入模块,如图 3 所示。这个决定是由以下事实驱动的:在嵌入之前分割模型会带来安全挑战。在这种情况下,设备需要将标记化的一热向量(一个矩阵 ∈ Z𝑛×𝑠,其中 𝑠 表示词汇量)传输到云。虽然矩阵可以被随机置换,但向量的固有的一热性质使得云可以轻松恢复置换,从而使其不安全。另一方面,将更多层分配到设备上也不是一个明智的选择。这主要是因为向终端设备暴露更多参数不仅会损害效率,如图 9 中的实验结果所示,而且无法增强模型对云-设备攻击的理论抵抗力。

6、STIP 用于 Transformer 变体

本节讨论了 STIP 如何支持各种 Transformer 变体,包括语言模型(第 6.1 节)、多模态模型(第 6.2 节)和混合专家模型(第 6.3 节)。随后,我们建立了通用规则并声称 STIP 的应用范围(第 6.4 节)。

由于页面限制,所有证明都放在附录 A 中。

6.1、语言模型

预层归一化。GPT 的第一个版本 [41] 直接采用了原始的 Transformer 解码器。GPT-2 [43] 引入了预层归一化,将层归一化重新定位到自注意力子模块和前馈子模块的输入,形式如下:

其中 Attn 表示自注意力子模块。从定理 1 的证明中,我们可以轻松证明这个定理对于预层归一化结构仍然成立,使用相同的参数转换。

RMSNorm。LLaMA 系列 [51] 使用 RMSNorm [59] 替代 LayerNorm。为了支持 RMSNorm 操作符,STIP 通过 𝛾𝜋 转换其权重 𝛾,然后我们可以证明

GeLU。GPT 使用 GeLU 替代前馈子模块中的 ReLU。类似于 ReLU,GeLU 涉及逐元素计算,没有可学习参数,因此我们有 GeLU(𝑥𝜋) = GeLU(𝑥)𝜋,定理 1 成立。

SwiGLU 前馈。LLaMA [51] 在前馈层中使用 SwiGLU [48] 而不是 ReLU。设 FFNSwiGLU 表示使用 SwiGLU 的前馈层,其定义为:

我们按如下方式转换参数:

其中 {FFN}'_{SwiGLU} 表示转换后的前馈子模块。我们证明{FFN}'_{SwiGLU}=FFN_{SwiGLU}(x)\pi

稀疏注意力。GPT-3 [9] 在 Transformer 层中采用稀疏注意力模式 [12]。同样,Longformer [6] 被提出以提高长文本的内存效率。这些注意力模式的改变等同于修改掩码矩阵 𝑀。根据我们的证明,定理 1 对任何 𝑀 矩阵都成立,无需调整参数转换。

6.2、多模态模型

ViT [18] 将图像分割成非重叠的块,每个块被线性嵌入以创建一系列标记嵌入。这些标记嵌入作为 Transformer 模型的输入。由于 STIP 不依赖于原始数据的预处理,它可以无缝支持 ViT。LLaVA [33] 将文本和图像作为输入。它使用视觉 Transformer 嵌入图像,然后使用线性投影x_vW 将其与文本输入的嵌入连接起来,其中 x_v 表示视觉嵌入。为了将 LLaVA 与 STIP 集成,我们只需要通过 \pi^T_vW\pi_t 转换投影权重 𝑊,其中\pi_v\pi_t分别表示用于视觉和文本 Transformer 特征的置换矩阵。

6.3、混合专家模型

Mixtral [29] 通过在 Transformer 中构建多个并行前馈子模块(称为专家)并辅以路由器(或门控层)来集成混合专家 (MoE)。路由器通过 𝑔(𝑥) = 𝑥𝑊𝑔 确定专家的权重,其中 W_g \in \mathbb{R}^{d \times e},𝑒 代表专家的数量。为了支持 MoE,只需对 𝑊𝑔 进行简单的转换,通过 \pi^TW_g 实现。

6.4、应用范围

对于具有可学习参数的层,STIP 要求它们仅涉及全局矩阵乘法(例如,线性、自注意力和前馈)或标记级聚合(例如,LayerNorm)。为了给出一些反例,STIP 不能扩展到卷积层和循环层。

对于没有可学习参数的层,STIP 要求它们满足 𝑓 (𝑥𝜋) = 𝑓 (𝑥)𝜋 属性,即列置换等变性。例如,ReLU、GeLU、SoftMax 和 Sigmoid 激活函数。

7、评估

我们使用真实系统和公共数据集在各种 Transformer 推理任务上评估了 STIP。我们的主要发现概述如下:

  • STIP 在模型参数和用户数据方面表现出实际的安全性,并且没有精度损失(第 7.3 节)。
  • STIP 实现了与未受保护的完全云推理相当的吞吐量水平,比最先进的安全两方协议 [11, 24, 26] 高出数百万倍(第 7.4 节)。
  • STIP 在评估各种微基准测试方面表现出效率,包括通信开销、内存占用和模型分割的影响(第 7.5 节)。

7.1、实现

我们使用 PyTorch 和 HuggingFace [55] 库实现了 STIP。现代深度学习框架,包括 PyTorch,采用行主内存布局。为了与内存布局对齐,PyTorch 在线性层中执行矩阵乘法为 xW^T 而不是 𝑥𝑊。因此,我们在实现中转置了之前介绍的参数转换。对于置换操作,我们选择生成一个随机置换向量 \pi_v 而不是矩阵 \pi_m。然后,这个向量用于索引行或列,如在 W [:, \pi^v ] 中,这实现了与 𝑊 𝜋𝑚 相同的效果。基于索引的方法比矩阵乘法更计算高效。

7.2、实验设置

测试平台和 Transformer 模型。我们使用三个测试平台和六个代表性 Transformer 模型进行评估,见表 3。(1)校园安全聊天机器人 (CHAT)。为了支持校园安全的自然语言问答,我们开发了一个基于大型语言模型的聊天机器人。我们选择预训练的 LLaMA2-7b [51] 在 ANONYMOUS 大学托管这项服务。为了扩展评估,我们还部署了 GPT2-124m/355m/774m/1.5b [43] 和 LLaMA2-13b/70b 模型。(2)汽车座舱场景理解 (CABIN)。在 ANONYMOUS 汽车公司,我们使用 LLaVA-13b [33] 实现座舱场景理解功能。LLaVA 模型接收座舱视频帧和预设提示作为输入来生成场景描述。我们还部署了 ViT-86m/307m/632m 模型 [18] 进行全面实验。(3)模拟器 (SIMU)。为了进一步评估 STIP 在 BERT 系列 [15] 和 Mixtral [29] 模型上的性能,我们构建了一个模拟测试平台,并使用随机生成的数据进行测试。

基线。为了进行比较,我们考虑了四种方法:(1)全云。具有原始参数的 Transformer 模型部署在云上,设备将原始数据(明文)发送到云进行推理。(2-4)Iron [24]、THE-X [11] 和 CipherGPT [26]。它们为 BERT 系列和 GPT-2 模型提出了安全两方协议。

设备。对于所有情况,我们使用配备 4 块 NVIDIA A100 GPU 的服务器作为模型服务器。在 CHAT 测试平台中,我们使用配备 8 核 Intel Core i7 CPU 的 PC 作为用户设备。在 CABIN 测试平台中,我们使用 NVIDIA Orin 开发板作为用户设备。对于 SIMU,我们使用配备 4 核 Intel Core i5 CPU 的 MacBook Pro 笔记本电脑作为用户设备。

7.3、安全性和准确性保证

首先,我们通过实验评估了之前证明的安全性和计算等价性。

距离相关性。在我们的隐私分析中,我们采用距离相关性 [49] 作为评估隐私泄露的指标。作为基线,我们利用随机线性投影在参数和嵌入上进行操作,称为随机投影。在图 6a 中,我们展示了 GPT2-1.5b 模型的原始和转换参数之间的距离相关性。值得注意的是,与随机投影相比,STIP 表现出显著更低的距离相关性。平均而言,随机投影产生 0.76 的距离相关性,而 STIP 实现了明显更低的 0.062。为了评估设备上数据的安全性,我们对不同隐藏大小(从 128 到 8192)的嵌入应用转换。结果在图 6b 中描绘。在随机投影的情况下,转换后的数据平均保持超过 0.6 的相关性。相反,随着隐藏大小的增加,STIP 的距离相关性从 0.14 减少到 0.017。这展示了 STIP 在减少与转换数据相关的隐私泄露方面的有效性。我们的实验结果证实了基于置换的转换数据参数的低隐私泄露,为第 5.3 节中的界限分析提供了验证。

云上参数不可用。除了量化相关性之外,我们还通过使用转换参数生成标记来评估云上参数的实际不可用性。我们使用相同的提示,并将其输入到具有原始和 STIP 转换参数的 GPT2-1.5b 模型中。表 4 展示了结果。使用提示 “I’m a language model” 时,云上转换参数生成的标记完全无意义,突出了部署参数的实际不可用性。这一观察强调了 STIP 在保护参数免受未授权使用方面的有效性。

无精度损失。STIP 的一个关键优势在于其计算等价性,确保使用 STIP 为 Transformer 模型提供服务不会导致精度损失。我们通过检查两个指标来评估这一点:预测绝对差异的总和和 top-1 标记分类精度。我们在所有六个选定的模型系列上进行了测试,参数范围从 400 万到 700 亿,每个模型使用 10000 个样本。如表 5 所示,STIP 在所有模型上始终实现 100% 的准确性。值得注意的是,如表 5 所示,STIP 在所有模型上始终实现 100% 的准确性。值得注意的是轻微的非零绝对差异是由于固有的浮点运算错误,而不是 STIP 引入的任何精度损失。

7.4、推理效率

图 7:使用 STIP 高效服务 Transformer。

接下来,我们评估了 STIP 的推理效率。测试结果是在与模型相关的测试设备上进行的,我们不会进行额外的解释。

端到端吞吐量和参数大小的可扩展性。我们进行了测试,以评估使用 STIP 为 Transformer 模型提供服务的端到端吞吐量。批量大小设置为 100,每个样本的标记数量设置为 100。如图 7(a)所示,与基线相比,STIP 表现出数量级的更高吞吐量。请注意,基线的吞吐量是从其论文中报告的结果推断出来的,因为安全协议 [11, 24, 26] 缺乏开源代码。此外,我们进行了全云推理测试,但结果与 STIP 非常接近,导致标记重叠,因此为了清晰起见,省略了这些结果。对于最大参数数量的改进,STIP 达到 700 亿,而基线为 3.36 亿,增加了 208 倍。对于 GPT2-124m 的吞吐量,CipherGPT 报告为 6.7e-4 token/s,而 STIP 实现 45,366 token/s,展示了 670 万倍的改进。图 7(b)总结了参数规模和吞吐量的改进。

自回归生成。除了单轮前馈传递外,我们还进行了使用 STIP 的自回归生成测试,考虑了 STIP 通信的有线和无线网络连接。有线连接的平均通信延迟约为 10ms,而无线连接约为 250ms。批量大小为 1,128 个输入提示,图 7(c)展示了 LLaMA2-7b 模型的结果。所有服务方法的延迟随生成的标记数量线性增加。全云、STIP 有线和 STIP 无线的结果线斜率分别约为 12、30 和 510。如第 5.2 节所述,每个生成标记的通信成本是确保输出隐私保护的不可避免的开销。考虑到 STIP 相对于未受保护的全云推理引入的实际安全性,略微更高的延迟(例如,100 个标记多 2 秒)是可以接受的。

延迟分解。为了更深入地了解 STIP 引入的开销,我们进行了延迟分解分析,将其与全云推理进行比较。如图 7d 所示,我们的评估显示,STIP 在设备上引入了额外的 1.7ms 延迟,同时将云上延迟从 12ms 降低到 11ms。与全云相比,STIP 性能较慢的一个关键因素是通信阶段。这源于传输中间嵌入的必要性,这是一个 BATCH×𝑛 ×𝑑 张量,通常超过全云服务中传输的明文字的大小。虽然之前的工作 [57] 已经研究了在模型分割场景中压缩中间激活并提高通信效率的技术,但值得注意的是,我们的工作对无损精度有严格的要求,这使得这些压缩技术超出了当前的设计范围。将此类压缩方法与 STIP 集成是未来研究的 promising 方向。

7.5、微基准测试

设备-云通信流量。STIP 引起的通信流量受三个因素影响:输入标记的数量、隐藏大小和输出词汇量大小。举例来说,考虑到 GPT2-124m 模型,单轮推理操作分别导致输入嵌入和输出激活的流量为 5.8 MiB 和 7.5 MiB。如图 2 所示,与 CipherGPT 引起的 95,151 MiB 流量相比,STIP 引起的通信流量显著较低。这种流量的显著减少突出了 STIP 在适度成本下实现安全性的能力。

设备内存占用。鉴于可能用于基于 Transformer 的服务的各种设备的多样性,我们评估了设备内存占用。如图 8 所示的结果展示了内存需求。对于分词器组件,LLaMA2 和 ViT 模型的内存占用分别为 18 MiB 和 3.1 MiB。在嵌入部分,内存分配取决于隐藏大小参数。使用大型隐藏大小 8192 的 LLaMA2-70b,内存成本为 903 MiB。相比之下,ViT 模型的内存需求更为适中,范围在 3.9 MiB 到 4.9 MiB 之间。这意味着即使对于具有较大隐藏大小的模型,STIP 在设备上的内存需求对于当代终端设备仍然是可行的。

模型分割的影响。我们将设备上的 Transformer 层数从 0 增加到 20,并分析对推理延迟的相应影响。如图 9 所示,端到端推理的延迟与设备上层数的增加成正比增加。这种延迟增加是由于设备与云相比计算能力较低。如第 5.3 节所述,将更多层部署在设备上不仅会导致更高的延迟,还会向用户暴露更多参数,从而引入隐私风险。考虑到这些因素,我们的分析表明,仅在设备上部署嵌入模块是最佳选择。这种配置在最小化延迟的同时,减轻了向用户暴露更多层可能带来的潜在隐私风险。

8、讨论

具有内部模型开发的云提供商。STIP 的一个显著局限性源于其三方设置。虽然这种设置对于一系列应用是合适的,如第 2.3 节所述,但当云提供商也参与模型开发时,可能不太适合。考虑这样一个场景,云提供商(如 Google)维护自己的云平台以及大型 Transformer 模型 [13, 23]。尽管在同一公司的不同部门之间实施访问控制以避免串通的可能性,但对于外部用户仍存在一定程度的怀疑。固有的挑战在于建立一个可信赖的环境,特别是当外部用户无法保证云提供商内部模型开发和托管过程中的利益分离和潜在利益冲突时。

训练支持扩展。STIP 是为前向传递设计的,而模型训练引入了反向梯度传播的复杂性。我们设想 STIP 的基本原则有望扩展以支持隐私保护训练。然而,这种扩展需要研究与梯度相关的通信开销以及在梯度传播过程中引入的额外隐私泄露风险 [53]。需要进一步的研究来充分实现 STIP 在隐私保护 Transformer 推理方面的潜力。

9、相关工作

神经网络分割。将神经网络层分割并在设备和服务器之间分配的做法已被探索作为一种在保护原始设备数据的同时保持效率的手段 [30, 38, 39, 50, 58]。然而,尽管存在这种分割,从中间激活 [2] 中逆向工程敏感信息(如文本嵌入 [37])的潜力仍然是一个问题。STIP 在模型分割的概念基础上更进一步,通过整合随机置换,提供了理论上增强的安全措施。

安全的 Transformer 推理。在两方设置的背景下,之前的工作 [11, 24, 26] 已经探索了将同态加密和多方计算技术相结合,为 Transformer 推理设计安全协议。这些方法为 Transformer 模型中的特定层(如非线性激活和层归一化)定制和优化计算协议。与这些两方系统相比,STIP 引入了一个新颖的三方设置,并采用半对称置换方案来增强安全性。

10、结论

在本文中,我们研究了 Transformer 推理中的安全问题。我们提出了一个三方威胁模型,并介绍了基于我们半对称置换方案的安全 Transformer 推理协议 STIP 的设计。理论分析和真实系统中的实验评估了 STIP 的安全性、计算等价性和实际效率。

参考

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2392283.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

leetcode hot100刷题日记——27.对称二叉树

方法一:递归法 class Solution { public:bool check(TreeNode *left,TreeNode *right){//左子树和右子树的节点同时是空的是对称的if(leftnullptr&&rightnullptr){return true;}if(leftnullptr||rightnullptr){return false;}//检查左右子树的值相不相等&a…

高考加油(Python+HTML)

前言 询问DeepSeek根据自己所学到的知识来生成多个可执行的代码,为高考学子加油。最开始生成的都会有点小问题,还是需要自己调试一遍,下面就是完整的代码,当然了最后几天也不会有多少人看,都在专心的备考。 Python励…

贪心算法应用:Ford-Fulkerson最大流问题详解

Java中的贪心算法应用:Ford-Fulkerson最大流问题详解 1. 最大流问题概述 最大流问题(Maximum Flow Problem)是图论中的一个经典问题,旨在找到一个从源节点(source)到汇节点(sink)的最大流量。Ford-Fulkerson方法是解决最大流问题的经典算法之一,它属于贪心算法的范畴…

UE5 Niagara 如何让四元数进行旋转

Axis Angle中,X,Y,Z分别为旋转的轴向,W为旋转的角度,在这里旋转角度不需要除以2,因为里面已经除了,再将计算好的四元数与要进行旋转的四元数进行相乘,结果就是按照原来的角度绕着某一轴向旋转了某一角度

从“黑箱”到透明化:MES如何重构生产执行全流程?

引言 在传统制造企业中,生产执行环节常面临“计划混乱、进度难控、异常频发、数据滞后”的困境。人工派工效率低下、物料错配频发、质量追溯困难等问题,直接导致交付延期、成本攀升、客户流失。深蓝易网MES系统以全流程数字化管理为核心,通过…

探索Linux互斥:线程安全与资源共享

个人主页:chian-ocean 文章专栏-Linux 前言: 互斥是并发编程中避免竞争条件和保护共享资源的核心技术。通过使用锁或信号量等机制,能够确保多线程或多进程环境下对共享资源的安全访问,避免数据不一致、死锁等问题。 竞争条件 竞…

JWT安全:假密钥.【签名随便写实现越权绕过.】

JWT安全:假密钥【签名随便写实现越权绕过.】 JSON Web 令牌 (JWT)是一种在系统之间发送加密签名 JSON 数据的标准化格式。理论上,它们可以包含任何类型的数据,但最常用于在身份验证、会话处理和访问控制机制中发送有关用户的信息(“声明”)。…

Python爬虫实战:抓取百度15天天气预报数据

🌐 编程基础第一期《9-30》–使用python中的第三方模块requests,和三个内置模块(re、json、pprint),实现百度地图的近15天天气信息抓取 记得安装 pip install requests📑 项目介绍 网络爬虫是Python最受欢迎的应用场景之一&…

RV1126 + FFPEG多路码流项目

代码主体思路&#xff1a; 一.VI,VENC,RGA模块初始化 1.先创建一个自定义公共结构体&#xff0c;用于方便管理各个模块 rkmedia_config_public.h //文件名字#ifndef _RV1126_PUBLIC_H #define _RV1126_PUBLIC_H#include <assert.h> #include <fcntl.h> #include …

NodeJS 基于 Koa, 开发一个读取文件,并返回给客户端文件下载,以及读取文件形成列表和文件删除的代码演示

前言 在上一篇文章 《Nodejs 实现 Mysql 数据库的全量备份的代码演示》 中&#xff0c;我们演示了如何将用户的 Mysql 数据库进行备份的代码。但是&#xff0c;这个备份&#xff0c;只是备份在了服务器上了。 而我们用户的真实需求&#xff0c;是需要将备份文件下载到本地进行…

为什么在我的Flask里面有两个路由,但是在网页里有一个却不能正确访问到智能体

1. /zhoushibo 能访问&#xff0c;/chat 直接浏览器访问报 Method Not Allowed 原因&#xff1a; /zhoushibo 路由是你用 app.route(/zhoushibo) 定义的&#xff0c;返回的是一个HTML网页&#xff0c;浏览器访问没问题。 /chat 路由你用的是 app.route(/chat, methods[POST])…

哈工大计算机系统2024大作业——Hello的程序人生

计算机系统 大作业 题 目 程序人生-Hello’s P2P 专 业 人工智能 学   号 2022112040 班 级 2203601 学 生 郄东昕 指 导 教 师 吴锐 计算机科学与技术学院…

2025年软件测试面试八股文(含答案+文档)

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 Part1 1、你的测试职业发展是什么&#xff1f; 测试经验越多&#xff0c;测试能力越高。所以我的职业发展是需要时间积累的&#xff0c;一步步向着高级测试工程师…

Flutter3.22适配运行鸿蒙系统问题记录

Flutter3.22适配运行鸿蒙系统问题记录 一&#xff1a;适配条件适配过程问题记录&#xff08;1&#xff09;环境配置问题&#xff08;2&#xff09;Concurrent modification during iteration: Instance(length:2) of_GrowableList 报错&#xff08;3&#xff09;三方插件寻找替…

秋招Day10 - JVM - 内存管理

JVM组织架构主要有三个部分&#xff1a;类加载器、运行时数据区和字节码执行引擎 类加载器&#xff1a;负责从文件系统、网络或其他来源加载class文件&#xff0c;将class文件中的二进制数据加载到内存中运行时数据区&#xff1a;运行时的数据存放的区域&#xff0c;分为方法区…

Spring Boot 3.5.0中文文档上线

Spring Boot 3.5.0 中文文档翻译完成&#xff0c;需要的可收藏 传送门&#xff1a;Spring Boot 3.5.0 中文文档

Redisson学习专栏(一):快速入门及核心API实践

文章目录 前言一、Redisson简介1.1 什么是Redisson&#xff1f;1.2 解决了什么问题&#xff1f; 二、快速入门2.1 环境准备 2.2 基础配置三、核心API解析3.1 分布式锁&#xff08;RLock&#xff09;3.2 分布式集合3.2.1 RMap&#xff08;分布式Map&#xff09;3.2.2 RList&…

Pandas学习入门一

1.什么是Pandas? Pandas是一个强大的分析结构化数据的工具集&#xff0c;基于NumPy构建&#xff0c;提供了高级数据结构和数据操作工具&#xff0c;它是使Python成为强大而高效的数据分析环境的重要因素之一。 一个强大的分析和操作大型结构化数据集所需的工具集基础是NumPy…

基于Piecewise Jerk Speed Optimizer的速度规划算法(附ROS C++/Python仿真)

目录 1 时空解耦运动规划2 PJSO速度规划原理2.1 优化变量2.2 代价函数2.3 约束条件2.4 二次规划形式 3 算法仿真3.1 ROS C仿真3.2 Python仿真 1 时空解耦运动规划 在自主移动系统的运动规划体系中&#xff0c;时空解耦的递进式架构因其高效性与工程可实现性被广泛采用。这一架…

游戏引擎学习第312天:跨实体手动排序

运行游戏并评估当前状况 目前排序功能基本已经正常&#xff0c;能够实现特定的排序要求&#xff0c;针对单一区域、单个房间的场景&#xff0c;效果基本符合预期。 不过还有一些细节需要调试。现在有些对象的缩放比例不对&#xff0c;导致它们看起来有些怪异&#xff0c;需要…