面向边缘通用智能的多大语言模型系统:架构、信任与编排
Luo H, Liu Y, Zhang R, et al. Toward edge general intelligence with multiple-large language model (Multi-LLM): architecture, trust, and orchestration[J]. IEEE Transactions on Cognitive Communications and Networking, 2025.
引言:从边缘智能到通用智能的范式转变
边缘计算作为一种将计算资源推向网络边缘的分布式计算范式,通过在数据源附近进行处理,显著降低了计算数据交换相关的延迟和带宽使用。这种架构优势对于交通管理、应急响应和自主导航等时间敏感的智能应用而言至关重要。然而传统的边缘人工智能系统主要依赖于专门的窄域模型,每个模型都针对特定任务进行设计和优化,例如目标检测模型专注于识别图像中的物体,交通预测模型专门分析道路流量模式。
这些传统模型虽然在其目标问题上表现出色,但本质上缺乏处理现代城市和空中生态系统等日益复杂动态环境所需的灵活性和通用推理能力。它们的局限性体现在几个方面:首先是任务特异性,每个模型只能执行其训练时设定的特定任务,无法跨域迁移;其次是泛化能力不足,模型难以处理训练分布之外的情况;再次是缺乏推理能力,这些模型无法进行复杂的因果推理或多步骤决策。
与此形成鲜明对比的是,大语言模型展现出了令人瞩目的类人智能水平。这些基于Transformer架构的模型在理解、生成和推理自然语言及多模态数据方面表现出色。它们的通用智能特性源于在海量预训练数据上学习到的广泛知识表示,使其能够在无需针对性重新训练的情况下执行各种任务。这种能力对于需要多样性和适应性的边缘应用极具吸引力,从而催生了边缘通用智能的概念。
边缘通用智能是指让边缘节点(包括物联网设备、车辆、无人机和城市基础设施)获得增强的上下文感知能力、推理能力和多模态交互能力。这种演进使得更智能、更自主和更具适应性的服务能够直接在边缘提供,减少了对云连接的依赖并加速了决策过程。然而在边缘部署大语言模型引入了独特的挑战,包括有限的设备计算资源(边缘设备通常只有几GB的内存和有限的处理能力)、能量约束(许多边缘设备依赖电池供电)以及与云端交互的高通信开销。
为了缓解这些困难,研究者开发了一系列解决方案。模型压缩技术如剪枝、量化和知识蒸馏被采用来减少模型大小和推理复杂度。能量感知的推理、调度和动态模型调用策略被设计来合理分配任务并延长设备电池寿命。边缘本地推理增强和边缘云协同计算方法被提出来处理高通信开销。
然而即便如此,单个大语言模型在边缘应用中仍然暴露出关键局限。不同的大语言模型由于训练数据、语言或专业领域的差异,可以相互补充。对同一查询的响应往往因模型的不同训练语料库和模型偏差而存在差异。单个大语言模型在适应异构上下文时面临困难,例如专注于交通管理的大语言模型可能无法处理医疗查询。此外如果训练数据有限,单个大语言模型可能遭受知识过时或产生幻觉的问题。
多大语言模型系统被提出作为推动边缘通用智能前沿的方法。通过让多个大语言模型作为集合或网络协作,我们可以结合它们的优势并缓解个体弱点。例如Wang等人利用一个大语言模型池(包括GPT-3.5、GPT-4、LLaMA变体等)来共同生成全面的养老护理计划,在主题覆盖范围上优于任何单一模型。研究者还开始探索多大语言模型系统来模拟"群体智能",其中基于大语言模型的代理讨论或投票决定答案以提高可靠性。这也被视为多代理系统的先决基础。
图1解读 :论文第2页的图1清晰展示了边缘通用智能、多大语言模型以及面向边缘通用智能的多大语言模型三者的关键特征对比。图中采用三个相互交叠的圆形区域表示这三个概念及其关系。左侧的深蓝色圆圈代表边缘通用智能,列出了泛化能力、适应性、多模态处理、自主性与推理、持续学习、通信依赖性、安全与隐私等关键特征。右上方的黄色圆圈代表多大语言模型,强调了专业化、可扩展性与灵活性、鲁棒性与容错能力、性能增强、任务分解、隐私与保密性、减少幻觉和偏见等优势。底部的绿色交叠区域则代表面向边缘通用智能的多大语言模型系统,综合了任务灵活性与泛化、协作与推理、持续与联邦学习、资源感知智能、上下文提示与适应、隐私与合规、减少幻觉与提高可靠性等特性。这个三圆交叠的设计巧妙地展示了多大语言模型如何成为实现边缘通用智能的关键技术路径。
多大语言模型的理论基础与协作机制
多大语言模型系统的数学形式化
从数学角度来看,多大语言模型系统可以形式化为一个由N N N 个大语言模型组成的集合M = { M 1 , M 2 , … , M N } \mathcal{M} = \{M_1, M_2, \ldots, M_N\} M = { M 1 , M 2 , … , M N } 。每个模型M i M_i M i 可以表示为一个条件概率分布:
M i : X → P ( Y ) M_i: \mathcal{X} \rightarrow \mathcal{P}(\mathcal{Y})
M i : X → P ( Y )
其中X \mathcal{X} X 是输入空间(提示、上下文等),Y \mathcal{Y} Y 是输出空间(生成的文本、决策等),P ( Y ) \mathcal{P}(\mathcal{Y}) P ( Y ) 是Y \mathcal{Y} Y 上的概率分布。给定输入x ∈ X x \in \mathcal{X} x ∈ X ,模型M i M_i M i 生成输出y i y_i y i 的概率为:
P ( y i ∣ x , M i ) = ∏ t = 1 T P ( y i , t ∣ y i , < t , x , M i ) P(y_i | x, M_i) = \prod_{t=1}^{T} P(y_{i,t} | y_{i,<t}, x, M_i)
P ( y i ∣ x , M i ) = t = 1 ∏ T P ( y i , t ∣ y i , < t , x , M i )
其中y i , t y_{i,t} y i , t 表示第t t t 个生成的token,y i , < t y_{i,<t} y i , < t 表示前t − 1 t-1 t − 1 个token,T T T 是序列长度。
在多大语言模型系统中,关键问题是如何聚合N N N 个模型的输出来产生最终响应。这个聚合过程可以表示为一个函数A \mathcal{A} A :
y ∗ = A ( { ( y 1 , s 1 ) , ( y 2 , s 2 ) , … , ( y N , s N ) } ) y^* = \mathcal{A}(\{(y_1, s_1), (y_2, s_2), \ldots, (y_N, s_N)\})
y ∗ = A ( { ( y 1 , s 1 ) , ( y 2 , s 2 ) , … , ( y N , s N ) } )
其中y i y_i y i 是第i i i 个模型的输出,s i s_i s i 是对应的置信度分数或质量度量,y ∗ y^* y ∗ 是最终输出。
三种核心协作范式的深度分析
图2详细解读 :论文第4页的图2是理解多大语言模型协作机制的关键。该图采用自上而下的层次结构,顶部是"从传统AI到多大语言模型"的总标题。第一层展示了"多大语言模型概念",通过三个并列的模块说明了协作方法:合并(Merge)、集成(Ensemble)和协作(Cooperate)。图的中间部分列出了传统AI、单一大语言模型和多大语言模型三种范式的差异。最底层详细阐述了多大语言模型的应用场景,包括养老护理、智能电网检查、智能交通和低空经济网络四个典型场景。整个图表通过颜色编码(蓝色表示概念层,绿色表示对比层,橙色表示应用层)清晰地展示了多大语言模型系统的理论框架和实践价值。
合作协同模式的数学建模
合作协同描述了多个大语言模型以一致目标协同工作的场景,通常通过任务分解或互补优势来增强整体性能。这种范式可以通过任务分解函数来建模:
T ( x ) = { t 1 , t 2 , … , t K } \mathcal{T}(x) = \{t_1, t_2, \ldots, t_K\}
T ( x ) = { t 1 , t 2 , … , t K }
其中T \mathcal{T} T 将输入任务x x x 分解为K K K 个子任务。每个子任务t k t_k t k 被分配给最适合的模型M i k M_{i_k} M i k :
i k = arg max i ∈ { 1 , … , N } Score ( M i , t k ) i_k = \arg\max_{i \in \{1,\ldots,N\}} \text{Score}(M_i, t_k)
i k = arg i ∈ { 1 , … , N } max Score ( M i , t k )
其中Score ( M i , t k ) \text{Score}(M_i, t_k) Score ( M i , t k ) 衡量模型M i M_i M i 处理子任务t k t_k t k 的适配度。最终输出通过组合各子任务的结果获得:
y ∗ = C ( { ( t 1 , y i 1 ) , ( t 2 , y i 2 ) , … , ( t K , y i K ) } ) y^* = \mathcal{C}(\{(t_1, y_{i_1}), (t_2, y_{i_2}), \ldots, (t_K, y_{i_K})\})
y ∗ = C ( { ( t 1 , y i 1 ) , ( t 2 , y i 2 ) , … , ( t K , y i K ) } )
其中C \mathcal{C} C 是组合函数,负责整合各个子任务的输出。
Owens等人的研究实现了中心化和去中心化对话框架,使多个大语言模型能够通过通信来集体减少偏见并增强公平性。在他们的框架中,偏见检测可以建模为:
Bias ( y ) = E M ∈ M [ d ( y , y fair ) ] \text{Bias}(y) = \mathbb{E}_{M \in \mathcal{M}} [d(y, y_{\text{fair}})]
Bias ( y ) = E M ∈ M [ d ( y , y fair ) ]
其中d ( ⋅ , ⋅ ) d(\cdot, \cdot) d ( ⋅ , ⋅ ) 是偏差度量,y fair y_{\text{fair}} y fair 是理想的无偏响应。系统通过最小化这个偏差来优化输出。
竞争对抗模式的博弈论视角
竞争对抗模式引入了模型之间的竞争或对抗动态。这可以用博弈论框架来描述。考虑一个N N N 人非合作博弈,其中每个模型M i M_i M i 的策略空间是其可能的输出Y i \mathcal{Y}_i Y i ,效用函数u i ( y 1 , … , y N ) u_i(y_1, \ldots, y_N) u i ( y 1 , … , y N ) 衡量给定所有模型输出时模型i i i 的收益。
在对抗性辩论框架中,模型可以视为不同答案的"倡导者"或辩论者,他们迭代地批评彼此的推理。这个过程可以建模为一个多轮博弈,第r r r 轮的状态为:
s ( r ) = ( y 1 ( r ) , y 2 ( r ) , … , y N ( r ) , c 1 ( r ) , c 2 ( r ) , … , c N ( r ) ) s^{(r)} = (y_1^{(r)}, y_2^{(r)}, \ldots, y_N^{(r)}, c_1^{(r)}, c_2^{(r)}, \ldots, c_N^{(r)})
s ( r ) = ( y 1 ( r ) , y 2 ( r ) , … , y N ( r ) , c 1 ( r ) , c 2 ( r ) , … , c N ( r ) )
其中y i ( r ) y_i^{(r)} y i ( r ) 是模型i i i 在第r r r 轮的输出,c i ( r ) c_i^{(r)} c i ( r ) 是其置信度。更新规则为:
y i ( r + 1 ) = M i ( x , { y j ( r ) , c j ( r ) } j ≠ i ) y_i^{(r+1)} = M_i(x, \{y_j^{(r)}, c_j^{(r)}\}_{j \neq i})
y i ( r + 1 ) = M i ( x , { y j ( r ) , c j ( r ) } j = i )
即每个模型根据其他模型的当前输出和置信度来更新自己的响应。这个迭代过程持续直到达到纳什均衡或满足某个停止条件。
Feng等人利用这种方法,使多个大语言模型能够对抗性地批评不确定响应,缓解幻觉并提高答案保真度。他们的置信度估计可以表示为:
c i = σ ( 1 N − 1 ∑ j ≠ i Agreement ( y i , y j ) ) c_i = \sigma\left(\frac{1}{N-1}\sum_{j \neq i} \text{Agreement}(y_i, y_j)\right)
c i = σ ⎝ ⎛ N − 1 1 j = i ∑ Agreement ( y i , y j ) ⎠ ⎞
其中σ \sigma σ 是sigmoid函数,Agreement ( ⋅ , ⋅ ) \text{Agreement}(\cdot, \cdot) Agreement ( ⋅ , ⋅ ) 衡量两个输出之间的一致性。
集成整合模式的统计学原理
集成方法是一种经典的机器学习技术,已被改编应用于大语言模型。多个模型并行运行于同一任务,各自独立生成答案,然后通过预定义的聚合机制合成这些结果。目标是利用每个模型的个体优势并抵消它们的独立错误,从而提高整体准确性或可靠性。
最简单的集成策略是投票。对于分类任务,最终预测通过多数投票获得:
y ∗ = arg max y ∈ Y ∑ i = 1 N 1 [ y i = y ] y^* = \arg\max_{y \in \mathcal{Y}} \sum_{i=1}^{N} \mathbb{1}[y_i = y]
y ∗ = arg y ∈ Y max i = 1 ∑ N 1 [ y i = y ]
其中1 [ ⋅ ] \mathbb{1}[\cdot] 1 [ ⋅ ] 是指示函数。对于生成任务,可以使用加权投票,其中每个模型的贡献由其置信度或历史性能加权:
y ∗ = arg max y ∈ Y ∑ i = 1 N w i ⋅ 1 [ y i = y ] y^* = \arg\max_{y \in \mathcal{Y}} \sum_{i=1}^{N} w_i \cdot \mathbb{1}[y_i = y]
y ∗ = arg y ∈ Y max i = 1 ∑ N w i ⋅ 1 [ y i = y ]
其中w i w_i w i 是模型M i M_i M i 的权重,满足∑ i = 1 N w i = 1 \sum_{i=1}^{N} w_i = 1 ∑ i = 1 N w i = 1 且w i ≥ 0 w_i \geq 0 w i ≥ 0 。
更复杂的集成方法涉及概率平均。如果每个模型输出概率分布P i ( y ∣ x ) P_i(y|x) P i ( y ∣ x ) ,集成分布可以计算为:
P ens ( y ∣ x ) = ∑ i = 1 N w i P i ( y ∣ x ) P_{\text{ens}}(y|x) = \sum_{i=1}^{N} w_i P_i(y|x)
P ens ( y ∣ x ) = i = 1 ∑ N w i P i ( y ∣ x )
或者使用几何平均:
P ens ( y ∣ x ) ∝ ∏ i = 1 N P i ( y ∣ x ) w i P_{\text{ens}}(y|x) \propto \prod_{i=1}^{N} P_i(y|x)^{w_i}
P ens ( y ∣ x ) ∝ i = 1 ∏ N P i ( y ∣ x ) w i
Luo等人设计的加权拜占庭容错共识是一个更高级的集成例子。在这个框架中,权重w i w_i w i 不仅基于模型的性能,还基于其可信度:
w i = α ⋅ q i + β ⋅ t i w_i = \alpha \cdot q_i + \beta \cdot t_i
w i = α ⋅ q i + β ⋅ t i
其中q i q_i q i 是模型i i i 的质量分数,t i t_i t i 是其信任值,α + β = 1 \alpha + \beta = 1 α + β = 1 是平衡参数。这个设计显著增强了高生成能力和高可信度大语言模型的投票权,同时削弱了恶意大语言模型的影响。
表II详细解读 :论文第5页的表II提供了按协作类型对多大语言模型工作进行比较的全面概览。该表采用三列结构:参考文献、贡献和关键技术。表中用三种符号标记协作类型:■表示合作协同,♦表示竞争对抗,●表示集成整合。例如Owens等人的工作使用多模型交互和偏见检测实现了中心化和去中心化的多大语言模型对话框架以减少偏见;Dai等人开发的在线多大语言模型选择算法采用多臂赌博机算法动态平衡性能和成本;Feng等人的多大语言模型竞争通过多模型反思推理和置信度估计改善问答准确性并有效减少幻觉。这个表格清晰地展示了不同协作模式在实际系统中的实现方式和技术特点。
从传统AI到多大语言模型的演进分析
传统AI模型的局限性剖析
传统AI模型包括经典机器学习算法和紧凑型神经网络,为特定任务量身定制。每个模型在明确定义的数据集上训练以执行特定功能,如目标检测、异常检测或信号分类。常见设计包括决策树、支持向量机以及轻量级卷积神经网络或浅层多层感知器。这些模型被选择是因为它们能在资源有限的设备上高效运行。
从数学角度看,传统AI模型可以表示为从输入空间到输出空间的映射f : X → Y f: \mathcal{X} \rightarrow \mathcal{Y} f : X → Y 。对于监督学习任务,模型通过最小化经验风险来训练:
f ^ = arg min f ∈ F 1 n ∑ i = 1 n L ( f ( x i ) , y i ) + λ R ( f ) \hat{f} = \arg\min_{f \in \mathcal{F}} \frac{1}{n}\sum_{i=1}^{n} L(f(x_i), y_i) + \lambda R(f)
f ^ = arg f ∈ F min n 1 i = 1 ∑ n L ( f ( x i ) , y i ) + λ R ( f )
其中{ ( x i , y i ) } i = 1 n \{(x_i, y_i)\}_{i=1}^{n} { ( x i , y i ) } i = 1 n 是训练数据,L L L 是损失函数,R ( f ) R(f) R ( f ) 是正则化项,λ \lambda λ 是正则化参数,F \mathcal{F} F 是假设空间。
这种设计理念的核心是保持模型狭窄和针对目标任务优化,使用手工特征或专门的网络架构来最大化目标域内的准确性。然而这些模型的推理和泛化能力是有限的。它们无法推断超出训练分布的情况,也没有能力处理超出狭窄授权范围的任务。这可以用泛化边界来量化。根据统计学习理论,模型的泛化误差可以用Vapnik-Chervonenkis维度d V C d_{VC} d V C 来界定:
P ( ∣ Error train − Error true ∣ > ϵ ) ≤ 2 ⋅ 2 d V C ⋅ e − n ϵ 2 8 P(|\text{Error}_{\text{train}} - \text{Error}_{\text{true}}| > \epsilon) \leq 2 \cdot 2^{d_{VC}} \cdot e^{-\frac{n\epsilon^2}{8}}
P ( ∣ Error train − Error true ∣ > ϵ ) ≤ 2 ⋅ 2 d V C ⋅ e − 8 n ϵ 2
对于固定的d V C d_{VC} d V C (即固定容量的模型),只有当测试分布与训练分布相似时,这个界才有意义。
单一大语言模型的突破与挑战
单一大语言模型代表了向通用智能的重大飞跃。这些基于Transformer架构的模型具有深层自注意力机制和超大参数量(通常从几十亿到数千亿参数),在海量文本或多模态语料库上进行预训练。
Transformer的核心是自注意力机制,对于输入序列X = [ x 1 , x 2 , … , x L ] \mathbf{X} = [x_1, x_2, \ldots, x_L] X = [ x 1 , x 2 , … , x L ] ,自注意力计算为:
Attention ( Q , K , V ) = softmax ( Q K T d k ) V \text{Attention}(\mathbf{Q}, \mathbf{K}, \mathbf{V}) = \text{softmax}\left(\frac{\mathbf{Q}\mathbf{K}^T}{\sqrt{d_k}}\right)\mathbf{V}
Attention ( Q , K , V ) = softmax ( d k Q K T ) V
其中Q = X W Q \mathbf{Q} = \mathbf{X}\mathbf{W}_Q Q = X W Q ,K = X W K \mathbf{K} = \mathbf{X}\mathbf{W}_K K = X W K ,V = X W V \mathbf{V} = \mathbf{X}\mathbf{W}_V V = X W V 分别是查询、键和值矩阵,W Q , W K , W V \mathbf{W}_Q, \mathbf{W}_K, \mathbf{W}_V W Q , W K , W V 是可学习的权重矩阵,d k d_k d k 是键向量的维度。
多头注意力机制通过并行运行h h h 个注意力头来捕获不同的表示子空间:
MultiHead ( Q , K , V ) = Concat ( head 1 , … , head h ) W O \text{MultiHead}(\mathbf{Q}, \mathbf{K}, \mathbf{V}) = \text{Concat}(\text{head}_1, \ldots, \text{head}_h)\mathbf{W}_O
MultiHead ( Q , K , V ) = Concat ( head 1 , … , head h ) W O
其中head i = Attention ( Q W i Q , K W i K , V W i V ) \text{head}_i = \text{Attention}(\mathbf{Q}\mathbf{W}_i^Q, \mathbf{K}\mathbf{W}_i^K, \mathbf{V}\mathbf{W}_i^V) head i = Attention ( Q W i Q , K W i K , V W i V ) 。
大语言模型通过在大规模语料库D \mathcal{D} D 上最大化似然来预训练:
θ ∗ = arg max θ ∑ x ∈ D log P θ ( x ) = arg max θ ∑ x ∈ D ∑ t = 1 ∣ x ∣ log P θ ( x t ∣ x < t ) \theta^* = \arg\max_{\theta} \sum_{x \in \mathcal{D}} \log P_{\theta}(x) = \arg\max_{\theta} \sum_{x \in \mathcal{D}} \sum_{t=1}^{|x|} \log P_{\theta}(x_t | x_{<t})
θ ∗ = arg θ max x ∈ D ∑ log P θ ( x ) = arg θ max x ∈ D ∑ t = 1 ∑ ∣ x ∣ log P θ ( x t ∣ x < t )
这种无监督或自监督学习使模型学习到语言和世界知识的广泛统计表示,其基本设计理念利用大规模的数据,赋予模型远超任何单一狭窄任务模型的处理能力。
单一大语言模型在边缘可以作为多功能AI代理,通过提示或少样本示例处理众多任务,而不需要针对任务的重新编程。它们展现出一定程度的通用推理能力,能够通过从训练知识中提取类比示例来解决从未明确训练过的问题。然而在边缘硬件上部署单一大语言模型具有挑战性,因为资源需求巨大。这些模型通常需要数十GB的内存和显著的计算能力,例如数百亿参数的模型需要专门的硬件加速器。
尽管单一大语言模型能力卓越,但在边缘计算中的使用暴露出关键局限。个体模型通常会产生幻觉,由于训练数据不完整或架构约束而生成有偏见或虚假的内容。这些问题不仅阻碍了在动态网络设置中的可靠性和适应性,还突出了单模型方法作为潜在瓶颈的问题。
多大语言模型系统的优势量化分析
图3深度解读 :论文第6-7页的图3通过详细的对比表格和示例案例,展示了传统AI、单一大语言模型和多大语言模型系统之间的本质差异。图的顶部展示了三个模型类别的架构与特征概览。左侧的传统AI模型部分列出了最小资源占用、快速确定性性能等优势,但也指出了无需重新训练就无法适应新任务的局限。中间的单一大语言模型部分强调了适用于延迟敏感场景和能够为用户提供快速响应的特点,同时指出存在生成偏见且难以泛化到各种复杂场景的问题。右侧的多大语言模型部分突出了通过大语言模型协作具有强大推理能力且能泛化到各种场景的优势,但也承认更多大语言模型部署开销和大语言模型之间协调成本的挑战。
图的中部展示了四个典型案例,每个都附有访问链接。Deepseek被描述为具有低训练成本和深度思考能力的大语言模型;Kimi是首个支持超过20万字文本阅读的大语言模型;ChatGPT是OpenAI发布的基于大语言模型技术的聊天机器人;WizardLM则具有复杂对话和推理能力。右侧的多大语言模型案例包括FlowiseAI(可调用多个大语言模型协助用户开发应用程序的开源平台)、GuardrailsAI(使用多个大语言模型构建的AIGC管理平台)、CrewAI(由多个大语言模型构建的AI代理框架)和VerifAI(用于智能排序多个大语言模型生成结果的开源框架)。
图的底部展示了三种传统AI算法的示意图:支持向量机(一种稀疏且鲁棒的分类器)、卷积神经网络(包含卷积计算的前馈神经网络类型)和多层感知器(具有前向结构的人工神经网络)。整个图表通过视觉化的方式清晰地传达了从专用狭窄模型到通用智能再到协作智能的演进路径。
多大语言模型系统的能力源于其成员模型的多样性和专业化。通过利用每个大语言模型的不同知识库和优势,这样的系统可以覆盖比任何单一模型更广泛的任务或更复杂的任务空间。这种优势可以从信息论的角度进行量化。考虑一个具有N N N 个模型的系统,每个模型具有不同的知识分布P i ( y ∣ x ) P_i(y|x) P i ( y ∣ x ) 。系统的总知识多样性可以用互信息来衡量:
D ( M ) = ∑ i = 1 N H ( Y ∣ X , M i ) − H ( Y ∣ X , M ) \mathcal{D}(\mathcal{M}) = \sum_{i=1}^{N} H(Y|X, M_i) - H(Y|X, \mathcal{M})
D ( M ) = i = 1 ∑ N H ( Y ∣ X , M i ) − H ( Y ∣ X , M )
其中H ( Y ∣ X , M i ) H(Y|X, M_i) H ( Y ∣ X , M i ) 是给定模型M i M_i M i 时Y Y Y 的条件熵,H ( Y ∣ X , M ) H(Y|X, \mathcal{M}) H ( Y ∣ X , M ) 是给定整个系统时的条件熵。这个度量捕获了系统相对于个体模型减少的不确定性。
在可扩展性和灵活性方面,与单一大语言模型相比,扩展通常意味着重新训练或微调整个模型,对于多大语言模型系统,可以在不重新训练整个系统的情况下添加或替换新模型,从而适应新任务。这可以建模为模块化函数近似。假设目标函数为f ∗ : X → Y f^*: \mathcal{X} \rightarrow \mathcal{Y} f ∗ : X → Y ,多大语言模型系统可以表示为:
f ^ ( ⋅ ) = A ( { M i ( ⋅ ) } i = 1 N ) \hat{f}(\cdot) = \mathcal{A}(\{M_i(\cdot)\}_{i=1}^{N})
f ^ ( ⋅ ) = A ( { M i ( ⋅ ) } i = 1 N )
添加新模型M N + 1 M_{N+1} M N + 1 只需要学习适当的聚合权重,而不是重新训练所有模型。
在鲁棒性和容错能力方面,多大语言模型系统本质上引入了冗余和专业化。考虑每个模型的错误率ϵ i \epsilon_i ϵ i ,假设错误是独立的,通过多数投票,系统错误率为:
ϵ sys = ∑ k > N / 2 ( N k ) ϵ k ( 1 − ϵ ) N − k \epsilon_{\text{sys}} = \sum_{k > N/2} \binom{N}{k} \epsilon^k (1-\epsilon)^{N-k}
ϵ sys = k > N / 2 ∑ ( k N ) ϵ k ( 1 − ϵ ) N − k
其中ϵ = 1 N ∑ i = 1 N ϵ i \epsilon = \frac{1}{N}\sum_{i=1}^{N} \epsilon_i ϵ = N 1 ∑ i = 1 N ϵ i 是平均错误率。对于ϵ < 0.5 \epsilon < 0.5 ϵ < 0 . 5 且N N N 足够大,ϵ sys ≪ ϵ \epsilon_{\text{sys}} \ll \epsilon ϵ sys ≪ ϵ ,展示了集成的鲁棒性。
边缘与云端多大语言模型部署的差异化策略
多大语言模型系统的移动边缘部署与云端部署在多个关键维度上存在本质差异,这些差异不仅影响系统架构设计,还决定了性能优化的策略选择。
推理延迟的量化分析
推理延迟在边缘通常更低,因为数据在源附近处理,避免了到远程数据中心的长网络回程。总延迟可以分解为:
Latency total = Latency compute + Latency network \text{Latency}_{\text{total}} = \text{Latency}_{\text{compute}} + \text{Latency}_{\text{network}}
Latency total = Latency compute + Latency network
对于边缘部署:
Latency edge = Latency compute local + Latency network LAN \text{Latency}_{\text{edge}} = \text{Latency}_{\text{compute}}^{\text{local}} + \text{Latency}_{\text{network}}^{\text{LAN}}
Latency edge = Latency compute local + Latency network LAN
对于云端部署:
Latency cloud = Latency compute cloud + 2 ⋅ Latency network WAN \text{Latency}_{\text{cloud}} = \text{Latency}_{\text{compute}}^{\text{cloud}} + 2 \cdot \text{Latency}_{\text{network}}^{\text{WAN}}
Latency cloud = Latency compute cloud + 2 ⋅ Latency network WAN
其中Latency network WAN ≫ Latency network LAN \text{Latency}_{\text{network}}^{\text{WAN}} \gg \text{Latency}_{\text{network}}^{\text{LAN}} Latency network WAN ≫ Latency network LAN ,因为广域网延迟通常比局域网延迟高一到两个数量级。即使Latency compute local > Latency compute cloud \text{Latency}_{\text{compute}}^{\text{local}} > \text{Latency}_{\text{compute}}^{\text{cloud}} Latency compute local > Latency compute cloud (因为边缘设备计算能力较弱),网络延迟的差异通常主导总体延迟,使边缘部署在延迟敏感应用中更具优势。
资源约束的优化建模
资源约束在边缘环境中更为明显。边缘服务器具有有限的计算、内存和电力。例如一个70亿参数的LLaMA 2模型在全精度下需要约28GB内存(假设每个参数使用4字节的FP32表示):
Memory model = N params × Bytes per_param = 7 × 1 0 9 × 4 = 28 GB \text{Memory}_{\text{model}} = N_{\text{params}} \times \text{Bytes}_{\text{per\_param}} = 7 \times 10^9 \times 4 = 28 \text{ GB}
Memory model = N params × Bytes per_param = 7 × 1 0 9 × 4 = 2 8 GB
这超过了大多数边缘设备的容量。通过量化到INT8(每参数1字节),内存需求可以降低到:
Memory quantized = 7 × 1 0 9 × 1 = 7 GB \text{Memory}_{\text{quantized}} = 7 \times 10^9 \times 1 = 7 \text{ GB}
Memory quantized = 7 × 1 0 9 × 1 = 7 GB
这仍然很大,但对于某些边缘服务器来说是可行的。
资源分配可以表述为一个优化问题。给定N N N 个模型和D D D 个设备,目标是最小化延迟同时满足资源约束:
min X max i = 1 D Latency i ( X ) \min_{\mathbf{X}} \max_{i=1}^{D} \text{Latency}_i(\mathbf{X})
X min i = 1 max D Latency i ( X )
受约束于:
∑ j = 1 N x i j ⋅ Memory j ≤ Capacity i mem , ∀ i \sum_{j=1}^{N} x_{ij} \cdot \text{Memory}_j \leq \text{Capacity}_i^{\text{mem}}, \quad \forall i
j = 1 ∑ N x i j ⋅ Memory j ≤ Capacity i mem , ∀ i
∑ j = 1 N x i j ⋅ Compute j ≤ Capacity i comp , ∀ i \sum_{j=1}^{N} x_{ij} \cdot \text{Compute}_j \leq \text{Capacity}_i^{\text{comp}}, \quad \forall i
j = 1 ∑ N x i j ⋅ Compute j ≤ Capacity i comp , ∀ i
∑ i = 1 D x i j = 1 , ∀ j \sum_{i=1}^{D} x_{ij} = 1, \quad \forall j
i = 1 ∑ D x i j = 1 , ∀ j
x i j ∈ { 0 , 1 } , ∀ i , j x_{ij} \in \{0, 1\}, \quad \forall i, j
x i j ∈ { 0 , 1 } , ∀ i , j
其中x i j x_{ij} x i j 是二进制变量,指示模型j j j 是否部署在设备i i i 上,Memory j \text{Memory}_j Memory j 和Compute j \text{Compute}_j Compute j 分别是模型j j j 的内存和计算需求,Capacity i mem \text{Capacity}_i^{\text{mem}} Capacity i mem 和Capacity i comp \text{Capacity}_i^{\text{comp}} Capacity i comp 是设备i i i 的容量。
系统架构的拓扑设计
系统架构在边缘场景中往往是分布式的。模型推理可能在多个边缘节点之间拆分,或者在设备和边缘服务器之间协作执行。这可以用图论来建模。考虑一个网络图G = ( V , E ) \mathcal{G} = (\mathcal{V}, \mathcal{E}) G = ( V , E ) ,其中V \mathcal{V} V 是节点集(设备和服务器),E \mathcal{E} E 是边集(通信链接)。每条边( i , j ) ∈ E (i, j) \in \mathcal{E} ( i , j ) ∈ E 具有带宽b i j b_{ij} b i j 和延迟l i j l_{ij} l i j 。
模型分区可以表示为将模型层{ L 1 , L 2 , … , L K } \{L_1, L_2, \ldots, L_K\} { L 1 , L 2 , … , L K } 映射到节点π : { 1 , … , K } → V \pi: \{1, \ldots, K\} \rightarrow \mathcal{V} π : { 1 , … , K } → V 。通信成本为:
Cost comm ( π ) = ∑ k = 1 K − 1 1 [ π ( k ) ≠ π ( k + 1 ) ] ⋅ ( ∣ A k ∣ b π ( k ) , π ( k + 1 ) + l π ( k ) , π ( k + 1 ) ) \text{Cost}_{\text{comm}}(\pi) = \sum_{k=1}^{K-1} \mathbb{1}[\pi(k) \neq \pi(k+1)] \cdot \left(\frac{|A_k|}{b_{\pi(k), \pi(k+1)}} + l_{\pi(k), \pi(k+1)}\right)
Cost comm ( π ) = k = 1 ∑ K − 1 1 [ π ( k ) = π ( k + 1 ) ] ⋅ ( b π ( k ) , π ( k + 1 ) ∣ A k ∣ + l π ( k ) , π ( k + 1 ) )
其中∣ A k ∣ |A_k| ∣ A k ∣ 是层k k k 和k + 1 k+1 k + 1 之间传输的激活数据大小,1 [ ⋅ ] \mathbb{1}[\cdot] 1 [ ⋅ ] 是指示函数。
云端架构通常是中心化的,所有计算在一个位置进行,可以简化为:
Cost cloud = Latency compute ( all layers ) \text{Cost}_{\text{cloud}} = \text{Latency}_{\text{compute}}(\text{all layers})
Cost cloud = Latency compute ( all layers )
这些架构差异导致了不同的优化策略和性能特征。
支撑多大语言模型边缘部署的关键技术
模型压缩的理论与实践
图5架构解读 :论文第11页的图5展示了大语言模型在6G移动边缘计算中集成分裂训练的完整框架。图的上方显示了预训练的基础模型(GPT-3、PALM、LLaMA等)存储在中央云中。图的中心部分是6G边缘云,连接着多个无线接入网络。左侧展示了边缘推理的三种方式:分裂推理、参数共享推理和模型压缩。右侧展示了边缘训练的三种方式:分裂学习、参数高效推理和量化训练。图中使用不同颜色的圆圈表示全精度参数(实心)、量化参数(斜纹)和冻结参数(空心)。底部展示了两个具体应用:左边是机器人控制应用(为残疾奶奶准备晚餐的场景),右边是医疗保健应用(基于健康数据提供建议和胰岛素管理的场景)。整个图表清晰地展示了适配器协同训练方法如何保持用户数据在设备上,同时大幅削减通信,因为只交换小型适配器权重或令牌向量。
模型压缩旨在减少大语言模型的内存占用和计算复杂度,同时保持性能。主要技术包括知识蒸馏、量化、剪枝和低秩分解。
知识蒸馏的数学框架
知识蒸馏通过训练一个小型学生模型M S M_S M S 来模仿大型教师模型M T M_T M T 的行为。给定输入x x x ,教师模型产生softmax输出:
p T = softmax ( z T / τ ) = exp ( z T / τ ) ∑ j exp ( z T , j / τ ) \mathbf{p}_T = \text{softmax}(\mathbf{z}_T / \tau) = \frac{\exp(\mathbf{z}_T / \tau)}{\sum_j \exp(z_{T,j} / \tau)}
p T = softmax ( z T / τ ) = ∑ j exp ( z T , j / τ ) exp ( z T / τ )
其中z T \mathbf{z}_T z T 是教师的logits,τ \tau τ 是温度参数。学生模型类似地产生p S \mathbf{p}_S p S 。
蒸馏损失结合了与真实标签的交叉熵和与教师软标签的Kullback-Leibler散度:
L distill = ( 1 − α ) L CE ( y , p S ) + α τ 2 KL ( p T ∥ p S ) \mathcal{L}_{\text{distill}} = (1-\alpha) \mathcal{L}_{\text{CE}}(y, \mathbf{p}_S) + \alpha \tau^2 \text{KL}(\mathbf{p}_T \| \mathbf{p}_S)
L distill = ( 1 − α ) L CE ( y , p S ) + α τ 2 KL ( p T ∥ p S )
其中α \alpha α 是平衡参数,τ 2 \tau^2 τ 2 是温度缩放因子。KL散度定义为:
KL ( p T ∥ p S ) = ∑ j p T , j log p T , j p S , j \text{KL}(\mathbf{p}_T \| \mathbf{p}_S) = \sum_j p_{T,j} \log \frac{p_{T,j}}{p_{S,j}}
KL ( p T ∥ p S ) = j ∑ p T , j log p S , j p T , j
DistilBERT通过这种方法将BERT的参数量减少40%,同时保留97%的性能。TinyBERT更进一步,采用多阶段蒸馏,不仅匹配输出分布,还匹配中间层的注意力矩阵和隐藏状态:
L hidden = 1 L ∑ l = 1 L ∥ H S ( l ) W l − H T ( l ) ∥ F 2 \mathcal{L}_{\text{hidden}} = \frac{1}{L} \sum_{l=1}^{L} \|\mathbf{H}_S^{(l)} \mathbf{W}_l - \mathbf{H}_T^{(l)}\|_F^2
L hidden = L 1 l = 1 ∑ L ∥ H S ( l ) W l − H T ( l ) ∥ F 2
L attn = 1 L ∑ l = 1 L ∥ A S ( l ) − A T ( l ) ∥ F 2 \mathcal{L}_{\text{attn}} = \frac{1}{L} \sum_{l=1}^{L} \|\mathbf{A}_S^{(l)} - \mathbf{A}_T^{(l)}\|_F^2
L attn = L 1 l = 1 ∑ L ∥ A S ( l ) − A T ( l ) ∥ F 2
其中H ( l ) \mathbf{H}^{(l)} H ( l ) 和A ( l ) \mathbf{A}^{(l)} A ( l ) 分别是第l l l 层的隐藏状态和注意力矩阵,W l \mathbf{W}_l W l 是对齐矩阵,∥ ⋅ ∥ F \|\cdot\|_F ∥ ⋅ ∥ F 是Frobenius范数。
量化技术的精度分析
量化将模型权重和激活从浮点表示转换为低精度整数表示。给定一个浮点权重矩阵W ∈ R m × n \mathbf{W} \in \mathbb{R}^{m \times n} W ∈ R m × n ,量化函数为:
W q = round ( W − z s ) \mathbf{W}_q = \text{round}\left(\frac{\mathbf{W} - z}{s}\right)
W q = round ( s W − z )
其中s s s 是缩放因子,z z z 是零点,round是舍入函数。逆量化为:
W ^ = s ⋅ W q + z \hat{\mathbf{W}} = s \cdot \mathbf{W}_q + z
W ^ = s ⋅ W q + z
对于对称量化(z = 0 z = 0 z = 0 ),缩放因子计算为:
s = max ( ∣ W ∣ ) 2 b − 1 − 1 s = \frac{\max(|\mathbf{W}|)}{2^{b-1} - 1}
s = 2 b − 1 − 1 max ( ∣ W ∣ )
其中b b b 是量化位数。从FP32(32位)到INT8(8位)量化可以将内存占用减少到原来的1 / 4 1/4 1 / 4 ,同时将计算速度提高2 2 2 到4 4 4 倍。
量化引入的误差可以分析为:
E [ ( W i j − W ^ i j ) 2 ] = s 2 12 \mathbb{E}[(W_{ij} - \hat{W}_{ij})^2] = \frac{s^2}{12}
E [ ( W i j − W ^ i j ) 2 ] = 1 2 s 2
这是均匀量化噪声的方差。对于b b b 位量化:
s ≈ 2 max ( ∣ W i j ∣ ) 2 b s \approx \frac{2 \max(|W_{ij}|)}{2^b}
s ≈ 2 b 2 max ( ∣ W i j ∣ )
因此均方误差随着位数增加指数衰减:
MSE ≈ max ( ∣ W i j ∣ ) 2 3 ⋅ 4 b \text{MSE} \approx \frac{\max(|W_{ij}|)^2}{3 \cdot 4^b}
MSE ≈ 3 ⋅ 4 b max ( ∣ W i j ∣ ) 2
剪枝策略的优化理论
剪枝通过移除不重要的权重或神经元来减少模型大小。重要性可以用多种标准衡量。基于幅度的剪枝使用绝对值:
I ( w i j ) = ∣ w i j ∣ \mathcal{I}(w_{ij}) = |w_{ij}|
I ( w i j ) = ∣ w i j ∣
权重w i j w_{ij} w i j 如果I ( w i j ) < τ \mathcal{I}(w_{ij}) < \tau I ( w i j ) < τ 则被剪枝,其中τ \tau τ 是阈值。
更复杂的方法使用二阶信息。给定损失函数L \mathcal{L} L ,移除权重w i j w_{ij} w i j 导致的损失变化的泰勒展开为:
Δ L ≈ ∂ L ∂ w i j Δ w i j + 1 2 ∂ 2 L ∂ w i j 2 ( Δ w i j ) 2 \Delta \mathcal{L} \approx \frac{\partial \mathcal{L}}{\partial w_{ij}} \Delta w_{ij} + \frac{1}{2} \frac{\partial^2 \mathcal{L}}{\partial w_{ij}^2} (\Delta w_{ij})^2
Δ L ≈ ∂ w i j ∂ L Δ w i j + 2 1 ∂ w i j 2 ∂ 2 L ( Δ w i j ) 2
对于剪枝,Δ w i j = − w i j \Delta w_{ij} = -w_{ij} Δ w i j = − w i j ,所以:
Δ L ≈ − ∂ L ∂ w i j w i j + 1 2 H i i w i j 2 \Delta \mathcal{L} \approx -\frac{\partial \mathcal{L}}{\partial w_{ij}} w_{ij} + \frac{1}{2} H_{ii} w_{ij}^2
Δ L ≈ − ∂ w i j ∂ L w i j + 2 1 H i i w i j 2
其中H i i = ∂ 2 L ∂ w i j 2 H_{ii} = \frac{\partial^2 \mathcal{L}}{\partial w_{ij}^2} H i i = ∂ w i j 2 ∂ 2 L 是Hessian矩阵的对角元素。权重的显著性得分为:
I ( w i j ) = ∣ ∂ L ∂ w i j w i j ∣ + 1 2 H i i w i j 2 \mathcal{I}(w_{ij}) = \left|\frac{\partial \mathcal{L}}{\partial w_{ij}} w_{ij}\right| + \frac{1}{2} H_{ii} w_{ij}^2
I ( w i j ) = ∣ ∣ ∣ ∣ ∣ ∂ w i j ∂ L w i j ∣ ∣ ∣ ∣ ∣ + 2 1 H i i w i j 2
结构化剪枝移除整个神经元或通道。对于神经元j j j ,其重要性可以定义为:
I ( j ) = ∑ i ∣ w i j ∣ \mathcal{I}(j) = \sum_i |w_{ij}|
I ( j ) = i ∑ ∣ w i j ∣
或使用激活统计:
I ( j ) = E x ∼ D [ ∣ h j ( x ) ∣ ] \mathcal{I}(j) = \mathbb{E}_{x \sim \mathcal{D}}[|h_j(x)|]
I ( j ) = E x ∼ D [ ∣ h j ( x ) ∣ ]
其中h j ( x ) h_j(x) h j ( x ) 是神经元j j j 对输入x x x 的激活。
低秩分解的矩阵理论
低秩分解将大型权重矩阵分解为较小矩阵的乘积。给定权重矩阵W ∈ R m × n \mathbf{W} \in \mathbb{R}^{m \times n} W ∈ R m × n (假设m , n ≫ r m, n \gg r m , n ≫ r ),可以近似为:
W ≈ A B \mathbf{W} \approx \mathbf{A} \mathbf{B}
W ≈ A B
其中A ∈ R m × r \mathbf{A} \in \mathbb{R}^{m \times r} A ∈ R m × r 和B ∈ R r × n \mathbf{B} \in \mathbb{R}^{r \times n} B ∈ R r × n ,r ≪ min ( m , n ) r \ll \min(m, n) r ≪ min ( m , n ) 是秩。
参数数量从m n mn m n 减少到( m + n ) r (m + n)r ( m + n ) r 。压缩比为:
Compression ratio = m n ( m + n ) r \text{Compression ratio} = \frac{mn}{(m + n)r}
Compression ratio = ( m + n ) r m n
对于m = n = 1024 m = n = 1024 m = n = 1 0 2 4 和r = 64 r = 64 r = 6 4 :
Compression ratio = 102 4 2 ( 1024 + 1024 ) × 64 ≈ 8 \text{Compression ratio} = \frac{1024^2}{(1024 + 1024) \times 64} \approx 8
Compression ratio = ( 1 0 2 4 + 1 0 2 4 ) × 6 4 1 0 2 4 2 ≈ 8
最优分解可以通过奇异值分解(SVD)获得:
W = U Σ V T \mathbf{W} = \mathbf{U} \mathbf{\Sigma} \mathbf{V}^T
W = U Σ V T
保留前r r r 个最大奇异值:
W r = U : , 1 : r Σ 1 : r , 1 : r V : , 1 : r T \mathbf{W}_r = \mathbf{U}_{:,1:r} \mathbf{\Sigma}_{1:r,1:r} \mathbf{V}_{:,1:r}^T
W r = U : , 1 : r Σ 1 : r , 1 : r V : , 1 : r T
Frobenius范数误差为:
∥ W − W r ∥ F = ∑ i = r + 1 min ( m , n ) σ i 2 \|\mathbf{W} - \mathbf{W}_r\|_F = \sqrt{\sum_{i=r+1}^{\min(m,n)} \sigma_i^2}
∥ W − W r ∥ F = i = r + 1 ∑ m i n ( m , n ) σ i 2
其中σ i \sigma_i σ i 是第i i i 个奇异值。
ALBERT使用因式分解嵌入,将嵌入矩阵E ∈ R V × H \mathbf{E} \in \mathbb{R}^{V \times H} E ∈ R V × H (V V V 是词汇量,H H H 是隐藏维度)分解为:
E = E 1 E 2 \mathbf{E} = \mathbf{E}_1 \mathbf{E}_2
E = E 1 E 2
其中E 1 ∈ R V × E \mathbf{E}_1 \in \mathbb{R}^{V \times E} E 1 ∈ R V × E 和E 2 ∈ R E × H \mathbf{E}_2 \in \mathbb{R}^{E \times H} E 2 ∈ R E × H ,E ≪ H E \ll H E ≪ H 。参数从V × H V \times H V × H 减少到V × E + E × H V \times E + E \times H V × E + E × H 。
动态资源编排的优化算法
图6系统架构解读 :论文第12页的图6详细展示了EdgeShard框架的完整工作流程。图分为三个主要部分:左侧是"设备和模型配置"阶段,包括大语言模型模型的三个关键指标(层执行时间、层输出大小、层内存消耗)以及两个设备约束(网络带宽和设备内存容量);中间是"推理任务调度"阶段,展示了联合设备选择和模型分区的优化过程;右侧是"协作推理"阶段,展示了两种推理模式——顺序推理(按层依次处理)和流水线并行推理(多设备并行处理)。图中使用不同颜色的条形块表示大语言模型的不同层,箭头表示数据流动和处理顺序。图的底部显示了四个设备节点(笔记本电脑、台式机、云服务器和服务器集群),它们通过网络连接进行协作推理。这个框架通过动态规划算法来分配层到设备,以最小化延迟并最大化吞吐量。
动态资源编排旨在将计算任务和模型组件智能地分配到异构边缘设备上,以优化延迟、能耗和准确性的综合指标。
早期退出机制的决策理论
早期退出允许模型在中间层终止推理,如果当前预测的置信度足够高。对于L L L 层模型,每层l l l 都有一个分类器f l f_l f l 和置信度估计器c l c_l c l 。
决策策略可以表述为阈值策略:
Exit at layer l if c l ( f l ( x ) ) > τ l \text{Exit at layer } l \text{ if } c_l(f_l(x)) > \tau_l
Exit at layer l if c l ( f l ( x ) ) > τ l
其中τ l \tau_l τ l 是第l l l 层的置信度阈值。最优阈值可以通过优化延迟-准确性权衡来确定:
min { τ l } l = 1 L E x ∼ D [ Latency ( x , { τ l } ) ] + λ E x ∼ D [ Error ( x , { τ l } ) ] \min_{\{\tau_l\}_{l=1}^{L}} \mathbb{E}_{x \sim \mathcal{D}} [\text{Latency}(x, \{\tau_l\})] + \lambda \mathbb{E}_{x \sim \mathcal{D}} [\text{Error}(x, \{\tau_l\})]
{ τ l } l = 1 L min E x ∼ D [ Latency ( x , { τ l } ) ] + λ E x ∼ D [ Error ( x , { τ l } ) ]
其中λ \lambda λ 是权衡参数。
EdgeBERT使用基于熵的策略。预测熵定义为:
H ( f l ( x ) ) = − ∑ k = 1 K p k log p k H(f_l(x)) = -\sum_{k=1}^{K} p_k \log p_k
H ( f l ( x ) ) = − k = 1 ∑ K p k log p k
其中p k p_k p k 是类别k k k 的预测概率。低熵表示高置信度,所以退出条件是:
H ( f l ( x ) ) < τ entropy H(f_l(x)) < \tau_{\text{entropy}}
H ( f l ( x ) ) < τ entropy
期望延迟为:
E [ Latency ] = ∑ l = 1 L P ( exit at l ) ⋅ t l \mathbb{E}[\text{Latency}] = \sum_{l=1}^{L} P(\text{exit at } l) \cdot t_l
E [ Latency ] = l = 1 ∑ L P ( exit at l ) ⋅ t l
其中t l t_l t l 是计算到第l l l 层的累积时间。
级联推理的概率模型
级联推理使用一系列逐渐更强大的模型,从小型模型开始,仅在必要时升级到更大的模型。考虑一个级联{ M 1 , M 2 , … , M K } \{M_1, M_2, \ldots, M_K\} { M 1 , M 2 , … , M K } ,其中M k M_k M k 比M k − 1 M_{k-1} M k − 1 更强大但也更昂贵。
对于输入x x x ,首先查询M 1 M_1 M 1 。如果其预测置信度超过阈值τ 1 \tau_1 τ 1 ,则返回该预测;否则查询M 2 M_2 M 2 ,依此类推。形式上:
y ^ ( x ) = { y 1 if c 1 ( x ) > τ 1 y 2 if c 1 ( x ) ≤ τ 1 and c 2 ( x ) > τ 2 ⋮ y K otherwise \hat{y}(x) = \begin{cases}
y_1 & \text{if } c_1(x) > \tau_1 \\
y_2 & \text{if } c_1(x) \leq \tau_1 \text{ and } c_2(x) > \tau_2 \\
\vdots \\
y_K & \text{otherwise}
\end{cases} y ^ ( x ) = ⎩ ⎪ ⎪ ⎪ ⎪ ⎪ ⎨ ⎪ ⎪ ⎪ ⎪ ⎪ ⎧ y 1 y 2 ⋮ y K if c 1 ( x ) > τ 1 if c 1 ( x ) ≤ τ 1 and c 2 ( x ) > τ 2 otherwise
成本可以表示为:
Cost ( x ) = ∑ k = 1 K 1 [ query M k ] ⋅ Cost k \text{Cost}(x) = \sum_{k=1}^{K} \mathbb{1}[\text{query } M_k] \cdot \text{Cost}_k
Cost ( x ) = k = 1 ∑ K 1 [ query M k ] ⋅ Cost k
其中1 [ query M k ] \mathbb{1}[\text{query } M_k] 1 [ query M k ] 指示是否查询模型k k k 。
Agreement-Based Cascading(ABC)使用集成一致性作为退出标准。在级别k k k ,使用N k N_k N k 个模型的集成。如果至少m m m 个模型同意一个答案,则退出:
Exit at level k if max y ∑ i = 1 N k 1 [ y i = y ] ≥ m \text{Exit at level } k \text{ if } \max_y \sum_{i=1}^{N_k} \mathbb{1}[y_i = y] \geq m
Exit at level k if y max i = 1 ∑ N k 1 [ y i = y ] ≥ m
这确保了集成共识,从而提高了可靠性。
模型分区的动态规划算法
模型分区将大语言模型的层分布到多个设备上。给定模型的L L L 层和D D D 个设备,目标是找到最优分区来最小化端到端延迟。
设π : { 1 , … , L } → { 1 , … , D } \pi: \{1, \ldots, L\} \rightarrow \{1, \ldots, D\} π : { 1 , … , L } → { 1 , … , D } 是分区函数,π ( l ) = d \pi(l) = d π ( l ) = d 表示层l l l 部署在设备d d d 上。总延迟包括计算延迟和通信延迟:
Latency ( π ) = ∑ l = 1 L t l comp ( π ( l ) ) + ∑ l = 1 L − 1 1 [ π ( l ) ≠ π ( l + 1 ) ] ⋅ t l comm ( π ( l ) , π ( l + 1 ) ) \text{Latency}(\pi) = \sum_{l=1}^{L} t_l^{\text{comp}}(\pi(l)) + \sum_{l=1}^{L-1} \mathbb{1}[\pi(l) \neq \pi(l+1)] \cdot t_l^{\text{comm}}(\pi(l), \pi(l+1))
Latency ( π ) = l = 1 ∑ L t l comp ( π ( l ) ) + l = 1 ∑ L − 1 1 [ π ( l ) = π ( l + 1 ) ] ⋅ t l comm ( π ( l ) , π ( l + 1 ) )
其中t l comp ( d ) t_l^{\text{comp}}(d) t l comp ( d ) 是在设备d d d 上计算层l l l 的时间,t l comm ( d , d ′ ) t_l^{\text{comm}}(d, d') t l comm ( d , d ′ ) 是从设备d d d 到d ′ d' d ′ 传输层l l l 输出的时间。
这可以用动态规划求解。定义子问题DP [ l ] [ d ] \text{DP}[l][d] DP [ l ] [ d ] 为将前l l l 层部署使得层l l l 在设备d d d 上的最小延迟:
DP [ l ] [ d ] = min d ′ ∈ { 1 , … , D } [ DP [ l − 1 ] [ d ′ ] + t l comp ( d ) + 1 [ d ′ ≠ d ] ⋅ t l − 1 comm ( d ′ , d ) ] \text{DP}[l][d] = \min_{d' \in \{1, \ldots, D\}} \left[\text{DP}[l-1][d'] + t_l^{\text{comp}}(d) + \mathbb{1}[d' \neq d] \cdot t_{l-1}^{\text{comm}}(d', d)\right]
DP [ l ] [ d ] = d ′ ∈ { 1 , … , D } min [ DP [ l − 1 ] [ d ′ ] + t l comp ( d ) + 1 [ d ′ = d ] ⋅ t l − 1 comm ( d ′ , d ) ]
边界条件为DP [ 1 ] [ d ] = t 1 comp ( d ) \text{DP}[1][d] = t_1^{\text{comp}}(d) DP [ 1 ] [ d ] = t 1 comp ( d ) 。最优解为:
min d ∈ { 1 , … , D } DP [ L ] [ d ] \min_{d \in \{1, \ldots, D\}} \text{DP}[L][d]
d ∈ { 1 , … , D } min DP [ L ] [ d ]
时间复杂度为O ( L ⋅ D 2 ) O(L \cdot D^2) O ( L ⋅ D 2 ) ,对于合理的L L L 和D D D 值是可行的。
EdgeShard扩展了这个基本算法,加入了内存约束和并行执行。它制定了一个联合设备选择和模型分区问题:
min π , X max d = 1 D Latency d ( π , X ) \min_{\pi, \mathbf{X}} \max_{d=1}^{D} \text{Latency}_d(\pi, \mathbf{X})
π , X min d = 1 max D Latency d ( π , X )
受约束于:
∑ l : π ( l ) = d Memory l ≤ Capacity d , ∀ d \sum_{l: \pi(l) = d} \text{Memory}_l \leq \text{Capacity}_d, \quad \forall d
l : π ( l ) = d ∑ Memory l ≤ Capacity d , ∀ d
∑ d = 1 D x l d = 1 , ∀ l \sum_{d=1}^{D} x_{ld} = 1, \quad \forall l
d = 1 ∑ D x l d = 1 , ∀ l
x l d ∈ { 0 , 1 } , ∀ l , d x_{ld} \in \{0, 1\}, \quad \forall l, d
x l d ∈ { 0 , 1 } , ∀ l , d
其中X = [ x l d ] \mathbf{X} = [x_{ld}] X = [ x l d ] 是分配矩阵。
多智能体调度的强化学习方法
MASITO框架使用多智能体深度强化学习来调度推理任务并在时间和能量约束下进行卸载。每个边缘服务器i i i 运行一个代理,其状态空间S i \mathcal{S}_i S i 包括本地任务队列、资源利用率和邻居状态。动作空间A i \mathcal{A}_i A i 包括本地执行、卸载到邻居或卸载到云。
多智能体马尔可夫决策过程(MMDP)可以表示为元组⟨ N , { S i } , { A i } , R , P ⟩ \langle \mathcal{N}, \{\mathcal{S}_i\}, \{\mathcal{A}_i\}, \mathcal{R}, P \rangle ⟨ N , { S i } , { A i } , R , P ⟩ ,其中N = { 1 , … , N } \mathcal{N} = \{1, \ldots, N\} N = { 1 , … , N } 是代理集,R : S × A → R \mathcal{R}: \mathcal{S} \times \mathcal{A} \rightarrow \mathbb{R} R : S × A → R 是联合奖励函数,P : S × A × S → [ 0 , 1 ] P: \mathcal{S} \times \mathcal{A} \times \mathcal{S} \rightarrow [0, 1] P : S × A × S → [ 0 , 1 ] 是转移概率。
联合策略π = { π 1 , … , π N } \pi = \{\pi_1, \ldots, \pi_N\} π = { π 1 , … , π N } ,其中π i : S i → P ( A i ) \pi_i: \mathcal{S}_i \rightarrow \mathcal{P}(\mathcal{A}_i) π i : S i → P ( A i ) 。目标是最大化累积折扣奖励:
J ( π ) = E π [ ∑ t = 0 ∞ γ t r t ] J(\pi) = \mathbb{E}_{\pi} \left[\sum_{t=0}^{\infty} \gamma^t r_t\right]
J ( π ) = E π [ t = 0 ∑ ∞ γ t r t ]
其中γ ∈ ( 0 , 1 ) \gamma \in (0, 1) γ ∈ ( 0 , 1 ) 是折扣因子。
每个代理使用深度Q网络(DQN)来近似其Q函数Q i ( s i , a i ; θ i ) Q_i(s_i, a_i; \theta_i) Q i ( s i , a i ; θ i ) ,通过最小化时间差分误差来训练:
L ( θ i ) = E [ ( r i + γ max a i ′ Q i ( s i ′ , a i ′ ; θ i − ) − Q i ( s i , a i ; θ i ) ) 2 ] \mathcal{L}(\theta_i) = \mathbb{E}\left[\left(r_i + \gamma \max_{a_i'} Q_i(s_i', a_i'; \theta_i^-) - Q_i(s_i, a_i; \theta_i)\right)^2\right]
L ( θ i ) = E [ ( r i + γ a i ′ max Q i ( s i ′ , a i ′ ; θ i − ) − Q i ( s i , a i ; θ i ) ) 2 ]
其中θ i − \theta_i^- θ i − 是目标网络参数。
代理之间的协调通过消息传递实现。代理i i i 向其邻居j j j 发送其当前负载和可用容量的信息:
m i → j ( t ) = ( Load i ( t ) , Capacity i ( t ) ) m_{i \to j}(t) = (\text{Load}_i(t), \text{Capacity}_i(t))
m i → j ( t ) = ( Load i ( t ) , Capacity i ( t ) )
代理i i i 使用收到的消息来更新其状态表示:
s ~ i ( t ) = [ s i ( t ) , { m j → i ( t ) } j ∈ N i ] \tilde{s}_i(t) = [s_i(t), \{m_{j \to i}(t)\}_{j \in \mathcal{N}_i}]
s ~ i ( t ) = [ s i ( t ) , { m j → i ( t ) } j ∈ N i ]
其中N i \mathcal{N}_i N i 是代理i i i 的邻居集。
模型上下文协议的设计与优化
模型上下文协议定义了大语言模型之间以及大语言模型与外部系统之间如何交换上下文信息。高效的上下文管理对于减少内存占用和通信开销至关重要。
上下文压缩的信息论基础
上下文压缩旨在将长输入序列编码为紧凑表示,同时保留关键信息。In-Context Autoencoder(ICAE)训练一个轻量级自动编码器来总结输入。
给定输入序列x = [ x 1 , … , x T ] \mathbf{x} = [x_1, \ldots, x_T] x = [ x 1 , … , x T ] ,编码器E E E 将其映射到K ≪ T K \ll T K ≪ T 个记忆槽:
m = E ( x ) ∈ R K × d \mathbf{m} = E(\mathbf{x}) \in \mathbb{R}^{K \times d}
m = E ( x ) ∈ R K × d
其中d d d 是嵌入维度。解码器D D D 从记忆槽重构输入:
x ^ = D ( m ) \hat{\mathbf{x}} = D(\mathbf{m})
x ^ = D ( m )
训练目标是最小化重构误差:
L recon = ∥ x − x ^ ∥ 2 \mathcal{L}_{\text{recon}} = \|\mathbf{x} - \hat{\mathbf{x}}\|^2
L recon = ∥ x − x ^ ∥ 2
加上保持大语言模型性能的任务损失:
L total = L recon + λ L task ( LLM ( m ) , y ) \mathcal{L}_{\text{total}} = \mathcal{L}_{\text{recon}} + \lambda \mathcal{L}_{\text{task}}(\text{LLM}(\mathbf{m}), y)
L total = L recon + λ L task ( LLM ( m ) , y )
其中y y y 是任务标签。
压缩率定义为:
ρ = K ⋅ d T ⋅ d = K T \rho = \frac{K \cdot d}{T \cdot d} = \frac{K}{T}
ρ = T ⋅ d K ⋅ d = T K
对于K = T / 4 K = T/4 K = T / 4 ,ICAE实现了4 × 4\times 4 × 压缩。
从信息论角度,压缩的目标是保留输入x \mathbf{x} x 关于任务y y y 的互信息。理想情况下:
I ( m ; y ) ≈ I ( x ; y ) I(\mathbf{m}; y) \approx I(\mathbf{x}; y)
I ( m ; y ) ≈ I ( x ; y )
同时最小化m \mathbf{m} m 的熵H ( m ) H(\mathbf{m}) H ( m ) 以实现紧凑表示。这可以通过信息瓶颈原理来形式化:
max m I ( m ; y ) − β I ( m ; x ) \max_{\mathbf{m}} I(\mathbf{m}; y) - \beta I(\mathbf{m}; \mathbf{x})
m max I ( m ; y ) − β I ( m ; x )
其中β \beta β 控制压缩和保留信息之间的权衡。
键值缓存管理的动态策略
Transformer模型在生成时维护键值(KV)缓存以避免重新计算过去的注意力。对于序列长度T T T 和L L L 层模型,KV缓存大小为:
Size KV = 2 ⋅ L ⋅ T ⋅ d ⋅ b \text{Size}_{\text{KV}} = 2 \cdot L \cdot T \cdot d \cdot b
Size KV = 2 ⋅ L ⋅ T ⋅ d ⋅ b
其中d d d 是隐藏维度,b b b 是每个值的字节数。对于大T T T ,这可能消耗大量内存。
EdgeInfinite引入了门控记忆机制来压缩旧的KV缓存。在时间步t t t ,缓存分为三个部分:
注意力汇聚令牌 (固定大小K s K_s K s ):始终保留的初始令牌
滑动窗口 (固定大小K w K_w K w ):最近的K w K_w K w 个令牌
压缩记忆 (可变大小):较旧令牌的压缩表示
门控函数g g g 决定哪些令牌压缩到记忆中:
g t = σ ( W g h t + b g ) g_t = \sigma(\mathbf{W}_g \mathbf{h}_t + \mathbf{b}_g)
g t = σ ( W g h t + b g )
其中h t \mathbf{h}_t h t 是时间步t t t 的隐藏状态,σ \sigma σ 是sigmoid函数。
令牌t t t 的键值对被添加到记忆中,权重为g t g_t g t :
M key = M key + g t k t , M value = M value + g t v t \mathbf{M}_{\text{key}} = \mathbf{M}_{\text{key}} + g_t \mathbf{k}_t, \quad \mathbf{M}_{\text{value}} = \mathbf{M}_{\text{value}} + g_t \mathbf{v}_t
M key = M key + g t k t , M value = M value + g t v t
注意力计算变为:
Attention ( q t ) = softmax ( q t [ K s ; K w ; M key ] T d ) [ V s ; V w ; M value ] \text{Attention}(\mathbf{q}_t) = \text{softmax}\left(\frac{\mathbf{q}_t [\mathbf{K}_s; \mathbf{K}_w; \mathbf{M}_{\text{key}}]^T}{\sqrt{d}}\right) [\mathbf{V}_s; \mathbf{V}_w; \mathbf{M}_{\text{value}}]
Attention ( q t ) = softmax ( d q t [ K s ; K w ; M key ] T ) [ V s ; V w ; M value ]
其中[ ⋅ ; ⋅ ] [\cdot; \cdot] [ ⋅ ; ⋅ ] 表示连接。
记忆大小为d d d (常数),而标准KV缓存大小与T T T 线性增长,实现了无限上下文的恒定内存。
分布式推理的通信优化
在模型分布式推理(MDI-LLM)中,单个生成任务在设备之间拆分。模型的层在节点之间分区,通过流水线计算减少空闲时间。
考虑一个L L L 层模型分布在D D D 个设备上。设备d d d 负责层L d , start L_{d,\text{start}} L d , start 到L d , end L_{d,\text{end}} L d , end 。对于批量大小B B B 的输入,朴素的顺序执行总时间为:
T seq = ∑ d = 1 D t d ⋅ B T_{\text{seq}} = \sum_{d=1}^{D} t_d \cdot B
T seq = d = 1 ∑ D t d ⋅ B
其中t d t_d t d 是设备d d d 处理一个样本的时间。
流水线执行通过重叠计算来减少延迟。将批次分为M M M 个微批次,每个大小B / M B/M B / M 。设备d d d 在微批次m m m 上的计算与设备d + 1 d+1 d + 1 在微批次m − 1 m-1 m − 1 上的计算重叠。总时间为:
T pipe = ∑ d = 1 D t d ⋅ B M + ( D − 1 ) ⋅ max d t d ⋅ B M T_{\text{pipe}} = \sum_{d=1}^{D} t_d \cdot \frac{B}{M} + (D-1) \cdot \max_d t_d \cdot \frac{B}{M}
T pipe = d = 1 ∑ D t d ⋅ M B + ( D − 1 ) ⋅ d max t d ⋅ M B
= B M ( ∑ d = 1 D t d + ( D − 1 ) max d t d ) = \frac{B}{M} \left(\sum_{d=1}^{D} t_d + (D-1) \max_d t_d\right)
= M B ( d = 1 ∑ D t d + ( D − 1 ) d max t d )
加速比为:
Speedup = T seq T pipe = ∑ d = 1 D t d 1 M ∑ d = 1 D t d + ( 1 − 1 M ) ( D − 1 ) max d t d \text{Speedup} = \frac{T_{\text{seq}}}{T_{\text{pipe}}} = \frac{\sum_{d=1}^{D} t_d}{\frac{1}{M} \sum_{d=1}^{D} t_d + (1 - \frac{1}{M})(D-1) \max_d t_d}
Speedup = T pipe T seq = M 1 ∑ d = 1 D t d + ( 1 − M 1 ) ( D − 1 ) max d t d ∑ d = 1 D t d
对于大M M M 和平衡的t d t_d t d (即t d ≈ t ˉ t_d \approx \bar{t} t d ≈ t ˉ ),这接近M M M 。
通信优化可以通过张量并行来实现。对于矩阵乘法Y = X W \mathbf{Y} = \mathbf{X} \mathbf{W} Y = X W ,将W \mathbf{W} W 按列分区为[ W 1 , … , W P ] [\mathbf{W}_1, \ldots, \mathbf{W}_P] [ W 1 , … , W P ] :
Y = [ X W 1 , … , X W P ] \mathbf{Y} = [\mathbf{X} \mathbf{W}_1, \ldots, \mathbf{X} \mathbf{W}_P]
Y = [ X W 1 , … , X W P ]
每个设备p p p 计算Y p = X W p \mathbf{Y}_p = \mathbf{X} \mathbf{W}_p Y p = X W p ,然后连接结果。这将通信从传输整个Y \mathbf{Y} Y 减少到只传输X \mathbf{X} X (广播)和同步连接,对于大矩阵显著降低了开销。
点对点协议的共识机制
图7点对点网络解读 :论文第13页的图7展示了分布式Mixture-of-Agents(MoA)系统模型的P2P网络结构。图的中心是一个提示缓冲区(Prompt buffer),周围分布着五个用户节点(User 1到User 5),每个用户节点都关联着一个单独的大语言模型(Individual LLM)。图中使用箭头表示信息流动:实线箭头表示用户向系统提交查询,虚线箭头表示大语言模型之间的通信和响应传递。每个设备都有其本地提示并通过本地大语言模型进行推理,同时这些提示被发送到相邻大语言模型进行推理,然后它们的响应被一个大语言模型聚合。这种去中心化的设计确保了即使在网络分区或节点故障的情况下,系统仍然可以继续运行,体现了多大语言模型系统的鲁棒性和容错能力。
在去中心化的多大语言模型系统中,点对点(P2P)协议允许模型直接通信而无需中央协调器。Mixture-of-Agents(MoA)系统就是一个例子。
每个设备i i i 运行大语言模型M i M_i M i 并维护本地提示队列Q i \mathcal{Q}_i Q i 。当用户在设备i i i 生成查询q q q 时:
M i M_i M i 生成初始响应r i ( 0 ) = M i ( q ) r_i^{(0)} = M_i(q) r i ( 0 ) = M i ( q )
设备i i i 向其邻居N i \mathcal{N}_i N i 广播( q , r i ( 0 ) ) (q, r_i^{(0)}) ( q , r i ( 0 ) )
每个邻居j ∈ N i j \in \mathcal{N}_i j ∈ N i 生成自己的响应r j ( 0 ) = M j ( q ) r_j^{(0)} = M_j(q) r j ( 0 ) = M j ( q ) 并发送回设备i i i
设备i i i 收集所有响应{ r j ( 0 ) } j ∈ N i ∪ { i } \{r_j^{(0)}\}_{j \in \mathcal{N}_i \cup \{i\}} { r j ( 0 ) } j ∈ N i ∪ { i }
聚合器大语言模型M agg M_{\text{agg}} M agg (可能与M i M_i M i 相同)综合这些响应:
r ∗ = M agg ( q , { r j ( 0 ) } j ∈ N i ∪ { i } ) r^* = M_{\text{agg}}(q, \{r_j^{(0)}\}_{j \in \mathcal{N}_i \cup \{i\}})
r ∗ = M agg ( q , { r j ( 0 ) } j ∈ N i ∪ { i } )
将r ∗ r^* r ∗ 返回给用户
P2P网络的拓扑结构影响性能。对于一个具有N N N 个节点的网络,如果每个节点有k k k 个邻居(k k k -正则图),总通信成本为O ( N ⋅ k ) O(N \cdot k) O ( N ⋅ k ) 。
共识协议确保网络就最终响应达成一致。一种简单的方法是投票。每个节点i i i 对接收到的响应进行评分:
s i ( r ) = Score M i ( q , r ) s_i(r) = \text{Score}_{M_i}(q, r)
s i ( r ) = Score M i ( q , r )
响应r r r 的总分为:
S ( r ) = ∑ i = 1 N s i ( r ) S(r) = \sum_{i=1}^{N} s_i(r)
S ( r ) = i = 1 ∑ N s i ( r )
选择分数最高的响应:
r ∗ = arg max r S ( r ) r^* = \arg\max_r S(r)
r ∗ = arg r max S ( r )
更复杂的共识使用迭代细化。在第t t t 轮:
每个节点i i i 提议响应r i ( t ) r_i^{(t)} r i ( t )
节点交换提议并计算聚合r ˉ ( t ) = 1 N ∑ i = 1 N r i ( t ) \bar{r}^{(t)} = \frac{1}{N} \sum_{i=1}^{N} r_i^{(t)} r ˉ ( t ) = N 1 ∑ i = 1 N r i ( t ) (在嵌入空间中)
每个节点更新其提议:
r i ( t + 1 ) = ( 1 − α ) r i ( t ) + α r ˉ ( t ) r_i^{(t+1)} = (1 - \alpha) r_i^{(t)} + \alpha \bar{r}^{(t)}
r i ( t + 1 ) = ( 1 − α ) r i ( t ) + α r ˉ ( t )
重复直到收敛:max i ∥ r i ( t + 1 ) − r i ( t ) ∥ < ϵ \max_i \|r_i^{(t+1)} - r_i^{(t)}\| < \epsilon max i ∥ r i ( t + 1 ) − r i ( t ) ∥ < ϵ
这类似于分布式平均共识算法,收敛到所有节点的平均提议。
拜占庭容错(BFT)协议处理恶意节点。对于N N N 个节点,其中最多f f f 个是拜占庭(恶意的),需要N ≥ 3 f + 1 N \geq 3f + 1 N ≥ 3 f + 1 来实现共识。实用拜占庭容错(PBFT)算法通过三阶段(预准备、准备、提交)确保一致性:
预准备 :主节点广播提议r r r
准备 :每个节点验证r r r 并广播准备消息
提交 :如果节点收到至少2 f + 1 2f + 1 2 f + 1 个准备消息,它广播提交消息
执行 :如果节点收到至少2 f + 1 2f + 1 2 f + 1 个提交消息,它执行(接受)r r r
对于大语言模型响应,验证可以是检查响应质量或与节点自己的预测的一致性。
协作记忆的层次化管理
协作记忆框架为每个大语言模型提出了两层记忆架构。每个边缘设备上的模型实例维护:
私有记忆 M i priv \mathcal{M}_i^{\text{priv}} M i priv :用户特定交互的本地存储
共享记忆 M shared \mathcal{M}^{\text{shared}} M shared :可能使其他人受益的知识
当大语言模型M i M_i M i 完成查询q q q 并生成响应r r r 时,它决定是否共享( q , r ) (q, r) ( q , r ) :
Share ( q , r ) = { True if Utility ( q , r ) > τ share False otherwise \text{Share}(q, r) = \begin{cases}
\text{True} & \text{if } \text{Utility}(q, r) > \tau_{\text{share}} \\
\text{False} & \text{otherwise}
\end{cases} Share ( q , r ) = { True False if Utility ( q , r ) > τ share otherwise
效用函数可以基于通用性:
Utility ( q , r ) = 1 ∣ M shared ∣ ∑ ( q ′ , r ′ ) ∈ M shared Similarity ( q , q ′ ) \text{Utility}(q, r) = \frac{1}{|\mathcal{M}^{\text{shared}}|} \sum_{(q', r') \in \mathcal{M}^{\text{shared}}} \text{Similarity}(q, q')
Utility ( q , r ) = ∣ M shared ∣ 1 ( q ′ , r ′ ) ∈ M shared ∑ Similarity ( q , q ′ )
高效用表示查询q q q 与现有共享记忆中的查询相似,因此可能对其他人有用。
当处理新查询q new q_{\text{new}} q new 时,大语言模型首先从其私有记忆和共享记忆中检索相关示例:
E priv = TopK ( M i priv , q new , k priv ) \mathcal{E}_{\text{priv}} = \text{TopK}(\mathcal{M}_i^{\text{priv}}, q_{\text{new}}, k_{\text{priv}})
E priv = TopK ( M i priv , q new , k priv )
E shared = TopK ( M shared , q new , k shared ) \mathcal{E}_{\text{shared}} = \text{TopK}(\mathcal{M}^{\text{shared}}, q_{\text{new}}, k_{\text{shared}})
E shared = TopK ( M shared , q new , k shared )
其中TopK \text{TopK} TopK 返回与q new q_{\text{new}} q new 最相似的k k k 个示例。然后将检索到的示例连接到提示中:
Prompt = [ q new , E priv , E shared ] \text{Prompt} = [q_{\text{new}}, \mathcal{E}_{\text{priv}}, \mathcal{E}_{\text{shared}}]
Prompt = [ q new , E priv , E shared ]
r new = M i ( Prompt ) r_{\text{new}} = M_i(\text{Prompt})
r new = M i ( Prompt )
这使得大语言模型能够利用个人历史和集体知识。
在资源受限的边缘环境中,共享记忆有大小限制∣ M shared ∣ ≤ C |\mathcal{M}^{\text{shared}}| \leq C ∣ M shared ∣ ≤ C 。当达到容量时,必须驱逐旧条目。驱逐策略可以基于频率和新近度:
Score ( q , r ) = α ⋅ AccessCount ( q , r ) + β ⋅ 1 t current − t added ( q , r ) \text{Score}(q, r) = \alpha \cdot \text{AccessCount}(q, r) + \beta \cdot \frac{1}{t_{\text{current}} - t_{\text{added}}(q, r)}
Score ( q , r ) = α ⋅ AccessCount ( q , r ) + β ⋅ t current − t added ( q , r ) 1
其中α \alpha α 和β \beta β 是权重。分数最低的条目被驱逐。
评论(0)