生成Qwen部署定义yaml
基于KubeInfer的部署,关键是定义部署所需的yaml文件,参考获取部署版本包中提供的gen_pd_deploy_kubeinfer_yaml_with_omni.py脚本通过执行下述命令生成基于KubeInfer部署的yaml文件:
python3 gen_pd_deploy_kubeinfer_yaml_with_omni.py [--prefill-pod-num=xx] [--decode-pod-num=xx] [--replicas=xx] [--image-name=xx] [--custom-labels=xx] [--proxy-resource=xx] [--pd-resource=xx] [--mount-path=xx] [--script-path=xx] [--proxy-params="xxx"] [--prefill-params="xxx"] [--decode-params="xxx"] [--terminate-grace-period-seconds=xx] [--file-name=xx] [--probe-type=xx] [--probe-port=xx]
|
参数 |
约束 |
描述 |
默认值 |
|---|---|---|---|
|
--prefill-pod-num |
可选 |
Prefill角色个数。 |
1 |
|
--decode-pod-num |
可选 |
Decode角色个数。 |
1 |
|
--replicas |
可选 |
kubeinfer实例instance数,对应K8s概念中的副本数。 |
1 |
|
--image-name |
必选 |
推理镜像名称,即为获取推理镜像中制作的镜像。 |
NA |
|
--custom-labels |
可选 |
kubeinfer部署支持自定义标签,格式为json。 |
NA |
|
--pd-resource |
可选 |
Prefill和Decode角色需要的资源,参考CPU及内存资源规划。 |
NA |
|
--mount-path |
可选 |
存储配置中挂载的目录,该目录下存放权重和脚本文件。 |
/mnt/deepseek |
|
--script-path |
可选 |
部署推理服务依赖的脚本文件路径。
须知:
必须是--mount-path指定的目录的子目录。 |
/mnt/deepseek/deploy |
|
--common-params |
必选 |
部署推理服务的特性参数和公共的启动参数,参考表2及参数类型。
须知:
值必须用双引号包裹。 |
NA |
|
--proxy-params |
可选 |
部署推理服务proxy、prefill、decode分别对应的启动参数,参考表2及参数类型。
须知:
值必须用双引号包裹。 |
NA |
|
--prefill-params |
可选 |
NA |
|
|
--decode-params |
可选 |
NA |
|
|
--terminate-grace-period-seconds |
可选 |
指定Pod优雅终止的等待时间(单位:秒)。在使用长连接的场景中,客户端可能复用已建立的 TCP 连接。即使Pod 已从 Service 的 Endpoints 中被移除,处于活跃状态的连接仍可能继续接收新请求。长连接场景下为加速流量摘除,建议将此值设置为3秒,可能会导致正在处理的请求被强制中断。 |
120 |
|
--file-name |
可选 |
生成的yaml文件名。 |
infer_vllm_kubeinfer.yaml |
|
--probe-type |
可选 |
值为“http”时,容值为“http”时,容器探针使用httpGet方式调用推理服务health接口进行健康检查。值为“script”时,容器探针使用exec方式执行提供的health.py脚本进行健康检查。健康检查日志在脚本当前路径health_log目录下。
须知:
值为“http”时无法进行手动摘流,如果您需要手动摘流,请指定为“script”。 |
http |
|
--probe-port |
可选 |
容器探针进行健康检查时调用Proxy的端口。 |
9000 |
|
参数 |
约束 |
参数类型 |
描述 |
|---|---|---|---|
|
--ascend-log-path |
可选 |
特性参数 |
指定NPU CANN plog日志保存路径。不指定时,日志保存在容器内/root/ascend/log。 |
|
--vllm-log-path |
可选 |
特性参数 |
采集vLLM框架日志,开启特性需要指定滚动日志保存的路径。不开启时,日志保存在容器内/home/ma-user/AscendCloud/logs。 日志采集功能的使用详见推理层日志采集与转储。 |
|
--hang-threshold-sec |
可选 |
特性参数 |
Decode的hang判断时间阈值,单位为秒,默认值为5。 |
|
--log-max-size |
可选 |
特性参数 |
指定Proxy滚动日志文件大小,单位为MB,默认值为1024。日志默认按1G一个文件进行滚动,滚动保存10个备份文件,文件名为proxy.log。保存后会将旧日志压缩存储。 |
|
--time-window-ms |
可选 |
特性参数 |
指定Proxy被动健康检查配置时间窗,单位为ms,默认值为10000。一个Prefill或Decode实例在时间窗口内,3次失败即认为异常。 |
|
--extra-env-vars |
可选 |
启动参数 |
部署推理服务要额外设置的环境变量,参考表3。
须知:
值必须用单引号包裹,多个环境变量以逗号分隔。 |
|
--prefill-extra-env-vars |
可选 |
启动参数 |
部署推理服务prefill、decode要额外设置的特殊环境变量,参考表3
须知:
值必须用单引号包裹,多个环境变量以逗号分隔。 |
|
--decode-extra-env-vars |
可选 |
启动参数 |
|
|
--port |
可选 |
启动参数 |
Proxy角色监听的端口,默认值为9000。
须知:
如果修改端口,需要同时修改健康检查的端口。 |
|
--pd-port |
可选 |
启动参数 |
Prefill、Decode角色监听的端口,默认值为9100。 |
|
--model |
必选 |
启动参数 |
对应vLLM入参--model,模型权重所在路径。
须知:
要求该目录必须是--mount-path指定的目录的子目录。路径中不能包含英号句号"."等特殊字符。 |
|
--served-model-name |
必选 |
启动参数 |
对应vLLM入参--served-model-name。 |
|
--max-model-len |
必选 |
启动参数 |
对应vLLM入参--max-model-len。 |
|
--tensor-parallel-size |
必选 |
启动参数 |
对应vLLM入参--tensor-parallel-size。 |
|
--gpu-memory-utilization |
必选 |
启动参数 |
对应vLLM入参--gpu-memory-utilization。 |
|
--additional-config |
必选 |
启动参数 |
对应vLLM入参--additional-config。 |
|
其他vLLM支持的参数,用法同vLLM |
- |
||
|
参数 |
描述 |
|---|---|
|
VLLM_CACHE_ROOT |
图编译缓存功能,开启特性需要指定路径。 图编译缓存功能的使用详见PD分离部署下图编译缓存使用操作。 |
|
ENABLE_PHASE_AWARE_QKVO_QUANT=1 |
推荐Qwen3-32B w8a8添加,提升Decode性能。 |
|
ENABLE_QWEN_MICROBATCH=1 |
推荐长序列添加,提升Prefill性能。 |
|
USE_ZMQ_BROADCAST=1 |
使用ZMQ(ZeroMQ)进行广播通信。ZMQ 具有高吞吐低延迟的特点,适合分布式推理场景。 |
|
PREFILL_STOP_SCHEDULE_TOKENS=8000 |
降低TTFT的平均值,但是会影响Prefill实例吞吐。 |
|
PROMPT_CROP_LAST_LAYER=1 |
降低TTFT的平均值。 |
