推理服务和训练集群的设计思路有明显差异:训练追求单位时间内的样本吞吐,推理则要在延迟、吞吐与成本之间找平衡点。智芯观澜在产品与方案栏目里把推理部署单独成类,正是因为它的配置组合逻辑更贴近业务侧的实时性要求。本文按延迟敏感、吞吐优先、弹性扩展三种典型场景,梳理配置组合的适用边界。
延迟敏感场景:先锁定尾延迟,再谈吞吐
在线推理业务中,用户感知的是尾延迟而非平均延迟。一个方案的平均响应时间再漂亮,只要长尾请求频繁超时,业务侧依然会判定不可用。
延迟敏感场景的配置重点通常落在三处:单请求批大小控制、模型驻留策略、以及请求调度队列的管理。批大小过大会拉高单次推理耗时,批大小过小则浪费算力;模型常驻显存可以省去加载开销,但会压缩可服务模型的数量。智芯观澜在方案卡片中会标注"建议批大小区间"和"模型驻留上限",就是为了让读者在延迟与并发之间做量化权衡。
- 小批量常驻方案:适合模型数量少、延迟要求严格的在线服务。
- 动态批处理方案:适合请求波动明显、可容忍一定尾延迟的场景。
- 多模型分时驻留方案:适合模型种类多但调用频次不均的场景。
吞吐优先场景:把算力利用率放在第一位
离线推理、批量打分、内容审核等场景对单次延迟不敏感,更关注单位算力的处理能力。这类场景的配置逻辑与延迟敏感场景几乎相反:更大的批大小、更激进的算子融合、更充分的显存利用都是合理选择。
吞吐优先方案的关键边界在于内存带宽与显存容量。批大小提升会线性推高显存占用,一旦触及容量上限,性能会断崖式下降而非平缓退化。智芯观澜建议在这类方案中明确标注"显存安全数据变化",避免读者按理论峰值配置后在实际负载中频繁触发换出。另一个值得关注的维度是输入长度分布,长文本占比高的任务对带宽压力更大,配置组合需要相应调整。
弹性扩展场景:弹性能力来自架构而非单机
业务流量存在明显波峰波谷时,弹性扩展能力比单机性能更重要。弹性不是靠单机堆配置实现的,而是来自服务编排、模型分发与资源池化的整体设计。
常见的弹性组合包括:按队列长度触发的副本伸缩、冷热模型分层加载、以及跨资源池的请求路由。这些机制对单机配置的要求反而更宽松,但对存储读取速度和模型加载效率提出更高要求。智芯观澜在整理此类方案时会特别标注"冷启动耗时"这一指标,因为弹性扩展的实际效果很大程度上取决于新副本多快能进入可服务状态。
- 副本自动伸缩:适合流量波动规律清晰、可提前预热的业务。
- 冷热分层加载:适合模型库庞大但热点集中的业务。
- 跨池请求路由:适合多机房部署、需要就近服务的业务。
三种场景并非互斥,实际部署中常见的是以某一场景为主、其余场景做兜底的组合。智芯观澜更建议读者先明确业务对尾延迟的容忍度,再决定批处理策略与弹性机制的权重,最后在单机配置上做收敛,而不是反过来从硬件参数出发倒推业务形态。
尾延迟这段太真实了,平均延迟好看但长尾一超时,业务方直接打回,批大小确实要卡死。
显存安全数据变化这个提法好,之前按峰值配,结果长文本一多就换出,性能掉得很难看。
冷启动耗时确实是被低估的指标,副本扩出来半天不能服务,弹性就变成摆设了。
离线场景确实可以放开批大小,我们做内容审核就是吞吐优先,延迟无所谓。
跨池路由那块想多看看,多机房就近服务说起来简单,实际调度策略挺复杂的。