HyGen: Efficient LLM Serving via Elastic Online-Offline Request Co-location¶
会议: NeurIPS 2025
arXiv: 2501.14808
代码: https://github.com/UIUC-MLSys/HyGen
领域: LLM推理系统、资源调度
关键词: 在线-离线共置、延迟预测、SLO保证、吞吐优化
一句话总结¶
HyGen是干扰感知LLM推理系统,通过延迟预测和虚拟队列调度实现在线离线工作负载的弹性共置,保证SLO同时获得3.87-5.84倍吞吐改进。
研究背景与动机¶
LLM服务面临资源利用效率与SLO保障的矛盾: - 在线请求(聊天、代码生成)需低延迟,要求预留峰值容量 - 离线任务(数据合成、批处理)追求吞吐,对延迟容忍高 - 实际负载具有高度时变性(分钟级3倍波动)
现有方案通常为每类工作负载专属集群,导致离峰严重低效。本工作提出在同一实例共置的可行性和系统设计。
方法详解¶
整体框架¶
两阶段调度: 1. 在线阶段:FCFS或公平性策略,形成初始批次 2. 离线阶段:利用残余容量最大化离线吞吐,同时保证在线SLO
关键创新: - 延迟预测器:精确估计批次执行时间 - 干扰感知分析:量化共置的延迟代价 - SLO感知调度:虚拟队列保证长期SLA compliance
关键设计¶
1. 延迟预测器 模型化批次执行时间: $\(T_{batch} = f(S_p, S_d, S_p^2, S_d^2, N_p, N_d)\)$
其中S_p/S_d为prefill/decode令牌总数,N_p/N_d为请求数。线性回归因特征简单、快速。
2. SLO感知性能分析 - 建立潜在预算范围内的可行SLO - 二分搜索确定满足SLO的上限延迟预算 - 运行时使用该预算进行请求决策
3. 前缀共享最大化(PSM)策略 - 构造Trie树用离线请求编码共享前缀结构 - DFS遍历优先处理前缀重叠大的请求对 - 扩展:融合新鲜度因子防止请求饥饿
实验关键数据¶
| 基准 | 方法 | TTFT(ms) | TBT(ms) | P99 TBT(ms) | 吞吐(TPS) | 相对收益 |
|---|---|---|---|---|---|---|
| Azure | Sarathi | 125 | 85 | 310 | 285 | - |
| - | HyGen* | 135 | 88 | 325 | 520 | 1.82× |
| - | HyGen | 132 | 87 | 308 | 1100 | 3.86× |
| Mooncake | HyGen | 118 | 79 | 295 | 950 | 3.33× |
延迟预测准确性: - Llama2-7B:平均绝对百分比误差 1.78% - Qwen-14B:平均绝对百分比误差 1.07% - 前缀共享收益:4倍吞吐改进(仿真)
多SLO同时保证: - P99 TTFT固定8% vs Mean TBT 10-50%:有效权衡 - 大多数约束由较严格SLO主导,自动满足松散约束
亮点与洞察¶
- 实用化的干扰管理:
- 精细的批次级延迟预测(错误<2%)
-
SLO感知的调度,避免保守过度配置
-
虚拟队列框架借鉴:应用Lyapunov drift理论,保证长期SLA compliance而非逐请求
-
前缀共享与SLO结合:创新地将cache优化与SLO调度统一,相比固定离线QPS获额外收益
-
生产痕迹验证:采用3个真实服务(Azure、Mooncake、OpenAI风格),提升可信度
-
跨硬件通用性:从A100到A5000,吞吐收益2-5倍,参数迁移容易
局限性¶
- 张量并行下的观察局限:
- 宽模型更易扩展 → 会偏向优化这类架构
-
管道并行、序列并行下表现未知
-
探索空间有限:
- 固定chunk大小、批大小
-
未探索动态调整这些参数的潜力
-
故障恢复与状态管理:
- 保存预empt请求状态的成本未详细分析
-
不同preempt策略(discard vs preserve)的权衡粗略
-
离线请求队列假设:
- 离线请求提前知晓和排队
- 真实场景可能更复杂(流式、实时优先级变化)
相关工作¶
- LLM推理优化:Sarathi、SGLang、vLLM
- 工作负载共置:OLPart、PARTIES、MuxServe
- 检索增强:Prefix Caching、KV-Cache优化
评分¶
⭐⭐⭐⭐⭐ (5/5)