【AI大模型】模型预热:服务启动预热的最佳实践
大模型服务刚启动时,第一批请求往往延迟飙升、超时频发,而运行一段时间后延迟逐渐回落。这不是负载问题,而是冷启动:权重未驻留、算子未编译、缓存未填充。模型预热在服务对外服务前完成这些工作,把冷启动延迟挡在真实流量之外。本文给出最佳实践:先讲冷启动成因,再给预热目标与方式,最后用可运行代码落地并接入健康检查。全文控制在5000字以内。
冷启动延迟成因
冷启动延迟来自三个阶段。一是权重加载:模型权重从磁盘或网络读入显存,首次请求被阻塞在加载上。二是算子编译:CUDA kernel 首次执行需要编译或即时生成,第一次前向明显更慢,之后命中缓存。三是缓存未填充:KV Cache、前缀缓存尚未建立,首次请求无任何复用,预填充全量计算。
三者叠加导致启动初期的延迟可能是稳态的数倍。若不加预热,这批冷启动请求直接打向用户,表现为首 token 延迟暴涨、超时率上升。预热的本质是提前触发这些一次性开销,让服务在接入真实流量前就进入稳态。
预热目标
预热的最终目标只有一个:让服务在接入流量前延迟已经达标。拆开看有三件事。一是激活权重,完成首次前向,触发全部算子编译与权重驻留。二是填充缓存,预热典型输入,让前缀缓存与 KV 分配进入稳态。三是验证就绪,通过健康检查确认延迟低于阈值后再放流量。
目标明确后,预热内容就清晰了:发少量能覆盖典型路径的请求,观察延迟从冷值降到稳态,再对外服务。预热不是发得越多越好,而是覆盖要全、时机要准、验证要严。
预热方式
预热请求的选取决定覆盖范围,常见有三种方式,可按业务流量形态组合。
示例请求预热
发一条与真实负载相近的