附加配置

附加配置#

附加配置是 vLLM 提供的一种机制,允许插件自行控制内部行为。VLLM Ascend 利用此机制使项目更加灵活。

使用方法#

无论是在线模式还是离线模式,用户都可以使用附加配置。以 Qwen3 为例:

在线模式

vllm serve Qwen/Qwen3-8B --additional-config='{"config_key":"config_value"}'

离线模式

from vllm import LLM

LLM(model="Qwen/Qwen3-8B", additional_config={"config_key":"config_value"})

配置选项#

下表列出了 vLLM Ascend 中可用的附加配置选项:

名称

类型

默认值

描述

xlite_graph_config

dict

{}

Xlite 图模式的配置选项

weight_prefetch_config

dict

{}

权重预取的配置选项

finegrained_tp_config

dict

{}

模块张量并行的配置选项

ascend_compilation_config

dict

{}

昇腾编译的配置选项

eplb_config

dict

{}

eplb 的配置选项

refresh

bool

false

是否刷新全局 Ascend 配置内容。通常由 RLHF 或 UT/E2E 测试用例使用。

dump_config_path

str

None

msprobe dump(eager 模式)的配置文件路径。

enable_async_exponential

bool

False

是否启用异步指数重叠。要启用异步指数,请将此配置设置为 True。

enable_shared_expert_dp

bool

False

当专家在 DP 中共享时,可获得更好的性能但会消耗更多内存。目前仅支持 DeepSeek 系列模型。

multistream_overlap_shared_expert

bool

False

是否启用多流共享专家。此选项仅对具有共享专家的 MoE 模型生效。

multistream_overlap_gate

bool

False

是否启用多流重叠门。此选项仅对具有共享专家的 MoE 模型生效。

recompute_scheduler_enable

bool

False

是否启用重计算调度器。仅在 PD 解耦模式下有效kv_rolekv_producerkv_consumer)。请勿在 PD 混合模式下启用(无 kv_transfer_config,或 kv_rolekv_both);启动时将失败并显示明确的错误信息。

enable_cpu_binding

bool

True

是否启用 CPU 绑定。仅在 ARM CPU 上生效;A3 使用全局切片 CPU 分配策略,其他设备类型使用拓扑亲和性 CPU 分配策略。

SLO_limits_for_dynamic_batch

int

-1

动态批处理的 SLO 限制。这是支持动态批处理功能的新调度器。

enable_npugraph_ex

bool

False

是否启用 npugraph_ex 图模式。

pa_shape_list

list

[]

页面注意力算子的自定义形状列表。

enable_kv_nz

bool

False

是否启用 KV 缓存 NZ 布局。此选项仅对使用 MLA 的模型(例如 DeepSeek)生效。

layer_sharding

dict

{}

层分片线性层的配置选项。在 PD 解耦部署中,仅支持在 kv_role="kv_producer" 的 P 节点上使用。

enable_sparse_c8

bool

False

是否在 DSA 模型(例如 DeepSeekV3.2 和 GLM5)中启用 KV 缓存 C8。目前 Ascend 950 设备不支持。

enable_mc2_hierarchy_comm

bool

False

通过 ROCE 启用分发/组合算子的节点间通信。

每个配置选项的详细信息如下:

xlite_graph_config

名称

类型

默认值

描述

enabled

bool

False

是否启用 Xlite 图模式。目前仅支持 Llama、Qwen 稠密系列模型和 Qwen3-VL。

full_mode

bool

False

是否在预填充和解码阶段都启用 Xlite。默认情况下,Xlite 仅对解码阶段启用。

weight_prefetch_config

名称

类型

默认值

描述

enabled

bool

False

是否启用权重预取。

prefetch_ratio

dict

{"attn": {"qkv": 1.0, "o": 1.0}, "moe": {"gate_up": 0.8}, "mlp": { "gate_up": 1.0,  "down": 1.0}}

各权重的预取比例。

finegrained_tp_config

名称

类型

默认值

描述

lmhead_tensor_parallel_size

int

0

lm_head 的自定义张量并行大小。

oproj_tensor_parallel_size

int

0

o_proj 的自定义张量并行大小。

embedding_tensor_parallel_size

int

0

embedding 的自定义张量并行大小。

mlp_tensor_parallel_size

int

0

mlp 的自定义张量并行大小。

ascend_compilation_config

名称

类型

默认值

描述

enable_npugraph_ex

bool

True

是否启用 npugraph_ex 后端。

enable_static_kernel

bool

False

是否启用静态内核。适用于形状变化极小且有时间为静态内核编译的场景。

fuse_norm_quant

bool

True

是否启用 fuse_norm_quant 优化过程。

fuse_qknorm_rope

bool

True

是否启用 fuse_qknorm_rope 优化过程。如果环境中没有 Triton,请将其设置为 False。

fuse_allreduce_rms

bool

False

是否启用 fuse_allreduce_rms 优化过程。由于与 SP 冲突,默认设置为 False。

fuse_muls_add

bool

True

是否启用 fuse_muls_add 优化过程。

eplb_config

名称

类型

默认值

描述

dynamic_eplb

bool

False

是否启用动态 EPLB。

expert_map_path

str

None

为 MoE 模型使用专家负载均衡时,需要传入专家映射路径。

expert_heat_collection_interval

int

400

EPLB 开始时的前向传播迭代次数。

algorithm_execution_interval

int

30

EPLB 工作进程完成 CPU 任务所需的前向传播迭代次数。

expert_map_record_path

str

None

将专家负载计算结果保存到指定目录下的新专家表中。

num_redundant_experts

int

0

在初始化时指定冗余专家数量。

示例#

以下是额外配置的一个示例:

{
    "weight_prefetch_config": {
        "enabled": True,
        "prefetch_ratio": {
            "attn": {
                "qkv": 1.0,
                "o": 1.0,
            },
            "moe": {
                "gate_up": 0.8
            },
            "mlp": {
                "gate_up": 1.0,
                "down": 1.0
            }
        },
    },
    "finegrained_tp_config": {
        "lmhead_tensor_parallel_size": 8,
        "oproj_tensor_parallel_size": 8,
        "embedding_tensor_parallel_size": 8,
        "mlp_tensor_parallel_size": 8,
    },
    "enable_kv_nz": False,
    "multistream_overlap_shared_expert": True,
    "refresh": False
}