BOUTE: Cost-Efficient LLM Serving with Heterogeneous LLMs and GPUs via Multi-Objective Bayesian Optimization
BOUTE: Cost-Efficient LLM Serving with Heterogeneous LLMs and GPUs via Multi-Objective Bayesian Optimization
作者/机构: Youhe Jiang 1, Fangcheng Fu 2, Eiko Yoneki 1
A1 主要贡献
大型语言模型(LLM)的快速增长使得成本效益高的服务系统至关重要。本文旨在解决在满足严格的延迟和质量要求下,实现成本效益高的LLM服务这一核心问题。研究目标是通过协同设计和优化异构模型路由(算法层面)与异构GPU部署(系统层面),充分利用不同模型和硬件的能力,来提升整体系统的成本效益。
现有的方法通常只关注算法或系统中的一个方面,但两者之间存在双向依赖:路由决策影响模型负载,从而决定最佳部署策略;而部署配置决定了各模型的延迟性能,这反过来又影响路由决策。这种循环依赖关系使得独立优化任一方都会导致次优的系统性能。此外,确定最佳路由策略(平衡延迟与质量)和在异构GPU上进行高效的模型部署(分配资源和并行策略)本身就是复杂的挑战。
为应对这些挑战,本文提出了BOUTE,一个能够感知质量的调度系统,它联合利用异构模型和GPU的能力来实现高成本效益的LLM服务。其主要贡献如下:
贡献 1:系统工作负载的系统性表征
本文系统地分析了路由和部署的协同设计如何影响系统性能,并证明了异构模型部署能够自然地补充异构模型路由。通过将不同LLM的资源需求与合适的GPU类型相匹配,可以显著提高系统效率。
贡献 2:基于多目标贝叶斯优化的协同优化框架
本文将跨异构模型和资源的路由与部署问题形式化为一个约束优化问题。为了高效求解,提出了一个多目标贝叶斯优化(MOBO)框架,以协同优化路由策略和模型部署。在给定的延迟和质量目标下,该MOBO框架能够识别出延迟-质量边界上的帕累托最优解,使服务提供商能够选择最符合其性能要求的部署方案。
贡献 3:系统实现与评估
本文实现了BOUTE系统,并在多样化的LLM任务和质量要求下进行了实验。与当前最先进的LLM服务系统相比,在相同的服务预算和质量要求下,BOUTE能够将系统响应延迟降低高达2.6倍(平均1.6倍),或将系统吞吐量提升高达1.9倍(平均1.6倍),证明了其在实现高成本效益LLM服务方面的有效性。
A3 背景知识与关键洞察
本部分的工作负载特性分析旨在理解异构模型路由和部署如何共同影响系统性能和成本效益。我们通过逐步引入不同方法来展示系统性能的提升过程。
实验设置。我们使用P95延迟(95%分位数的响应延迟)作为主要性能指标,并在GSM8K数据集的样本上评估质量(即准确率)。我们比较了两种预算相近的部署配置:一个是由12个H100 GPU组成的同构设置($32.28/h),另一个是由6个RTX 5090 GPU和10个H100 GPU组成的异构设置($32.24/h)。
基线系统配置。我们首先建立一个基线场景,其中服务提供商必须满足最低90分(0-100分制)的质量要求。考虑一个在12个H100 GPU上部署Llama3.1-70B的系统,其P95延迟为25.6秒,质量得分为95.1。作为对比,如果在相同的12个H100 GPU上只部署Llama3.1-8B,P95延迟为7.4秒,但质量得分仅为84.5,未能达到要求。这说明了在服务单个模型时延迟与质量之间的根本性权衡。
方法1:采用统一资源分配的模型路由。引入模型路由使系统能够在满足质量要求的同时降低延迟。通过适当的路由策略,大约40%的查询被导向小模型,60%被路由到大模型,从而达到了90的目标质量。在统一资源分配(每个模型6个GPU)的情况下,系统P95延迟为28.2秒(相比于单一Llama3.1-70B模型部署,延迟增加了10%)。
* 洞察:尽管路由减少了大模型的负载,但不恰当的资源分配造成了性能瓶颈。大模型处理了60%的查询,却只分配了一半的可用资源,成为了整个系统延迟的限制因素。
方法2:优化同构资源分配。通过调整资源分配,可以显著提升系统性能。我们将4个GPU分配给小模型,8个GPU分配给大模型——这是基于它们各自的系统负载和模型特性来决定的。这样一来,P95延迟降低到20.5秒(相比于单一Llama3.1-70B模型部署,延迟降低了20%)。
* 洞察:模型路由与合理的资源分配相结合,显著降低了系统延迟。通过将较简单的查询导向小模型,并在小模型和大模型之间平衡资源以防止瓶颈,系统避免了任何一个模型的过载。
方法3:引入异构GPU。通过部署与模型特性相匹配的异构GPU类型,可以实现进一步的延迟降低。在异构设置中,我们将30%的查询路由到小模型,70%路由到大模型,并将6个RTX 5090 GPU部署给小模型,10个H100 GPU部署给大模型。此配置实现了17.1秒的P95延迟(相比单一Llama3.1-70B和同构模型部署分别降低33%和13%),并且质量得分达到91.2(质量更高)。
* 洞察:集成异构GPU资源改变了单个模型的延迟-质量权衡曲线,从而改变了最优路由策略。路由分配从40/60转变为30/70,原因有二:首先,小模型在RTX 5090 GPU上以更低成本实现了更低延迟;其次,节省的成本预算可以为大模型配置更多的H100 GPU,使其能处理更多系统负载。因此,异构模型部署创造了双重效益——小模型的成本效益服务和同时扩大大模型容量——两者共同作用以最小化整体系统延迟。
不同GPU类型上的模型性能。为了揭示不同模型在不同GPU类型上的性能特征,我们进行了额外实验,比较了在相同预算约束下,小模型和大模型在RTX 5090和H100 GPU上的部署情况。具体来说,我们比较了使用24个RTX 5090 GPU($21.36/h)和8个H100 GPU($21.52/h)的部署,两者成本相当。我们的基准测试显示,模型在不同GPU类型上表现出不同的性能剖面,如图1所示。小模型在RTX 5090 GPU上的P95延迟比在H100 GPU上低约1.5倍,而大模型在H100 GPU上的P95延迟比在RTX 5090 GPU上低2倍。
* 洞察:不同模型偏好于不同类型的GPU以实现成本效益服务,这使得异构GPU部署成为必需而非可选。这种硬件异构性自然地补充了异构模型路由:路由利用模型多样性来平衡延迟和质量,而异构部署则利用GPU多样性来优化每个模型的成本性能,从而创造了一个协同系统,其中两个维度的异构性共同作用以最大化整体服务的成本效益。
基于这些洞察,我们通过异构模型路由和模型部署的协同优化来提升成本效益。
A2 方法细节
4 协同优化问题的形式化
4.1 模型路由中的决策变量
我们的路由机制。我们采用与先前工作(Ong et al., 2024; Ding et al., 2024)一致的基于阈值的路由机制。具体来说,对于每个传入的查询,路由器会计算一个路由分数,该分数估计了查询的难度或小模型产生满意响应的可能性。然后将该分数与可配置的阈值 $\tau = \{\tau_1, \tau_2, ...\}$ 进行比较以做出路由决策。当系统中有多个模型可用时,如果查询的路由分数落在区间 $[\tau_{i-1}, \tau_i)$ 内,则该查询被路由到模型 $i$。
决策变量。路由阈值 $\tau$ 构成了路由策略的主要决策变量。这些阈值控制着查询在不同模型间的分布,直接影响系统的延迟-质量权衡。较高的阈值会将更大比例的查询路由到更大、能力更强的模型,从而确保更高的输出质量,但代价是增加系统延迟。相反,较低的阈值会将更多查询导向较小的模型,减少系统延迟,但可能牺牲质量。通过对 $\tau$ 的系统性优化,可以调整路由策略以满足特定的系统目标和性能约束。
4.2 模型部署中的决策变量
部署配置。给定一组可用的异构GPU $D = \{d_1, d_2, ..., d_N\}$,其中每个 $d_n \geq 0$ 代表第 $n$ 种类型GPU的数量,部署问题旨在确定如何将这些GPU分配给 $M$ 种模型。部署配置必须明确三个关键方面:(i) 模型-GPU分配:每种模型应使用哪种(或哪些)GPU类型进行部署;(ii) 资源分配:应为每种模型分配多少个各种类型的GPU;(iii) 并行策略:用于在分配的GPU上分布每个模型的数据、张量和流水线并行度。
我们的部署策略。假设有 $M$ 种模型。我们将部署问题形式化为寻找一个最优的分配矩阵 $A \in R^{M \times N}$,其中 $a_{m,n}$ 是分配给模型 $m$ 的类型为 $n$ 的GPU数量,以及一组并行策略 $P = \{p_1, p_2, ..., p_M\}$,其中 $p_m$ 指定了模型 $m$ 的最优并行策略。该分配必须满足两类约束:(i) 资源约束:对于所有 $n$,$\sum_{m=1}^{M} a_{m,n} \leq d_n$,即总分配量不超过可用资源;(ii) 预算约束:$\sum_{m=1}^{M} \sum_{n=1}^{N} a_{m,n} \cdot b_n \leq B_{cap}$,其中 $b_n$ 是GPU类型 $n$ 的单位时间成本,$B_{cap}$ 是总预算,确保部署成本在指定的预算限制内。
决策变量。分配矩阵 $A$ 和并行策略 $P$ 构成了模型部署的主要决策变量。给定一个路由策略 $\tau$ 决定了 $M$ 种模型间的系统负载分布 $W = \{\lambda_1, \lambda_2, ..., \lambda_M\}$,其中 $\lambda_m$ 代表模型 $m$ 的系统负载,我们系统地优化 $A$ 和 $P$ 以在资源和预算约束下最小化系统延迟。
4.3 问题形式化
给定 $M$ 种模型和异构GPU集合 $D = \{d_1, d_2, ..., d_N\}$,其成本为 $B = \{b_1, b_2, ..., b_N\}$,我们将联合优化问题形式化为一个多目标优化问题:
$$\min_{\boldsymbol{\tau}, \mathbf{A}, \mathbf{P}} \quad (L(\boldsymbol{\tau}, \mathbf{A}, \mathbf{P}), -Q(\boldsymbol{\tau}))$$其中 $L(\cdot)$ 是系统响应延迟(例如P95延迟),$Q(\cdot)$ 是所有查询的聚合输出质量(例如在GSM8K上的准确率),$B_{cap}$ 是预算约束。决策变量是路由阈值 $\tau$、GPU分配矩阵 $A$ 和并行策略 $P$。目标是找到帕累托最优解,以平衡最小化延迟和最大化质量之间的权衡。
该问题具有挑战性,因为路由和部署之间存在耦合关系:路由策略 $\tau$ 决定了模型间的系统负载分布,这影响了所需的模型部署(A, P)(即资源分配和并行策略),而模型部署决定了每个模型的延迟特性,这又影响了最优的路由策略。此外,异构资源分配的NP-hard性质(Yuan et al., 2022; Jiang et al., 2024)进一步加剧了问题的复杂性。综合这些因素,巨大的搜索空间使得穷举搜索在计算上是不可行的。因此,我们设计了一个多目标贝叶斯优化(MOBO)框架,专门用于高效解决此问题。
5 MOBO框架
如图2所示,我们的MOBO框架分两个阶段运行:(i) 离线准备阶段:此阶段对系统性能进行剖析并模拟不同的部署配置以生成性能数据。对于每个特定的服务场景,此准备工作仅执行一次。(ii) 在线优化阶段:此阶段利用离线性能数据来高效地搜索最优的路由策略和模型部署。
5.1 离线准备阶段
离线阶段的目标是将任何<模型部署, 系统负载>对映射到一个估计的系统延迟值。
推理任务模拟器。我们使用一个推理任务模拟器来评估部署性能。我们将异构GPU的特性(例如,有效计算吞吐量和可达到的HBM I/O带宽)作为模拟器的输入,并在一系列系统负载 $\lambda = \{2, 4, 6, 8, ..., 40\}$ 每秒查询数(QPS,覆盖了从轻负载到突发负载)下,迭代地模拟不同模型类型在各种模型部署(A, P)下的性能。生成的性能数据将在随后的在线优化阶段使用。
两阶段模拟方法。我们根据并行类型采用两阶段模拟策略。首先,我们使用模型并行性模拟单副本部署,即将一个模型划分到多个GPU上。这构建了一个将<单副本部署, 系统负载>映射到系统延迟的性能数据库。其次,我们使用数据并行性(DP)(Li et al., 2023)模拟多副本部署,其中多个副本并发地服务查询。这将<多副本部署, 系统负载>映射到系统延迟。图3展示了单副本和多副本部署的示意图。
模型并行模拟。对于每种模型和可用的GPU类型,我们系统地枚举使用模型并行策略的可行部署配置。模型并行包括张量并行(TP)(Shoeybi et al., 2019)和流水线并行(PP)(Huang et al., 2019),它们将单个模型副本分割到多个GPU上。具体来说,对于拥有 $d_n$ 个可用单元的GPU类型 $n$,我们探索从1到 $d_n$ 个GPU的分配,并为每种分配规模评估所有有效的TP和PP组合。模拟器为每个特定的模型并行配置生成系统延迟。为了限制枚举空间,我们应用了两个剪枝规则:(i) 消除GPU内存不足以容纳模型的配置(例如,4个RTX 5090 GPU用于Llama3.1-70B),以及(ii) TP被限制为利用快速的机器内GPU连接以避免通信瓶颈(例如,TP ≤ 8或4,取决于硬件)。这个枚举过程在所有模型类型、GPU类型和系统负载上重复进行,生成一个将模型并行配置映射到其相应系统延迟的性能数据库。
数据并行模拟。除了模型并行,一个模型类型也可以使用DP部署为多个独立的副本。在这种情况下,确定这些DP副本之间的最优负载分配仍然是-一个不简单的问题,因为它直接影响最终的系统延迟。为了解决这个问题,我们进行高效的负载分配搜索:对于每个多副本配置,我们(i) 枚举可能的负载分布 $(\lambda_{m,1}, \lambda_{m,2}, ...)$,满足 $\sum_i \lambda_{m,i} = \lambda_m$,其中 $\lambda_{m,i}$ 表示分配给模型类型 $m$ 的第 $i$ 个副本的系统负载;(ii) 从性能数据库中检索每个副本在其分配负载下的系统延迟;(iii) 选择能够最小化不同副本间最大系统延迟的负载分布,并记录这个最小延迟。由于每次评估只需要数据库查找,这个搜索过程的计算开销极小。通过这种方法,我们可以获得最优的负载分布并估计任意DP配置的系统延迟。
总结。离线准备阶段构建了一个全面的性能数据库,使得快速的在线优化成为可能,无需实时的性能剖析或模拟开销。此外,离线准备过程通常在几十分钟内完成,并且对于每个特定的服务场景只需运行一次。
5.2 在线优化阶段
在线阶段的目标是利用MOBO找到帕累托最优的路由策略和模型部署。
部署候选生成。我们需要为每种模型类型枚举不同的部署(A, P)。然而,随着GPU类型的增加,可能的候选数量会爆炸式增长,为MOBO创建了一个极大的搜索空间。因此,我们按以下方式为不同模型类型生成部署候选:
* 同构部署候选。对于每个系统负载和GPU类型,我们枚举可行的(DP, TP, PP)组合,并在(延迟,成本)空间中应用帕累托筛选(Pareto-skimming)来生成一组帕累托最优配置(通常每种GPU类型有10-20个具有不同延迟-成本权衡的数据点)。这些配置作为同构部署候选。
* 异构部署候选。我们通过组合来自不同GPU类型的同构候选来生成异构候选。具体来说,我们枚举一个中间预算网格 $o \in (0, B_{cap}]$(例如10-20个点)。对于每个预算 $o$,我们解决一个多重选择背包问题,从每种GPU类型中最多选择一个候选,以在总成本 ≤ $o$ 的约束下最小化系统延迟。在解决背包问题期间,每个异构DP配置的系统延迟是通过第5.1节中描述的负载分配搜索获得的。在所有预算点上获得的最终配置集即为异构部署候选。
通过这种方法,我们有效地覆盖了整个部署空间,通过帕累托筛选和背包优化剪枝次优解,将候选集减少到可管理的大小,而不牺牲解的质量。我们将模型 $m$ 的部署候选集表示为 $C_m$。部署选择表示为 $c = {c_1, c_2, ..., c_M}$,其中对于所有 $m \in {1, ..., M}$,$c_m \in C_m$。
整体MOBO工作流程。在线优化阶段以决策变量 $\theta = (\tau, c)$ 作为输入,输出结果为响应质量 $Q(\theta)$ 和系统延迟 $L(\theta)$。MOBO框架主要包含两个组件:一个代理模型——高斯过程(GP)——它提供对目标和约束的快速统计近似;以及一个采集函数,它在决策空间中平衡探索和利用。优化工作流程如下:(i) 代理模型拟合:我们使用加性核和结构化信息为 $Q(\theta)$ 和 $L(\theta)$ 拟合GP代理模型,以捕捉结果与决策变量之间的关系。(ii) 采集函数优化:我们构建受约束的qNEHVI(q-Noisy Expected Hypervolume Improvement)采集函数,并在决策空间上对其进行优化,以平衡探索和利用,选择下一个要评估的候选配置 $\theta^$。(iii) 更新和细化:我们评估所选配置 $\theta^$,根据观察到的性能更新GP代理模型,并重复步骤(ii)和(iii)直到收敛。收敛后,我们获得一个帕累托最优解集,从中根据具体的性能要求(例如,目标系统延迟和响应质量)选择最优配置。
加性核。为了让代理模型能够捕捉路由策略和部署候选的独立效应及其相互作用,我们采用带有加性核的GP:
$$k(\boldsymbol{\theta}, \boldsymbol{\theta}^*) = k_{\tau}(\boldsymbol{\tau}, \boldsymbol{\tau}^*) + k_c(\mathbf{c}, \mathbf{c}^*) + \phi k_{\times}((\boldsymbol{\tau}, \mathbf{c}), (\boldsymbol{\tau}^*, \mathbf{c}^*))$$其中 $k_\tau$ 和 $k_c$ 是ARD Matern核(Snoek et al., 2012),它们分别模拟路由策略 $\tau$ 和部署候选 $c$ 的可分离主效应。交互项 $k_\times$ 是一个乘积核(Duvenaud et al., 2013),用于捕捉 $\tau$ 和 $c$ 之间的相互依赖关系。$\phi$ 控制交互项的权重,并在训练期间学习(通常很小)。这种加性核结构使得GP能够将主效应与交互作用解耦(Kandasamy et al., 2015),从而提高样本效率和可解释性(Gardner et al., 2018)。
结构化信息。适当的结构化信息对于解决复杂的MOBO问题至关重要,因为它能引导代理模型和采集函数朝向可行和有希望的区域。我们基于算法属性、系统约束和经验观察(S1-5)融入了多种类型的结构化信息:
* S1. 算法重参数化:负载分数编码。我们不直接优化路由阈值 $\tau$,而是将其重参数化为负载分数——分配给每种模型类型的系统负载比例。这种重参数化有几个优点:原始阈值的微小变化可能因非均匀的分数分布而导致负载分配出现大的、不连续的跳跃,而负载分数与系统负载和延迟呈线性映射关系,稳定了优化过程,并能自然地实施线性约束(例如,$\sum_{m=1}^M f_m = 1$,其中 $f_m$ 是分配给模型类型 $m$ 的负载分数)。
* S2. 系统约束:预算执行。我们通过对总部署成本施加硬约束来确保预算可行性。对于任何部署决策 $c$,所有模型类型的累计成本必须满足 $\sum_{m=1}^M \sum_{n=1}^N a_{m,n} \cdot b_n \leq B_{cap}$,其中 $b_n$ 是n型GPU的成本,$B_{cap}$ 是预算上限。违反此约束的配置将从搜索空间中排除。
* S3. 系统约束:GPU可用性。类似地,我们对GPU资源可用性施加硬约束。对于任何部署决策,每种类型的累计GPU分配必须满足 $\sum_{m=1}^M a_{m,n} \leq d_n$,适用于所有GPU类型 $n$,其中 $d_n$ 是n型GPU的可用数量。违反此约束的配置将被排除。
* S4. 输出转换:尺度归一化。由于延迟和质量目标在数量级上存在巨大差异,我们应用了特定于目标的转换:系统延迟 $L(\theta)$ 转换为 $\log(L(\theta))$ 以稳定大的变化,而响应质量 $Q(\theta)$ 转换为 $\log\frac{Q(\theta)}{1-Q(\theta)}$(logit变换)以线性化接近边界值的小变化。这些转换改善了GP的条件数和优化稳定性。
* S5. 异构GPU感知:模型-GPU偏好编码。如第3节所示,不同模型类型在不同GPU类型上表现出不同的性能特征。我们将此观察编码为一个偏好矩阵 $S \in [0, 1]^{M \times N}$,其中 $s_{m,n}$ 表示GPU类型 $n$ 对模型类型 $m$ 的适用性。此结构化信息通过一个偏好加权核被并入GP中:
其中 $k_c$ 是基础部署核,$w(c) = \exp{\beta \sum_{m=1}^M \sum_{n=1}^N a_{m,n} \cdot s_{m,n}}$ 是一个权重函数。这里,$a_{m,n}$ 表示在配置 $c$ 中分配给模型类型 $m$ 的类型 $n$ 的GPU数量,$\beta$ 是一个可学习的参数,控制偏好偏倚的强度。这种指数加权增加了使用偏好GPU类型的配置之间的协方差,从而使GP偏向于有利的分配。这种结构性偏倚通过引导早期探索朝向有希望的配置来提高样本效率,同时在其他约束(如预算、可用性)偏向非偏好GPU类型时,仍然可以被数据覆盖。
受约束的qNEHVI。我们采用受约束的qNEHVI(Daulton et al., 2021)来整合特定的性能约束,例如系统延迟 $L(\theta) \leq L_{max}$ 和响应质量 $Q(\theta) \geq Q_{min}$,其中 $L_{max}$ 和 $Q_{min}$ 分别表示最大延迟和最小质量要求。我们将这些约束重新表述为可行性条件:
$$g_{1}(\boldsymbol{\theta})=L(\boldsymbol{\theta})-L_{\max} \leq 0, \quad g_{2}(\boldsymbol{\theta})=Q_{\min }-Q(\boldsymbol{\theta}) \leq 0$$我们利用GP代理模型对 $L(\theta)$ 和 $Q(\theta)$ 的联合后验分布来评估约束满足情况。受约束的qNEHVI采集函数通过将蒙特卡罗积分限制在可行样本上,来计算预期超体积提升(Balandat et al., 2020):
$$\text{Acq}(\boldsymbol{\theta}) = \mathbb{E} \left[ \text{HVI}(\boldsymbol{\theta}) \cdot \mathbb{I} \left[ \bigcap_{i=1}^{2} \{ g_i(\boldsymbol{\theta}) \leq 0 \} \right] \right],$$其中,期望是在 $(L(\theta), Q(\theta))$ 的联合后验分布的样本上计算的,$I[\cdot]$ 是可行性的指示函数。这种形式保留了目标和约束在采样过程中的相关性,确保优化器能够自然地在探索帕累托前沿和满足约束之间取得平衡(Gardner et al., 2014)。
总结。在线阶段采用了一个MOBO框架,该框架高效地搜索路由策略和模型部署的联合空间。通过整合加性核、结构化信息(例如,负载分数编码、模型-GPU偏好编码),并通过受约束的qNEHVI强制执行硬约束,该框架能够收敛到在给定约束和要求下平衡系统延迟和响应质量的帕累托最优解。
6 系统实现
整体流程。BOUTE的整体运行流程如下:为启动服务过程,MOBO框架生成最优的路由策略和模型部署,这些配置随后用于配置路由器(Ong et al., 2024)并在异构GPU资源上实例化异构模型。在服务期间,传入的查询由一个协调器(Yao)处理(详见附录C),该协调器连接到所有模型,并根据调度结果的指导将查询分派到合适的模型;生成的响应随后被收集并返回给协调器。
MOBO优化核。我们使用GPyTorch(Gardner et al., 2018)实现多个优化核,以构建一个高效的MOBO框架:(i) 一个针对路由特征($k_\tau$)的ARD Matern–5/2´核(MaternKernel,nu=2.5);(ii) 一个针对部署特征($k_c$)的ARD Matern–3/2´核(MaternKernel,nu=1.5);(iii) 通过ProductKernel(kτ, kc)构建一个低权重的交互项 $k_\times$;以及(iv) 一个自定义的PreferenceWeightedKernel,它包装 $k_c$ 以注入模型到GPU分配的结构化偏好。每个核都用ScaleKernel包装,以学习特定于核的输出尺度,而ARD长度尺度则通过最大化高斯过程边际似然来联合学习。复合核 $(k_\tau + \tilde{k}c + k\times)$ 被集成到BoTorch(Balandat et al., 2020)的SingleTaskGP模型中,用于系统延迟和响应质量,并通过ModelListGP组合。输出转换应用如下:对系统延迟使用Log+Standardize,对响应质量使用Logit+Standardize。
A4 实验环境
硬件环境。实验在4种类型的GPU服务器上进行,每种服务器配备8个GPU:NVIDIA H100-80G($2.64-3.07/h)、RTX PRO 6000-96G($1.84-2.09/h)、RTX 5090-32G($0.89/h)和RTX 4090-24G($0.59/h)。在H100服务器内部,GPU通过NVLink连接,带宽为300GB/s;在RTX 5090和4090服务器内部,GPU通过PCIe连接,带宽为60GB/s。我们在$30/h的相同价格预算下比较了同构和异构模型部署。
模型、路由器和数据踪迹。我们采用Llama3.1-8B(较小)和Llama3.1-70B(较大)作为系统中的两种模型类型,它们是具有代表性且流行的开源Transformer模型(Dubey et al., 2024)。模型路由采用(Ong et al., 2024)中的路由器,该路由器在Chatbot Arena数据集上训练,并用GPT-4-as-a-judge标记的数据和MMLU验证集的黄金标签数据进行了增强。路由开销可忽略不计,占总推理成本的不到1%。我们遵循先前的工作,基于真实世界数据生成工作负载踪迹(Peng et al., 2025; Zhong et al., 2024)。我们的测试踪迹从GSM8K(Cobbe et al., 2021)和MTBench(Zheng et al., 2023)中二次采样得到。
软件配置与基线系统。我们使用vLLM(Kwon et al., 2023)作为基础服务框架。我们将BOUTE与四个基线系统进行比较:
1. Stand-Alone-Homo:使用vLLM在同构资源(H100 GPU)上服务Llama3.1-70B模型。
2. Stand-Alone-Hetero:使用vLLM在异构资源上服务Llama3.1-70B模型。
3. RouteLLM:一个最先进的开源LLM路由框架(Ong et al., 2024),在Llama3.1-8B和Llama3.1-70B模型之间根据查询复杂性进行路由,每个模型由vLLM服务,且在模型类型间进行统一的资源分配。
4. BOUTE-Homo:BOUTE在同构资源上进行路由和部署优化,服务Llama3.1-8B和Llama3.1-70B模型。
评估指标与设置。我们基于总吞吐量和不同百分位的延迟(平均、P95、P99、P100)来评估系统性能,其中P95延迟表示95%请求完成的最大响应时间。我们在GSM8K(质量要求为86、88、90)和MTBench(质量要求为8.1、8.3、8.5)上进行比较。系统总负载设置为100 req/s。为保证公平比较,我们在价格预算下为每个基线调整模型部署,并报告实验中的最佳值。
A4 实验结果
端到端评估
GSM8K工作负载的端到端系统性能。如图4(左)所示,我们在GSM8K工作负载上评估了BOUTE与基线方法的性能:
* (i) 与单模型服务相比(Stand-Alone-Homo和Stand-Alone-Hetero):BOUTE在所有质量要求下均表现出卓越性能,P95延迟最多降低91%(平均57%),吞吐量最多提高90%(平均55%)。单模型服务无法利用异构模型的优势,将不同复杂度的查询都路由到单一模型,导致相对质量差或P95延迟过高。
* (ii) 与RouteLLM相比:BOUTE将P95延迟最多降低66%(平均50%),吞吐量最多提高71%(平均52%)。RouteLLM采用统一资源分配,未考虑不同模型类型的特性,因为即使分配较少的工作负载,大模型通常也需要更多计算资源。例如,在GSM8K质量要求为91的踪迹上,由于70%的查询由资源分配统一的大模型处理,RouteLLM的吞吐量甚至低于单模型部署。
* (iii) 与BOUTE-Homo相比:BOUTE将P95延迟最多降低15%(平均14%),吞吐量最多提高16%(平均14%)。尽管BOUTE-Homo根据系统负载进行了自适应资源分配,但它未能充分利用不同模型类型的GPU偏好,从而限制了成本效益。
相比之下,BOUTE协同优化了路由策略(哪个模型服务哪个查询)和部署策略(哪个GPU服务哪个模型),从而实现了卓越的LLM服务成本效益。
MTBench工作负载的端到端系统性能。在MTBench工作负载上的额外实验进一步验证了BOUTE的性能。如图4(右)所示,与单模型服务相比,BOUTE性能提升高达157%(平均115%);与RouteLLM相比,性能提升高达80%(平均42%);与BOUTE-Homo相比,性能提升高达21%(平均20%)。这些结果表明BOUTE在不同工作负载下都具有全面的成本效益。
调度评估
调度结果。表1展示了MOBO框架的调度结果,揭示了关于路由和资源分配策略的几个关键洞察:
* (i) 负载分配适应质量要求:随着质量要求的提高,框架逐渐将系统负载和计算预算转向Llama3.1-70B模型。例如,在GSM8K上质量阈值为87时,小、大模型分别处理73%和27%的负载;当要求提高到91时,分布变为30%和70%。
* (ii) 资源/预算分配反映模型特定需求:资源分配不仅基于负载,还考虑了模型的内在特性(如计算和内存需求)。例如,在MTBench上质量要求为8.3时,小、大模型负载分配为61%和39%,但预算仅为24%和76%,因为小模型资源需求少,而大模型需要更多预算以防成为瓶颈。
* (iii) 异构GPU分配优化资源利用:框架根据计算需求和GPU可用性,策略性地为不同模型分配异构GPU。例如,在MTBench上质量要求为8.1时,所有RTX 5090和4090 GPU都分配给了小模型,并补充了一个RTX PRO 6000 GPU;而大模型则部署在计算和内存能力更强的四个H100和两个RTX PRO 6000 GPU上。
这些结果验证了BOUTE能够综合考虑模型和硬件的异构性、质量要求、预算及GPU约束,生成最大化系统性能的路由和部署策略。
Table 1. 图4中使用的BOUTE的路由策略和资源分配。
调度时间。如表2所示,BOUTE在3种GPU类型、共24个GPU的集群上调度时,不到30秒即可收敛到帕累托最优解。随着GPU类型和数量的增加,调度时间近线性增长,显示了其良好的可扩展性。为了验证结构化信息的有效性,我们评估了禁用S1-S5中描述的结构化信息的BOUTE (w/o structural info)版本。实验表明,没有结构化信息,BOUTE需要大约8倍多的BO评估才能收敛,导致总调度时间从不到一分钟增加到4-9分钟。最后,我们评估了BOUTE (w/o offline prep)版本,禁用离线准备阶段。其调度时间急剧增加到12-30分钟以上,因为每次贝叶斯优化评估都必须重新运行模拟器,使优化过程成本大增。
Table 2. BOUTE的调度(算法收敛)时间和可扩展性。BOUTE (w/o structural info)禁用了算法重参数化、输出转换和异构GPU感知。BOUTE (w/o offline prep)禁用了性能数据库。当解连续20次迭代保持稳定时,认为算法收敛。
案例研究
BOUTE的帕累托最优性。如图5所示,我们在不同质量要求下对BOUTE的P95延迟进行了评估。BOUTE始终实现了优越的P95延迟性能。具体观察如下:
* (i) BOUTE通过集成异构资源和有效调度,对BOUTE-Homo表现出帕累托优势。在同等质量要求下,BOUTE延迟更低;在给定延迟约束下,BOUTE质量更高。
* (ii) BOUTE同样对BOUTE (w/o structural info)表现出帕累托优势。没有结构化信息,尽管调度开销增加,但系统常收敛于局部最优,性能更差,在多数情况下甚至不如BOUTE-Homo。
* (iii) 采用统一资源分配的RouteLLM在所有质量要求下表现最差。
这些结果共同证明了(i)集成异构资源的有效性,(ii)将结构化信息纳入调度过程的关键重要性,以及(iii)资源分配优化在路由系统中的重要性。
BOUTE的成本效益。我们评估了BOUTE在特定延迟和质量要求下的成本效益。如表3所示,为了达到相同的延迟和质量目标,BOUTE相比于Stand-Alone基线平均降低了39.7%的成本,相比RouteLLM平均降低了38.0%。此外,相较于BOUTE-Homo,BOUTE也展示了15.0%的成本降低,突显了异构模型部署的优势。这些结果验证了BOUTE在降低实时LLM服务系统运营成本方面的有效性。
Table 3. 满足质量和延迟要求所需的成本。(87, 8)表示质量和延迟要求分别为87和8秒。
A5 结论
本文专注于利用异构模型和GPU实现高成本效益的LLM服务。我们提出了BOUTE,一个采用多目标贝叶斯优化(MOBO)框架的服务系统,通过对不同查询的自适应路由决策和跨多种模型与硬件的策略性模型部署,来协同优化服务质量和延迟。实验结果表明,与基线系统相比,在相同的成本预算和质量要求下,BOUTE能够实现高达2.57倍的延迟降低(平均1.58倍),或者在维持相同性能目标的同时将成本降低15%-61%。这些结果证明了BOUTE的成本效益,我们相信它能为LLM服务的普及化做出贡献。
A6 附录
A 模拟器设计与验证
模拟器机制。我们的模拟器在多个并行模型间采用轮询(round-robin)策略进行请求分派,并对每个模型的请求处理采用先到先服务(first-come first-served)策略。单GPU处理时间基于剖析出的特性,如计算TFLOPS和内存带宽。模拟器还考虑了LLM的阶段性特征。prefill阶段是计算密集型的,因此其批处理能力由各个延迟之和决定。相比之下,decoding阶段是内存密集型的,其批处理能力由单个延迟值定义。这一区别已在多项研究中得到验证(如DistServe(Zhong et al., 2024)、Splitwise(Patel et al., 2024))。
模拟器输入。除了GPU特性,模拟器还需要一个二次采样的LLM工作负载踪迹。工作负载踪迹对于精确的性能建模至关重要,因为它提供了特定于工作负载的特性,如直接影响系统性能的输入和输出序列长度分布。
模拟器中的批处理策略。模拟器内部的批处理策略是连续批处理(continuous batching),它迭代地对请求的token进行批处理,以充分利用当前资源。GPU的内存限制约束了连续批处理的最大批次大小。
排队机制。我们的模拟器为每个模型维护一个独立的队列。一旦GPU上有空闲内存(一个请求已完成),模型将从队列中获取下一个请求进行处理。
不同并行方式的建模。张量并行和流水线并行都将单个模型的计算工作负载分割到多个设备上。对于流水线并行,模拟器通过剖析估计的通信量与观察到的延迟之间的关系来建模通信开销。对于张量并行,模拟器假设每个算子的计算成本在分割到N个GPU上时理想地按1/N的比例缩减,然后使用从微基准测试中获得的速度提升系数K(N)来调整这个理想成本,以考虑通信和同步开销。所有剖析都在调度开始前离线执行。
模拟器评估。我们在表4中展示了模拟器与实时实验相比的准确性。该表展示了我们对Llama3-70B模型在平均输入和输出长度分别为1600和16的工作负载下的吞吐量估计示例。符号(1,2,2)表示DP度为1,TP度为2,PP度为2。尽管估计并非完全精确,但它们足够可靠(估计误差在2%-7%以内),可用于选择最优配置。
Table 4. Llama3-70B模型在平均输入/输出长度为1600/16的工作负载下,不同并行配置的模拟器准确度。误差为绝对百分比误差。
B 第一阶段离线模拟的复杂度分析
对于每种模型和可用的GPU类型,我们系统地枚举使用模型并行策略的可行部署配置。模型并行包括张量并行(TP)和流水线并行(PP),它们将单个模型副本分割到多个GPU上。具体来说,对于拥有 $d_n$ 个可用单元的GPU类型 $n \in {1, ..., N}$,我们探索从1到 $d_n$ 个GPU的分配,并为每种分配规模评估所有有效的TP和PP组合。例如,一个8-GPU的分配会在(TP=1, PP=8), (TP=2, PP=4), (TP=4, PP=2)和(TP=8, PP=1)等配置下进行模拟。枚举复杂度为 $\Theta\left( |\lambda| M \sum_{n=1}^N d_n \log d_n \right)$,其中 $|\lambda|$ 代表枚举的系统负载值的数量,对数因子解释了每个GPU分配规模下有效的TP和PP组合。经过剪枝后,枚举复杂度可以降低到 $\Theta\left( |\lambda| M \sum_{n=1}^N d_n \right)$。
C 扩展的系统实现
整体流程。BOUTE的整体运行流程如下:为启动服务过程,MOBO框架生成最优的路由策略和模型部署,这些配置随后用于配置路由器并在异构GPU资源上实例化异构模型。在服务期间,传入的查询由一个协调器处理,该协调器连接到所有模型,并根据调度结果的指导将查询分派到合适的模型;生成的响应随后被收集并返回给协调器。
推理任务协调器。为在异构环境中部署BOUTE,我们采用一个任务协调器,该协调器包含一个负责为输入查询生成路由分数的路由器(Ong et al., 2024; Ding et al., 2024),并根据这些分数和我们调度算法得到的最优路由策略来分派查询。该任务协调器主要基于一个开源的去中心化计算协调实现(Yao),它利用libP2P(LibP2P, 2023)在协调器和分布式模型之间建立点对点网络连接。当任务协调器收到一个输入查询时,路由过程分三步进行:首先,路由器评估查询以根据其路由分数确定合适的模型类型。其次,协调器通过查询第5.1节中描述的本地分配搜索结果来选择所选模型类型的特定副本,该结果根据副本的异构部署能力来平衡工作负载。第三,协调器将查询定向到所选副本以执行并生成响应。
MOBO优化核。我们使用GPyTorch(Gardner et al., 2018)实现多个优化核,以构建一个高效的MOBO框架:(i) 一个针对路由特征($k_\tau$)的ARD Matern–5/2´核(MaternKernel,nu=2.5),用于捕捉阈值变化的平滑连续效应;(ii) 一个针对部署特征($k_c$)的ARD Matern–3/2´核(MaternKernel,nu=1.5),用于适应切换部署候选时更粗糙、阶梯式的转变;(iii) 通过ProductKernel(kτ, kc)构建一个低权重的交互项 $k_\times$,用于捕捉路由和部署特征之间的交叉效应;以及(iv) 一个自定义的PreferenceWeightedKernel,它包装 $k_c$ 以注入模型到GPU分配的结构化偏好,产生一个偏好加权的部署核 $\tilde{k}c$。每个核组件都用ScaleKernel包装以学习组件特定的输出尺度,而ARD长度尺度则通过最大化高斯过程边际似然来联合学习。复合核 $(k\tau + \tilde{k}c + k\times)$ 被集成到BoTorch(Balandat et al., 2020)的SingleTaskGP模型中,用于系统延迟和响应质量,并通过ModelListGP组合。输出转换应用如下:对系统延迟使用Log+Standardize,对响应质量使用Logit+Standardize。所有核均以双精度执行。
D 扩展的相关工作
LLM服务系统。近期工作提出了多种用于高效LLM服务的系统和方法。AlpaServe(Li et al., 2023)通过利用数据和模型并行来优化系统服务水平目标(SLO);DistServe(Zhong et al., 2024)和Splitwise(Patel et al., 2024)将prefill和decoding阶段分离到不同的GPU上以消除它们之间的干扰;Sarathi-Serve(Agrawal et al., 2024)通过prefill分块来优化请求批处理,以减轻prefill和decoding阶段之间的干扰;vLLM(Kwon et al., 2023)引入PagedAttention以实现高效的内存管理,从而支持更大的批处理大小和更高的吞吐量;FastServe(Wu et al., 2023)采用抢占式调度机制,优先处理较短的作业以最小化作业完成时间。这些工作主要通过批处理优化、阶段分离和内存管理等技术来提升服务性能。相比之下,我们的工作专注于利用异构LLM和GPU类型进行部署调度,以实现成本效益高的LLM服务。
异构模型路由。模型路由系统部署一个路由器模型,根据查询特性动态地将传入查询导向不同的LLM,主要目标是在保持输出质量的同时优化成本、延迟或吞吐量等系统指标。RouteLLM(Ong et al., 2024)使用偏好数据和校准的置信度分数来制定成本最优的路由策略;HybridLLM(Ding et al., 2024)提出了一个自适应LLM路由系统,根据查询复杂性在大小模型之间切换;FrugalGPT(Chen et al.)将LLM从最弱到最强进行级联,当某个模型产生满意响应时停止,以最小化成本;Router-Bench(Hu et al., 2024)为评估不同查询类型和模型组合的路由策略提供了一个全面的基准。这些工作主要关注于查询级模型选择的路由器设计和路由策略,对路由对系统性能的影响关注有限。相比之下,我们的工作从服务提供商的角度,解决了部署级优化问题,以进一步提升系统性能。
异构模型部署。异构模型部署是指利用具有不同计算能力、内存容量或可用性特征的GPU来优化资源利用和成本效益的LLM系统。其中,HexGen(Jiang et al., 2025d)提出了非对称模型并行和基于演化的调度,用于在异构GPU和网络间分配计算和通信;ThunderServe(Jiang et al., 2025b)通过将prefill和decoding阶段部署到与其工作负载需求相匹配的异构GPU上,来适应它们不同的计算特性;Helix(Mei et al., 2025)将异构集群形式化为流网络,并利用最大流算法来最大化系统吞吐量;SpotServe(Miao et al., 2024)建议利用抢占式实例来实现廉价且成本效益高的LLM服务;SkyServe(Mao et al., 2025)提供了一个多云服务框架,自动在不同云提供商和地区间配置LLM副本以优化成本和可用性。我们的工作有着相似的动机:利用异构资源实现成本效益高的LLM服务,并且我们发现它能自然地补充异构模型路由。
混合模型并行。混合模型并行结合了张量并行和流水线并行,以有效地将LLM训练和推理扩展到单一策略无法达到的规模(Zheng et al., 2022; Li et al., 2023; Miao et al., 2022; Jiang et al., 2022; Wang et al., 2024; He et al., 2025)。混合并行使得在多个GPU上拟合大规模模型成为可能,同时最小化了机器间的通信开销和延迟,这对于满足实时推理要求至关重要。
💬 评论讨论
欢迎在这里分享您的想法和见解!