GORGO:跨区域网络感知大语言模型服务的在线调优 GORGO: Online Tuning for Cross-Region Network-Aware LLM Serving
用进化策略在线调优负载均衡权重,优化跨区域LLM服务的首字延迟
前置知识
Time-to-First-Token (TTFT)
TTFT 是大语言模型推理中的关键指标,表示从用户发送请求到收到第一个生成令牌的时间。它主要由三个部分组成:网络延迟(客户端到推理引擎的往返时间)、预填充时间(处理输入提示词所需的时间)和排队延迟(等待前面的请求完成的时间)。在连续批处理(continuous batching)的推理引擎中,TTFT 直接影响用户感知的响应速度,是优化用户体验的核心指标之一。
本文的核心目标就是优化 p95 TTFT,理解这个概念对于理解 GORGO 的成本模型、优化目标和实验评估至关重要。
KV-Cache
KV-Cache 是大语言模型推理引擎中用于存储键值对缓存的机制,它保存了输入序列的中间计算结果。当新的请求与之前处理过的序列共享相同的前缀时,可以直接从 KV-Cache 中复用这些中间结果,避免重复计算,从而显著减少预填充时间。SGLang 的 RadixAttention 和 vLLM 的 PagedAttention 都是基于这一思想实现的。
本文的核心创新之一就是在负载均衡决策中综合考虑 KV-Cache 的本地性(prefix reuse),理解这个概念对于理解 GORGO 的成本模型和与基线策略的比较至关重要。
Continuous Batching
连续批处理是一种大语言模型推理引擎的优化技术,它允许新的请求在当前批处理尚未完成时就被加入批处理中,只要还有并发槽位可用。与传统的静态批处理相比,连续批处理可以更好地利用 GPU 的计算资源,减少请求的等待时间。SGLang 和 vLLM 等现代推理引擎都支持这一特性。
本文的一个重要发现是 GORGO 可以利用连续批处理的特性来优化 TTFT,但这可能会以牺牲端到端延迟为代价。理解这个概念对于理解实验结果和局限性分析至关重要。
Evolutionary Strategy (ES)
进化策略是一种基于自然选择的优化算法,本文使用的是 (1+1)-ES 变体。它从一个父代权重开始,通过在 log 空间中乘以正态随机变量来生成子代权重。如果子代在目标指标(这里是 p95 TTFT)上表现更好,则替换父代。同时,算法会根据 Rechenberg 的 1/5 成功规则动态调整步长,保持探索和利用的平衡。
本文使用 (1+1)-ES 来在线调优 GORGO 的权重参数 Wrtt 和 Wqueue,理解这个算法对于理解方法的核心创新和实验设置至关重要。
研究动机
在大语言模型(LLM)服务系统中,用户的感知延迟主要由首字延迟(TTFT)决定。在单个副本上,TTFT 受到三个成本的影响:预填充时间、从客户端(代理)到副本的往返时间(RTT)以及在前面请求后面的排队延迟。前缀缓存可以消除多轮对话中之前轮次的预填充成本。随着 LLM 上下文窗口长度的增加,前缀缓存的好处变得更加显著:缓存一个 100,000 个令牌的提示词的 90% 可以将预填充成本减少到 10,000 个令牌,从而大幅降低 TTFT。然而,现有的负载均衡策略(如 least-load、session affinity、prefix-reuse)通常只考虑副本负载或 KV-Cache 命中率中的一个因素,没有考虑跨区域场景中的网络延迟,这可能导致负载和 KV-Cache 在副本间分布不均。
本文的目标是本文的目标是提出一个名为 GORGO 的代理架构,它综合考虑网络延迟、预填充成本和排队延迟这三个影响 TTFT 的因素,使用可调参数来归一化这些不同单位的测量值。通过进化策略直接优化 p95 TTFT,GORGO 能够在保持高前缀缓存复用率的同时,最小化负载饱和和异构网络延迟的负面影响。为了评估不同的路由策略,本文还发布了一个名为 ART-Chat-2.5M 的合成数据集,它从具有高前缀复用率和长上下文提示词的生产请求元数据中生成,遵循 Mooncake 的 FAST'25 格式。
与已有工作不同的是,本文的独特切入角度是:将 TTFT 的三个相关成本作为每副本成本的加性项,并让在线 TTFT 反馈来优化缩放权重,而不是使用操作员调优的常数或离线分析。与现有工作相比,GORGO 是第一个在这个空间中评分缓存本地性、副本负载和广域延迟在单一成本中的单路由策略,并且从部署自身的每请求 TTFT 流中推导成本权重,无需修改引擎。这使得 GORGO 能够适应工作负载 regimes 未知且无法负担每次重新部署前专用校准窗口的生产环境。
核心方法
GORGO 的方法整体思路是基于一个成本模型,该模型将影响 TTFT 的三个因素(网络延迟、排队延迟和预填充时间)作为加性项。代理根据这个成本模型计算每个副本的成本,并将请求路由到成本最低的副本。核心创新是使用可调权重来归一化这些不同单位的测量值,并通过进化策略在线调优这些权重,直接优化 p95 TTFT。为了调优和压力测试不同的路由策略,作者从生产请求中编译了一个 LLM 流量跟踪,其中包含高前缀复用率和长上下文提示词。
GORGO 的核心创新点在于:首先,它提出了一个统一的成本模型,将网络延迟、排队延迟和预填充时间作为加性项,并通过可调权重 Wrtt、Wqueue 和 Wprefill 来归一化这些不同单位的测量值。其次,它使用 (1+1) 进化策略在线调优这些权重,直接优化 p95 TTFT,而不是依赖手动调优的常数或离线分析。最后,它从部署自身的每请求 TTFT 流中推导成本权重,无需修改推理引擎。这使得 GORGO 能够适应工作负载 regimes 未知且无法负担每次重新部署前专用校准窗口的生产环境。
方法步骤详情
GORGO 的方法步骤可以描述如下:第一步,对于每个推理引擎副本 i,持有缓存令牌前缀集合 ci,计算成本 TTFT = Wrtt * Tnetwork(RTTi) + Wqueue * Tqueue(i, Σj xj) + Tprefill(xr \ ci),其中 Tnetwork 是客户端到服务器的往返时间,Tqueue 是在传入请求 r 之前请求处理的持续时间,Tprefill 是输入序列 xr 不在副本 i 上缓存的部分的预填充时间。第二步,GORGO 代理将请求路由到计算成本最低的副本。第三步,使用 (1+1) 进化策略在线调优权重 Wrtt 和 Wqueue。每个父代权重 xt,k 在 log 空间中乘以正态随机变量 zk 乘以步长 σ 来生成子代权重 x'k,并将 x'k 限制在超参数范围 [lok, hik] 中。第四步,当 x' 在目标指标(p95 TTFT)上击败父代权重 xt 时,将权重更新为 x',并根据 Rechenberg 的 1/5 成功规则调整 σ,保持大约每五个提议接受一个子代。
技术新颖性
GORGO 的技术新颖性体现在多个方面:首先,它是第一个在这个空间中评分缓存本地性、副本负载和广域延迟在单一成本中的单路由策略,并且从部署自身的每请求 TTFT 流中推导成本权重,无需修改引擎。其次,它使用 (1+1) 进化策略进行在线调优,与贝叶斯优化或 bandit 方法相比,它不需要维护代理模型,能够在 2 维权重空间中快速、无开销地收敛。最后,它发布了一个新的数据集 ART-Chat-2.5M,这是第一个针对缓存感知策略基准测试的长上下文、多轮数据集,从具有高前缀复用率和长上下文提示词的生产请求元数据中生成,遵循 Mooncake 的 FAST'25 格式。
实验结果
实验在三个 30 分钟的窗口上进行,使用 ART-Chat-2.5M 跟踪中的高用户多样性窗口。在调优窗口(4月5日),GORGO 学习到权重 wrtt=0.276、wqueue=0.5,初始化权重为 wrtt=0.5、wqueue=0.1。在保持评估窗口中,GORGO 的权重被冻结,策略在每个基线策略的 p95 TTFT 上都表现最好。与 session-affinity 相比,GORGO 在保持评估窗口中改善了 p95 TTFT 6.9-15.5%,E2E 延迟 14.3-30.9%。在调优窗口中,GORGO 在 p95 TTFT 上略低于基线策略,因为进化策略主动探索参数空间并测试比学习到的解决方案更差的权重,但在 672 个样本(第 18 个进化步骤)后收敛(Figure 3)。负载扫描显示,当跨越 time_scale 参数扫描时,SGLang 推理引擎达到饱和点。达到并发阈值后,请求开始经历 HOL 排队延迟。在 time_scale=3.0 后,策略的 p95 TTFT 和 p95 E2E 延迟改善了 3 倍以上。值得注意的是,time_scale 扫描显示 GORGO 由于调优良好的负载项,比其他策略更早打破饱和点。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| 跨区域LLM服务负载均衡 | p95 TTFT (ms) | 1584-2514 | 1875-3970 | 6.9-60.2% |
| 跨区域LLM服务负载均衡 | p95 E2E 延迟 (s) | 3.28-8.91 | 4.75-22.63 | 14.3-85.5% |
| 跨区域LLM服务负载均衡 | p50 TTFT (ms) | 398-673 | 457-1477 | 2.3-73.0% |
| 跨区域LLM服务负载均衡 | p99 TTFT (ms) | 2061-4473 | 2402-9613 | 9.9-78.6% |
局限与改进
作者承认的局限性包括:首先,评估基于单个生产跟踪和同质机队(三个区域,每个副本两个 L40S GPU);对其他工作负载、硬件混合和副本数量的概括未经测试。其次,由于在线调优器优化 p95 TTFT,它可以通过将负载集中在最近的副本来利用连续批处理,以 E2E 和 ITL 尾部延迟为代价交换 TTFT;队列项缓解但不能消除这一点。最后,论文不考虑预填充/解码分离。额外的观察局限性包括:进化策略的收敛速度可能因工作负载特性而异,可能需要更多样本才能找到最优权重;方法依赖于准确的网络延迟测量,如果网络条件变化剧烈,可能会影响性能;ART-Chat-2.5M 数据集是合成数据,虽然从生产元数据生成,但可能无法完全反映真实的用户行为。
独立分析的弱点
GORGO 的一个主要弱点是它专注于优化 p95 TTFT,这可能导致在连续批处理场景中出现次优的端到端延迟。如论文所述,进化策略可以学习到设置 wqueue=0 并保持 wrtt≈0.23 的异常权重值,导致 p95 TTFT 比次优策略好 17%,但这会集中所有请求到最近的副本,一旦请求进入内存受限的解码阶段,副本的内存头部空间饱和,KV-Cache 在 GPU 和 CPU 内存之间抖动,导致 ITL/E2E 延迟崩溃。改进方向可以是设计多目标优化策略,同时考虑 TTFT 和 E2E 延迟;或者添加约束条件,防止过度集中在单个副本。另一个弱点是 (1+1)-ES 可能陷入局部最优,特别是在高维权重空间中。改进方向可以是使用更强大的进化策略或结合其他优化方法。此外,方法假设网络延迟相对稳定,但在实际部署中,网络条件可能剧烈变化。改进方向可以是添加自适应机制来处理网络条件变化。
未来方向
作者提出的未来工作方向包括:扩展评估到其他工作负载、硬件混合和副本数量,以验证方法的泛化能力;研究预填充/解码分离的架构,并探讨 GORGO 如何与这些架构集成。基于成果可延伸的未来工作方向包括:设计多目标优化策略,同时考虑 TTFT、E2E 延迟和其他指标;研究自适应调优窗口策略,在不同工作负载 regimes 之间动态切换;探索更强大的进化策略或结合其他优化方法来避免局部最优;添加故障检测和恢复机制,处理副本故障或网络中断;研究 GORGO 与其他分布式推理技术(如请求迁移、缓存共享)的集成。
复现评估
GORGO 的复现性较强。代码和 ART-Chat-2.5M 数据集可以在 https://github.com/Arcadia-Research-Team/GORGO 上找到。论文提供了详细的实验设置:代理和引擎配置、基线策略、调优和评估窗口。实验使用了一个小 CPU 工作器上的 GORGO 代理,控制三个区域的专用 SGLang 推理引擎:us-ashburn、eu-frankfurt 和 ap-seoul。每个引擎包含两个 L40S GPU,服务 Qwen3.5-35B-A3B 模型(FP8 格式)。在 SGLang 中,设置 max_concurrent_requests 为 64,max_output_tokens 为 128。所有策略在相同工作负载上并行基准测试,以排除网络条件方差。这些详细信息使得其他研究者可以复现实验。然而,复现实验需要访问三个不同区域的计算资源,这可能是一个障碍。此外,ART-Chat-2.5M 数据集是合成数据,虽然从生产元数据生成,但可能无法完全反映真实的用户行为。总体而言,复现难度中等,需要熟悉 SGLang、负载均衡和进化策略等技术,以及足够的计算资源。
论文图表
Figure 1 的左侧图表展示了三个数据集(ART-Chat-2.5M、WildChat-4.8M 和 LMSYS-Chat-1M)的前缀复用特征。ART-Chat-2.5M 的前缀复用主要是用户内复用(89%),跨用户复用最小(0.3%),这反映了长上下文、多轮数据的特征;WildChat 的前缀复用主要是跨用户复用(28%,共享模板);LMSYS 的跨用户复用最小(3%),并且由于缺少客户端源字段而没有用户内复用。右侧图表展示了三个数据集在不同属性上的比较,ART-Chat-2.5M 在除了跨用户复用之外的所有属性上都达到最大值,而 WildChat 中的跨用户复用是较短平均令牌长度(2,925 个令牌)和常见系统提示词的函数。
这张图对于理解论文非常重要,因为它展示了为什么需要创建 ART-Chat-2.5M 数据集,以及它与现有公开数据集的区别。现有 LLM 聊天数据集缺乏两个关键组件用于基准测试缓存感知策略:(i)具有长上下文提示词的预填充受限请求,以及(ii)请求之间具有高前缀复用的多轮工作负载。这张图直观地展示了 ART-Chat-2.5M 在这些方面的优势,为 GORGO 方法的有效性提供了数据基础。