WarmServe:一次加载多模型的 GPU 预热机制¶
会议: ICML 2026
arXiv: 2512.09472
代码: https://github.com/LLMServe/WarmServe
领域: LLM 效率 / 多模型服务
关键词: GPU 预热, 多 LLM 服务, 工作负载预测, 冷启动, 资源效率
一句话总结¶
WarmServe 通过分析 LLM 服务工作负载的长期周期性规律,主动将多个模型参数预加载到 GPU,配合优化的放置算法和动态 KV 缓存预留策略,使系统能在请求突发时快速启动新实例——尾部 TTFT 相比现有系统降低 50.8 倍。
研究背景与动机¶
领域现状:多 LLM 服务系统需在共享 GPU 集群中并发部署多模型以提高资源利用率。主流方案有两类——(1)自动扩展:根据当前负载动态创建实例但冷启动延迟大;(2)GPU 共享:在同一 GPU 上并置多模型但严重受限 KV 缓存容量。
现有痛点:自动扩展在请求突发时需现场加载模型参数,导致严重 TTFT;GPU 共享虽避免初始化延迟,但每个模型分到的 KV 缓存极少。
核心矛盾:现有系统缺乏对未来工作负载特征的感知——自动扩展只能被动响应,GPU 共享的放置策略必须随时间保持稳定。
关键观察:虽然短期请求到达具有随机性,但实际生产环境中 LLM 服务的长期统计特性表现出强周期性——峰值负载在 5 分钟窗口内可以以平均 7.3% 相对误差精度预测。
切入角度:充分利用这种可预测性,采用主动式预热策略——在预测到未来负载突增前主动将备用模型副本加载到空闲 GPU 上。
核心 idea:引入"一次加载多模型"机制——将多个模型参数同时加载到单个 GPU 内存中;某模型遇请求突发时立即利用已预热参数启动活跃实例,然后快速驱逐其他模型参数。驱逐权重比按需加载快得多。
方法详解¶
整体框架¶
WarmServe 要解决的是多 LLM 服务的冷启动难题:请求一突发就现场加载上百 GB 的模型参数,尾部 TTFT 被拖垮。它的做法是先预测、再预热、最后快速切换。系统把 GPU 集群里的工作节点分成三类——空闲(idle)、通用(universal)、专用(dedicated):预测器算出未来各模型的负载后,放置算法挑空闲节点把多个备用模型一次性预热进去,让它升级为通用节点;某个预热模型一旦收到突发请求,所在节点立刻升级为专用节点专跑这个模型、同时驱逐其余模型的参数;此外即将释放的专用节点也会被借来,用它未用的 KV 缓存空间潜伏式地预热下一批模型。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
A["历史负载序列"] --> B["修正式季节性预测器 CSP<br/>季节性基线 + 指数加权修正<br/>→ 各模型未来负载(5 分钟窗口)"]
B --> C["优先级隔离的放置算法<br/>按优先级贪心选 GPU 组,防跨模型驱逐"]
C --> D["主动预热 + KV 缓存预留<br/>借即将释放节点的未用 KV 空间预加载多模型"]
D --> E["空闲节点 → 通用节点<br/>同一 GPU 预热多个备用模型"]
E -->|某模型收到突发请求| F["通用节点 → 专用节点<br/>专跑该模型并驱逐其余参数 → 降低尾部 TTFT"]
关键设计¶
1. 修正式季节性预测器(CSP):把"短期随机、长期周期"的负载变成可预测信号
主动预热的前提是"知道未来要扩谁",但 LLM 请求短期到达是随机的,无法直接预测。WarmServe 的观察是:长期统计特性有强周期性,于是它把预测拆成两部分——季节性基线 \(P_{k,i} = \frac{1}{D}\sum_{d=1}^{D}L_{k-d,i}\) 取过去 \(D\) 天同一时段 \(i\) 的平均负载,再叠一个修正项 \(\Delta_{k,i} = \frac{\sum_{w=1}^{\min(i,N)}(L_{k,i-w}-P_{k,i-w})\cdot 2^{w-1}}{2^{\min(i,N)}-1}\) 把当天最近几个窗口的实际偏差按 \(2^{w-1}\) 指数加权(越近的误差权重越高),最终预测 \(\hat{L}_{k,i} = P_{k,i} + \Delta_{k,i}\)。基线吃住周期规律、修正项快速跟住当天趋势漂移,两者相加在 5 分钟窗口下做到峰值负载 92.7% 的预测精度,给后续预热提供了可靠的提前量。
2. 优先级隔离的放置算法:避免一个 GPU 被释放就连锁驱逐一片模型
预测出要预热哪些副本后,难点是放在哪。LLM 跨多 GPU 张量并行,单个 GPU 一被抢走就会迫使整组模型下线,形成"跨模型干扰"——次要模型的扩容可能把重要模型的预热成果连带砸掉。算法给每个待预热副本算一个优先级分数(综合预期负载与当前实例数的差距、冷启动延迟等),按分数降序处理;对每个副本贪心地选一组 GPU,优先选那种"高分副本不会被低分副本驱逐"的组合,从而用优先级把重要模型保护起来。这样既维持了贪心的运行时低开销(无需在线求解整数规划),又把干扰约束在不破坏关键模型的范围内。
3. 主动预热 + KV 缓存预留:把超大检查点的 I/O 藏进 GPU 还在运行的闲置期
LLM 检查点动辄 128GB+,临到突发再加载、几十秒的窗口根本来不及,这是传统预热常失败的根因。WarmServe 反过来利用"负载下降、实例即将关闭"的时机:自动扩展器要回收某些实例时,它们通常还留着大量未用的 KV 缓存空间,正好拿来潜伏式地预加载下一批模型参数。为保证在用请求不被挤掉,系统先按 \(R = \max(C \cdot Q/B, T + C/B)\) 算出必须保留给现有请求的 KV 缓存(取"满足排队请求"与"满足吞吐"两个约束的上界),剩余空间才用于预热;一旦空间吃紧就动态驱逐已预热的权重让位给真实负载。等于把 128GB 的搬运成本拉长到 GPU 仍在服务的空闲带宽里,而不是堵在突发那一刻。
实验关键数据¶
主实验¶
| 系统 | P95 TTFT(s) | P99 TTFT(s) | 相对改进 | 最大 RPS |
|---|---|---|---|---|
| SLLM-GPU | 1.23 | 3.45 | - | 10 |
| MuxServe | 0.89 | 2.34 | - | 6 |
| WarmServe(无主动预热) | 0.18 | 0.31 | 6.8×-11.1× vs SLLM | 20 |
| WarmServe(完整) | 0.17 | 0.29 | 7.2×-11.9× vs SLLM / 5.2× vs MuxServe | 25 |
在 15 RPS、\(\alpha\)=0.5 设置下,WarmServe 相比 SLLM-GPU 实现 1.53-50.79× P99 TTFT 降低。
消融实验¶
| 配置 | 100ms 内 TTFT 比例 | 说明 |
|---|---|---|
| 完整模型 | 100% | baseline |
| 去掉模型预热 | 15% | 性能崩溃 |
| 去掉放置算法 | 29% | 干扰剧增 |
| 去掉主动预热 | 88% | 仍改进但比完整差 32.87× |
| 预热窗口 3 分钟 | 46% | 窗口过小预测不稳定 |
| 预热窗口 40 分钟 | 30% | 窗口过大无法捕捉短期变化 |
关键发现¶
- 模型预热提供数十倍 TTFT 改进。
- 主动预热策略带来改进最显著(高达 32 倍)。
- 放置算法在高负载下防止模型干扰雪崩。
- 5 分钟预热窗口最优。
- 工作负载预测:5 分钟窗口下平均负载预测精度 94.7%,峰值 92.7%。
亮点与洞察¶
- 发现 LLM 工作负载的长期周期性:打破"LLM 请求完全不可预测"的认知。
- 一次加载多模型的创新:完美结合资源效率与性能优势。
- KV 缓存的双重用途:将 KV 缓存从单纯激活值存储拓展为预热的临时存储。
- 贪心放置算法的优先级隔离思想:简单高效,运行时无需求解复杂整数规划。
局限与展望¶
- 工作负载预测的适用边界——对完全新模型或特殊业务事件可能失效。
- 多数据中心/多租户场景缺失。
- 模型尺寸差异的处理不足——并置 7B + 70B 时效果有限。
- 改进:融合在线学习;多模型集成预测;详细分析预热失败率和能耗影响。
相关工作与启发¶
- vs ServerlessLLM/MuxServe:WarmServe 通过预热中间层在两者之间找到新的设计空间。
- vs serverless 预热:WarmServe 特化于 LLM 的三大挑战(跨多 GPU 依赖、极端模型尺寸、KV 缓存)。
- vs KV 缓存优化:利用缓存未用空间作为预热临时存储,体现"充分利用系统资源"哲学。
评分¶
- 新颖性: ⭐⭐⭐⭐⭐ 识别 LLM 工作负载长期可预测性,创新的一次加载多模型机制。
- 实验充分度: ⭐⭐⭐⭐ 单机 + 大规模模拟 + 消融 + 预测精度验证。
- 写作质量: ⭐⭐⭐⭐⭐ 逻辑清晰,动机递进自然。
- 价值: ⭐⭐⭐⭐⭐ 50× TTFT 改进具实际部署价值。