
vLLM 冷启动预热3 个参数把首请求延迟压下来【免费下载链接】vllmA high-throughput and memory-efficient inference and serving engine for LLMs项目地址: https://gitcode.com/GitHub_Trending/vl/vllm预热解决什么问题最小示例怎么跑vLLM 冷启动慢大头往往不是加载权重而是第一个请求触发的即时编译JIT和 CUDA Graphs 捕获。vLLM 把这些事挪到进程启动阶段统一做完第一个请求就不用排队等编译。省流版结论默认就带启动预热再配合下面 3 个参数冷启动和首请求延迟都能明显压下来。from vllm import LLM, SamplingParams llm LLM(modelfacebook/opt-125m) out llm.generate([The capital of France is], SamplingParams(temperature0.8)) print(out[0].outputs[0].text)这段代码跑起来时LLM(...)内部会顺带完成权重加载、KV cache 分配和 kernel 预热拿到输出时服务已经是热的。预热到底在做什么开饭店不会等第一位客人进门才开始烧火、切菜、摆盘而是提前把厨房准备好。vLLM 的预热同理进程起来后先做三件事把权重读进显存、按固定大小给 KV cache 分块预留空间PagedAttention 的分页机制、把要用的 Triton、CuTeDSL、Deep GEMM 等 kernel 提前编译好。日志里出现 JIT kernel warmup finished 就说明编译完成第一个请求只做推理本身首 token 时间会明显下降。首请求比后续请求慢几秒怎么解决当你看到第一个请求要等好几秒、后面恢复正常多半是 JIT kernel 在首次调用时才编译。vLLM 默认在启动阶段就调用 kernel warmup 逻辑 把这些 kernel 编译掉其中 Deep GEMM 的预热范围由环境变量控制export VLLM_DEEP_GEMM_WARMUPrelax # 默认值按启发式挑 shape快而全FlashInfer 的 autotune 结果也会写到缓存文件第二次启动直接复用不用重新调参。想自己给新 kernel 接预热参考 JIT kernel warmup 文档 里的 CompileKey 写法。VLLM_DEEP_GEMM_WARMUP 三个取值取值行为full穷举所有可能的 GEMM shape最彻底但启动最慢relax按启发式挑 shape默认值速度和覆盖平衡skip不预热留给首请求即时编译CUDA Graphs 让启动变慢、显存不够时怎么调CUDA Graphs 把整段前向的计算图录下来反复用省掉每次 kernel 启动的开销但捕获本身要花时间和显存。如果你发现启动卡在 capture 阶段或者捕获完显存不够用就调cudagraph_modevllm serve model --compilation-config {cudagraph_mode: PIECEWISE}默认 FULL_AND_PIECEWISE 性能最好但捕获最久、显存最费PIECEWISE 只把兼容的部分包进图省显存也灵活NONE 全关排查问题时用。各模式的取舍在 CUDA Graphs 设计文档 里写得很细。频繁重启服务时怎么省掉重复编译当你每天重新部署或升级镜像重复编译会吃掉大量启动时间。这里有个容易踩的坑把VLLM_CACHE_ROOT固定到一个持久化目录torch.compile 的 inductor 缓存、kernel 编译产物、autotune 结果都会落在里面第二次启动直接走热启动路径。想确认差距仓库里自带冷/热启动基准 vllm/benchmarks/startup.py它会把缓存目录切到临时目录测冷启动再用真实缓存测热启动分别输出平均值和各分位数。坑点清单首请求超时、后续请求很快→ 首请求把 JIT 编译和图捕获全扛了。解法等启动预热日志跑完再放流量别关预热开关。启动后立刻 OOM→ 默认图模式捕获多套 CUDA Graph预留显存超预算。解法切 PIECEWISE或缩小cudagraph_capture_sizes。升级后预热突然没效果→ 模型或 kernel 版本变了旧缓存 key 失效全部重编。解法缓存目录固定持久化升级后手动跑一次重建缓存。启动时间明显拉长→ 把VLLM_DEEP_GEMM_WARMUP设成了 full 在穷举。解法改回默认 relax。延伸最小离线推理示例examples/basic/offline_inference/basic.py前缀缓存复用示例重复 prompt 直接命中已有 KVexamples/features/automatic_prefix_caching/automatic_prefix_caching_offline.py冷/热启动时间基准vllm/benchmarks/startup.py【免费下载链接】vllmA high-throughput and memory-efficient inference and serving engine for LLMs项目地址: https://gitcode.com/GitHub_Trending/vl/vllm创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考