部署与调参
主线位置:「一张 24 GB 的卡上放一个 8B 模型」这条线的落点。不在单个请求的路径上,而在启动时:参数解析、模型加载、测显存、建 KV 池。这几步在两个引擎里都是 Python;Rust 前端只接手请求侧的模板、分词和一部分长度检查。
版本:vLLM v0.32.0、SGLang v0.5.22
前面几部分讲块怎么分、请求怎么排。这一部分回答部署时最先碰到的三个问题:卡上的显存怎么分、哪个参数管哪件事、报错了该改什么。
- vLLM 的显存比例管整个引擎,启动时用假前向实测激活;SGLang 的比例只管权重加 KV,默认按公式推。同一张卡上两边默认留给 KV 的量差得多(估算),实测待 C3-1。
- 很多参数的默认值是
None,生效值在启动时按显存、模型推出来,以启动日志为准。 - KV 放不下一个最大长度的请求,vLLM 启动即报错,SGLang 推迟到请求时拒。
flowchart LR
card["一张卡"] --> budget["显存预算<br/>memory-budget"]
budget --> flags["参数对照<br/>key-flags"]
flags --> boot{"启动"}
boot -->|"成功"| logs["读启动日志里的<br/>KV token 数与并发"]
boot -->|"失败"| errs["常见报错<br/>errors"]
errs --> flags
logs --> load["上负载<br/>待实测(C3-1、C3-2)"]
本部分三页:
- 显存预算:显存的五块;vLLM
gpu_memory_utilization、假前向测激活、字节换块数、max_model_len检查与自动缩;SGLangmem_fraction_static的默认公式、KV 池怎么量、max_running_requests怎么推、单请求上限为什么会被 KV 池压低。24 GiB 卡上 8B bf16 模型的估算演算。 - 关键参数对照:两边同义参数并排,每行给默认值和真正生效的源码位置:显存与长度、并发与每步 token、调度、前缀缓存、并行与量化与投机解码入口、文本与请求。
- 常见报错:报错原文取自源码,分启动和请求两类,每条写触发条件和对应参数。
吞吐、延迟随并发的曲线不在本部分,等 GPU 实测(C3-2)。本站自己的调用方换成自托管要多大的卡,在 08 在本站中。
💬 关联讨论
发起讨论加载中...