AI Know · 技术研究笔记
连续批处理提吞吐,尾延迟随队列波动。
投机解码降单请求延迟,接受率决定收益;排队策略决定第99百分位,优先级需配额;长尾输入是延迟爆炸主因,需分桶截断。
三分钟读懂
先看结论,再决定是否深读
- 连续批处理提吞吐,尾延迟随队列波动。
- 投机解码降单请求延迟,接受率决定收益。
- 排队策略决定第99百分位,优先级需配额。
- 长尾输入是延迟爆炸主因,需分桶截断。
- 同一张卡上,吞吐与延迟是显式权衡。
核心原理
在单张加速卡上部署大语言模型推理服务,并发与延迟永远是一对矛盾。吞吐量要求把更多请求塞进同一批计算,尾延迟却要求每个请求尽快返回。连续批处理通过迭代级调度提升利用率,投机解码通过草稿模型降低单请求延迟,排队策略则决定请求在系统中的等待时间。三者不是孤立优化,而是相互制约。理解它们的适用边界,才能在设计推理服务时做出正确取舍。
工程实践
- 分层队列与超时。为交互式请求和离线请求设置不同优先级、批处理窗口和超时。交互请求走小批、低等待,离线请求走大批、高吞吐。超时后降级或拒绝,避免拖垮整体。
- 动态批处理窗口。根据队列深度和第99百分位目标调整等待时间:队列深时缩小窗口,优先保延迟;队列浅时扩大窗口,优先保吞吐。每类请求单独设目标。
- 投机解码按需开关。按模型、任务和实时负载动态启用。持续监控接受率,低于预设阈值立即关闭,防止额外算力变成负优化。对长输出任务可优先尝试,对高并发任务默认关闭。
风险边界
成本方面,批处理提升利用率但键值缓存增长,投机解码增加算力,单位请求成本可能不降反升。幻觉方面,投机解码不改变目标模型分布,但草稿模型偏差可能引入错误,验证只能减少不能消除。越权调用方面,优先级队列和配额若被绕过,可能造成资源挤占,需要鉴权、配额和审计。长尾输入或延迟方面,超长输入可能触发显存溢出,或让第99百分位飙升,必须截断、分块、超时和降级。此外,高优先级请求可能饿死低优先级请求,需要老化机制与公平配额。共享批处理中的键值缓存隔离也要防止信息泄露。
总之,推理服务的并发与延迟没有银弹。批处理擅长吞吐,投机解码擅长单请求延迟,排队策略决定尾延迟。开发者应先用评测曲线找到拐点,再按场景组合手段,并始终守住成本、安全与长尾边界。