【大模型推理】SCORPIO: Serving the Right Requests at the Right Time for Heterogeneous SLOs in LLM(六)

基于虚拟批处理规模的准入控制(VBS-based Admission Control)详解
该机制的核心思想是:通过动态评估新请求对系统负载的影响,在接纳前预测是否会导致现有或新请求的TPOT SLO(服务等级目标)违规。其关键在于使用虚拟批处理规模(VBS) 代替实际请求数量,更精准地反映系统真实负载,从而避免过载。
核心设计原理
1. 虚拟批处理规模(VBS)的定义
- 传统批处理规模:直接统计运行中的请求数量(如6个请求 → 批处理规模=6)。
- VBS改进逻辑:基于信用的批处理机制允许部分请求跳过执行(如宽松TPOT SLO的请求可能每3步才处理一次)。因此,实际负载应小于请求数量。
VBS(R′)=∑r∈R′TRP(r) \text{VBS}(R') = \sum_{r \in R'} \text{TRP}(r) VBS(R′)=r∈R′∑TRP(r)
其中:- $ R’ $:当前运行队列 RRR 加入新请求 $ w $ 后的集合(R′=R∪{w}R' = R \cup \{w\}R′=R∪{w})。
- TRP(r)TRP(r)TRP(r):请求 rrr 的 TPOT 相对比例性(定义见下文)。
TRP(TPOT相对比例性)的作用:
量化请求的紧迫性,公式为:
TRP(r)=minr′∈R′STP(r′)STP(r)
\text{TRP}(r) = \frac{\min_{r' \in R'} \text{STP}(r')}{\text{STP}(r)}
TRP(r)=STP(r)minr′∈R′STP(r′)
- STP®:请求 rrr 的 TPOT SLO(目标 TPOT)。
- 最小TPOT:运行队列中最严格的 TPOT SLO。
- TRP范围:0<TRP≤10 < \text{TRP} \leq 10<TRP≤1。
- TRP=1 → 请求具有最严格SLO,需高频处理。
- TRP→0 → 请求SLO宽松,处理频率低。
VBS的物理意义:
- 将每个请求的贡献按其紧迫性加权,总和反映系统的“有效负载”。
- 例如:3个请求(TRP分别为1.0、0.5、0.333)的VBS=1.833,远小于实际请求数量3。
2. 准入控制条件
当新请求 $ w $ 到达时,需满足以下条件才被接纳:
EstimatedTPOT(VBS(R′),Lavg(R′))≤minr∈R′STP(r)
\text{EstimatedTPOT}(\text{VBS}(R'), L_{\text{avg}}(R')) \leq \min_{r \in R'} \text{STP}(r)
EstimatedTPOT(VBS(R′),Lavg(R′))≤r∈R′minSTP(r)
其中:
- EstimatedTPOT:基于模型 MMM 和序列长度预测器 PPP,根据 VBS 和平均序列长度 LavgL_{\text{avg}}Lavg 预估的 TPOT。
- 右侧:接纳后所有请求的最小 TPOT SLO(即最严格约束)。
逻辑解读:
- 若接纳后预估的 TPOT 不超过最严格的 SLO,则接纳;否则拒绝。
工作流程示例
场景设定
- 系统状态:运行队列 $ R $ 中有3个请求:
- R1(STP=2步),R2(STP=4步),R3(STP=6步)。
- 新请求 $ w $:STP=3步。
- 模型参数:归一化解码时间=0.25×批处理规模。
步骤1:计算当前最小TPOT SLO
- $ \min_{r \in R} \text{STP}® = 2 $(R1的STP)。
步骤2:尝试接纳新请求 $ w $
- 临时运行队列:R′=R∪{w}={R1,R2,R3,w}R' = R \cup \{w\} = \{R1, R2, R3, w\}R′=R∪{w}={R1,R2,R3,w}。
- 计算每个请求的TRP:
- R1: TRP=22=1.0\text{TRP} = \frac{2}{2} = 1.0TRP=22=1.0
- R2: $ \text{TRP} = \frac{2}{4} = 0.5$
- R3: TRP=26≈0.333\text{TRP} = \frac{2}{6} \approx 0.333TRP=62≈0.333
- www: TRP=23≈0.666\text{TRP} = \frac{2}{3} \approx 0.666TRP=32≈0.666
- VBS(R’):1.0+0.5+0.333+0.666≈2.4991.0 + 0.5 + 0.333 + 0.666 \approx 2.4991.0+0.5+0.333+0.666≈2.499。
步骤3:预估TPOT
- 假设:归一化解码时间=0.25×VBS → 0.25×2.499≈0.6250.25 \times 2.499 \approx 0.6250.25×2.499≈0.625。
- 平均序列长度 LavgL_{\text{avg}}Lavg:假设为20 tokens。
- EstimatedTPOT:0.625×20=12.50.625 \times 20 = 12.50.625×20=12.5 步/token。
步骤4:比较SLO
- 最小STP:$ \min_{r \in R’} \text{STP}® = \min(2, 4, 6, 3) = 2 $。
- 条件判断:$ 12.5 \leq 2 $?→ 不成立。
- 结果:拒绝请求 $ w $,因其会导致所有请求的TPOT超过最严格SLO(2步)。
对比传统方法的不足
传统准入控制(直接使用请求数量)
- 假设:批处理规模=4(实际请求数量),归一化解码时间=0.25×4=1.0。
- EstimatedTPOT:1.0×20=201.0 \times 20 = 201.0×20=20 步/token。
- 结果:同样拒绝 www,但未考虑宽松SLO请求的跳过机制,导致过早拒绝潜在可接纳的请求。
VBS方法的优势
- 更精准的负载评估:通过TRP加权反映实际资源占用,允许接纳更多请求。
- 动态适应性:TRP随运行队列变化(如新增严格SLO请求时,其他请求的TRP会降低),机制自动调整负载容忍度。
实际应用场景
-
大模型推理服务:
- 用户A(实时聊天):TPOT SLO=1步(TRP=1)。
- 用户B(批量生成):TPOT SLO=4步(TRP=0.25)。
- VBS控制:接纳新用户C(STP=2步)时,计算其TRP=0.5(因当前最小STP=1),VBS增量0.5,预估TPOT仍满足约束。
-
云计算负载控制:
- 拒绝TRP过低的新请求(如TRP=0.1),防止信用积累过慢导致系统过载。
总结
VBS-based Admission Control 通过虚拟批处理规模(VBS) 动态评估系统负载,结合TRP权重反映请求的紧迫性,实现了:
- 精准准入决策:避免过载导致全局SLO违规。
- 资源高效利用:允许宽松SLO请求共享资源,提升吞吐量。
- 动态适应性:TRP自动响应运行队列变化,无需人工调参。
该机制在大模型服务、实时任务调度等场景中,显著优于传统基于固定阈值的准入控制方法。
Algorithm 1: TPOT Guarantee Mechanism 原理解析
该算法的核心目标是动态保障所有被接纳的请求满足其 TPOT SLO(Time Per Output Token 的服务等级目标),同时最大化系统吞吐量。它通过两个关键机制协同工作:
- 基于虚拟批处理规模(VBS)的准入控制(VBS-based Admission Control)
- 基于信用的批处理机制(Credit-based Batching)
以下是对算法原理的详细拆解:
输入与输出
- 输入:
- 大语言模型 MMM:用于预估请求的解码时间。
- 序列长度预测器 PPP:预估请求生成的 token 数量。
- 等待队列 $ W$:按最短截止时间优先(LDF)排序的未接纳请求。
- 运行队列 RRR:已接纳且正在处理的请求。
- 输出:
- 批处理请求集合 BBB:当前迭代中需要执行的请求。
算法流程详解
1. 主循环(Line 1-15)
算法持续运行,每轮迭代分为两个阶段:
- 阶段1:准入控制(Lines 3-8)
- 阶段2:信用批处理(Lines 9-14)
2. 阶段1:VBS-based Admission Control(准入控制)
目标:动态评估新请求对系统负载的影响,确保接纳后所有请求仍能遵守 TPOT SLO。
具体步骤:
-
遍历等待队列 WWW(Line 3):
- 尝试将每个新请求 $ w \in W $ 接入运行队列 $ R $。
-
临时更新运行队列(Line 4):
- 构建临时队列 R′=R∪{w}R' = R \cup \{w\}R′=R∪{w}。
-
计算 VBS 和 L_avg(Line 5):
- 虚拟批处理规模(VBS):
VBS(R′)=∑r∈R′TRP(r) \text{VBS}(R') = \sum_{r \in R'} \text{TRP}(r) VBS(R′)=r∈R′∑TRP(r)
其中 TRP® 是请求 $ r $ 的 TPOT 相对比例性(定义见下文)。 - 平均序列长度 $ L_{\text{avg}}(R’) $:基于预测器 $ P $ 预估请求的平均 token 数量。
- 虚拟批处理规模(VBS):
-
预估 TPOT(Line 5):
- 使用模型 MMM 和 LavgL_{\text{avg}}Lavg 预估当前负载下的 TPOT:
EstimatedTPOT(VBS(R′),Lavg(R′)) \text{EstimatedTPOT}(\text{VBS}(R'), L_{\text{avg}}(R')) EstimatedTPOT(VBS(R′),Lavg(R′))
- 使用模型 MMM 和 LavgL_{\text{avg}}Lavg 预估当前负载下的 TPOT:
-
准入条件判断(Line 5):
- 若预估 TPOT ≤ 当前运行请求集 R′R'R′ 的最小 TPOT SLO(即 minr∈R′STP(r)\min_{r \in R'} \text{STP}(r)minr∈R′STP(r)),则接纳请求 $ w $:
- 将 $ w $ 加入批处理集合 $ B $。
- 从等待队列 $ W $ 中移除 $ w $,更新运行队列 $ R $。
- 若预估 TPOT ≤ 当前运行请求集 R′R'R′ 的最小 TPOT SLO(即 minr∈R′STP(r)\min_{r \in R'} \text{STP}(r)minr∈R′STP(r)),则接纳请求 $ w $:
示例:
- 假设运行队列 $ R $ 中有请求 r1r_1r1(STP=2步)和 r2r_2r2(STP=4步),最小 STP=2步。
- 新请求 www 的 STP=3步。
- 计算 TRP(r1)=1.0, TRP(r2)=0.5, TRP(w)=0.666 → VBS=1.0+0.5+0.666=2.166。
- 若预估 TPOT(如 0.25×VBS×L_avg)≤ 2步,则接纳 $ w $;否则拒绝。
3. 阶段2:Credit-based Batching(信用批处理)
目标:动态分配执行机会,优先保障严格 SLO 的请求,允许宽松 SLO 请求跳过部分迭代。
具体步骤:
-
信用积累(Line 9-10):
- 每个运行中请求 $ r \in R $ 按其 TRP 速率积累信用:
Cr(t)←Cr(t)+TRP(r) C_r(t) \leftarrow C_r(t) + \text{TRP}(r) Cr(t)←Cr(t)+TRP(r)
其中 $ C_r(t) $ 是请求 $ r $ 在迭代 $ t $ 时的信用值(初始为0)。
- 每个运行中请求 $ r \in R $ 按其 TRP 速率积累信用:
-
批次选择(Line 11-12):
- 若信用值 $ C_r(t) \geq 1.0 $,则将请求 $ r $ 纳入批处理集合 $ B $,并扣除 1.0 信用:
Cr(t)←Cr(t)−1.0 C_r(t) \leftarrow C_r(t) - 1.0 Cr(t)←Cr(t)−1.0
- 若信用值 $ C_r(t) \geq 1.0 $,则将请求 $ r $ 纳入批处理集合 $ B $,并扣除 1.0 信用:
-
信用机制的意义:
- TRP 高(严格 SLO):信用积累快,高频被处理。
- TRP 低(宽松 SLO):信用积累慢,间歇性被处理。
示例:
- 请求 $ r_1 $(STP=2步,TRP=1.0):每迭代积累 1.0 信用 → 每次必被处理。
- 请求 $ r_2 $(STP=4步,TRP=0.5):每迭代积累 0.5 信用 → 每 2 次迭代被处理一次。
- 请求 $ r_3 $(STP=6步,TRP≈0.333):每迭代积累 0.333 信用 → 每 3 次迭代被处理一次。
核心数学原理
1. TRP(TPOT 相对比例性)定义
TRP(r)=minr′∈R(t)STP(r′)STP(r) \text{TRP}(r) = \frac{\min_{r' \in R(t)} \text{STP}(r')}{\text{STP}(r)} TRP(r)=STP(r)minr′∈R(t)STP(r′)
- 物理意义:量化请求 $ r $ 的紧迫性,值越小表示其 SLO 越宽松。
2. 收敛性证明
经过多轮迭代后,请求 $ r $ 的处理频率趋近于其 TRP 值:
limt→∞处理次数r(t)t=TRP(r)
\lim_{t \to \infty} \frac{\text{处理次数}_r(t)}{t} = \text{TRP}(r)
t→∞limt处理次数r(t)=TRP(r)
例如:TRP=0.5 的请求最终每 2 步处理 1 次,TRP=0.333 的请求每 3 步处理 1 次。
算法优势
- 严格 SLO 保障:高 TRP 请求(严格 SLO)获得高频处理,确保其 TPOT 目标。
- 动态资源分配:宽松 SLO 请求主动让出资源,避免与严格 SLO 请求竞争。
- 抗过载能力:通过拒绝潜在违规请求(如 TRP 过低的新请求),防止系统崩溃。
- 吞吐量优化:通过限制 VBS 规模(而非实际请求数量),减少因过载导致的全局 SLO 违规。
总结
Algorithm 1 的核心思想是 通过 VBS 准入控制预防过载,通过信用机制实现细粒度资源分配。
- VBS-based Admission Control:用 TRP 加权反映真实负载,动态拒绝可能导致 SLO 违规的请求。
- Credit-based Batching:按 TRP 分配执行机会,严格 SLO 请求优先处理,宽松 SLO 请求间歇性跳过。
这一机制在大模型推理、实时任务调度等场景中,显著优于传统基于固定阈值的调度方法,能够在保障服务质量的同时最大化系统吞吐量。
更多推荐
所有评论(0)