为不同延迟要求的AI请求设计高效调度系统,提升服务质量和吞吐量。
PolyServe: Efficient Multi-SLO Serving at Scale
- 按每令牌延迟需求分组请求,分配到对应服务器集群。
- 通过负载梯度实现细粒度自动扩缩容,提升资源利用率1.23倍。
- 支持高延迟容忍请求共享紧约束实例,适合多级服务场景。
大型语言模型(LLMs)的兴起推动了大量LLM应用的发展,这些应用对生成令牌的延迟要求各异。传统将工作负载简单划分为低延迟敏感(LS)和尽力而为(BE)的方式忽略了低延迟类别内部的细微差别,导致用户体验不佳与调度机会浪费。现有系统虽能应对整体请求率变化,但面对多级服务等级协议(SLO)需求时,缺乏在各SLO层级间的精细自动扩缩容能力。此外,在多级延迟敏感场景中,不同延迟要求的请求无法接受长时间延迟,尾部延迟必须严格控制。为此,我们提出PolyServe——一种大规模多级SLO调度策略,可在保证高SLO达标率的同时最大化吞吐量。PolyServe首先根据每令牌延迟需求将请求分至多个分组,再将各分组调度至服务器集群子集;通过将请求路由至当前负载最高但仍可满足SLO的服务器,形成负载梯度以支持自动扩缩容;当紧约束实例饱和时,允许宽松延迟请求共享其资源以提升利用率;并结合性能分析数据,通过感知等待时间的调度、动态分块及连续分块预填充预测来管理尾部延迟。实验表明,相比现有策略,PolyServe实现了1.23倍的优质吞吐量提升,可达最优值的92.5%。
原文摘要 · Abstract (English)
Advances in Large Language Models (LLMs) have led to a surge of LLM-powered applications. These applications have diverse token-generation latency requirements. As a result, simply classifying workloads as latency-sensitive (LS) or best-effort (BE) overlooks the nuances within the latency-sensitive category and results in suboptimal user experiences and scheduling opportunities. However, efficiently serving requests with multiple SLO requirements poses significant challenges. First, all requests within a batch generate new tokens simultaneously, which can misalign them with their distinct SLO requirements. Moreover, while existing systems focus on auto-scaling for handling various overall request rates, the diversity of SLOs necessitates fine-grained auto-scaling among these SLO tiers. Finally, unlike LS/BE scenarios, where BE requests can be aborted at any time to ensure the SLO attainment of LS requests, those with different latency-sensitive SLOs cannot tolerate prolonged delays, and tail latency must be controlled. To tackle these challenges, we propose PolyServe, a novel multi-SLO scheduling policy at scale that maintains high SLO attainment while maximizing throughput. PolyServe first groups requests into multiple bins based on their per-token latency requirement, then schedules each bin to a subset of the server fleet. PolyServe routes requests to the highest-load but still SLO-attainable server to create a load gradient that facilitates auto-scaling. To increase utilization, PolyServe permits looser-SLO requests to share tighter-SLO instances when their own servers are saturated. PolyServe uses profiling data to guide scheduling decisions and manage tail latency through request-wait-time-aware scheduling, dynamic chunking, and continuous chunked prefill prediction. PolyServe achieves 1.23x goodput gain compared to existing policies, achieving up to 92.5% of optimal goodput.
Thank you to arXiv for use of its open access interoperability. PaperDance 不是 arXiv 官方产品;中文卡片由大模型生成,请以原文为准。