DriftSched: Adaptive QoS-Aware Scheduling under Runtime Token Drift for Multi-Tenant GPU Inference
本文提出了 DriftSched,一种用于多租户大语言模型(LLM)推理的 QoS 感知调度框架,该框架利用在线反馈机制来纠正运行时的 Token 估计误差,并证明了虽然自适应校准能显著提高估计准确性,但最短作业优先(SJF)调度策略在降低端到端延迟和尾部延迟方面效果最为显著。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象一下,你正在经营一家非常受欢迎的餐厅,只有一间厨房(GPU)和一位厨师。你有三种类型的顾客:
- VIP(高级会员): 他们希望上菜快,并且愿意支付额外费用。
- 常客(标准会员): 他们只想吃一顿普通的饭。
- 大宗采购者(批处理): 他们订购的是巨大的餐饮托盘,并不介意等待。
问题在于?厨房会被压垮。订单不断堆积,有些人等待了很久,而有些人却很快就得到了服务。厨师需要决定下一个为谁做饭。这被称为“调度”(Scheduling)。
核心问题:猜测工作量
为了决定下一个为谁服务,调度器需要知道每个订单的工作量有多大。
- 是一个简单的沙拉(短任务)?
- 还是一个复杂的五道菜正餐(长任务)?
如果调度器猜错了,混乱就会发生。如果它认为一个巨大的餐饮订单很小,它可能会在 VIP 的快速开胃菜之前先去处理它,导致 VIP 等待时间过长。这被称为**“工作量误分类”(Workload Misclassification)**。
两种猜测方式
论文《DriftSched》测试了两种猜测订单大小的方法:
- “偷懒的猜测”(空白符代理/Whitespace Proxy): 想象一下统计订单票据上的单词数量。如果它有 10 个单词,它可能很小;如果它有 100 个单词,它就很大。这对领位员来说既快又容易,但并不准确。一个短句子可能烹饪起来很复杂,而一个长句子可能很简单。
- “专家的猜测”(感知分词器的/Tokenizer-Aware): 想象一下领位员实际上阅读了食谱,准确知道涉及多少种食材和步骤。这很准确,但领位员需要花费更多的时间和精力来计算。
解决方案:DriftSched
DriftSched 是一个管理这家餐厅的智能系统。它有一个特殊功能叫做**“自适应校准”(Adaptive Calibration,或称 EMA)**。
你可以这样理解:如果领位员使用“偷懒的猜测”,并意识到他们一致地低估了“技术报告”类餐食所需的时间,DriftSched 会从错误中学习。它会说:“啊,每次我们猜测‘技术报告’很小时,它实际消耗的时间都要长 20%。下次,我会把预估值增加 20%。”
随着时间的推移,“偷懒的猜测”会变得几乎和“专家的猜测”一样好,因为系统会根据厨房中实际发生的情况来修正自身的错误。
五种调度策略
论文测试了五种决定下一个谁用餐的规则:
- FIFO(先进先出): 就像标准的排队取号。先到先得。这很公平,但如果一个大宗采购者排在你前面且订单巨大,你会等上一辈子。
- 优先级(Priority): VIP 总是跳到队伍最前面。常客和大宗采购者必须等待。这对 VIP 很好,但对其他人来说很糟糕。
- 加权(Weighted): 一种折中方案。VIP 有 50% 的机会被服务,常客 30%,大宗采购者 20%。每个人都有机会,但 VIP 获得的更多。
- SJF(最短作业优先): 厨师总是挑选下一个最小、最快的订单,而不考虑是谁订的。如果一个大宗采购者有一个很小的配菜,它会在 VIP 的主菜之前被烹饪。
- 老化优先级(Aging Priority): 类似于优先级调度,但如果一个大宗采购者等待时间过长,他们的票据会获得一个“印章”来提升其优先级,从而防止他们“饿死”。
他们的发现是什么?
1. 准确性很重要,但策略更重要
使用“专家猜测”(分词器)比“偷懒的猜测”(空白符)更好。然而,你用来选择下一个顾客的规则(调度策略)对等待时间的影响远大于你对订单大小猜测的准确程度。
2. SJF 是速度之王
SJF(最短作业优先) 规则是最快的。它比标准的 FIFO 队列减少了约 42% 的平均等待时间。为什么?因为通过优先处理所有微小的、快速的订单,厨房可以保持忙碌且高效,从而减少人们被困在一个巨大的订单之后的等待情况。
3. 优先级是 VIP 之王
如果你关心VIP的满意度,优先级调度(Priority Scheduling) 是最好的。VIP 的等待时间仅约为 77 秒,而大宗采购者的等待时间约为 427 秒。相比之下,SJF 并不关心你是谁,它只关心你的订单有多小。事实上,在 SJF 下,大宗采购者有时会比 VIP 更快得到服务,因为他们的订单碰巧比较小。
4. “偷懒的猜测”是可以修复的
系统的自我修正功能(EMA)效果很好。当使用不准确的“偷懒的猜测”时,系统学会了随着时间推移调整其预估值,将误差减少了约 40%。然而,如果你已经在使用“专家猜测”,自我修正的效果就不大了,因为猜测本身已经很准确了。
总结
- 如果你想要整体服务最快: 使用 SJF(最短作业优先)。它能最快清空队列。
- 如果你想保护最重要的客户: 使用 优先级调度(Priority Scheduling)。它保证 VIP 首先得到服务,即使这会让其他人等待更久。
- 不要过度担心完美的猜测: 即使你对订单完成所需的时间只是一个粗略的估计,你选择的调度规则(SJF 还是 优先级)对于最终的等待时间影响要大得多。但是,如果你能够准确预测(使用分词器),系统运行会更加顺畅。
简而言之:如何排列顾客的顺序,比你对他们订单大小的预估有多完美更重要。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。