附加配置¶
附加配置是 vLLM 提供的一种机制,允许插件自行控制内部行为。VLLM Ascend 使用该机制使项目更加灵活。
迁移指南¶
从 PR #9064 开始,vLLM Ascend 正在将受支持的环境变量迁移到 --additional-config。
重要通知¶
- 当前支持:过渡期内同时支持环境变量和
--additional-config - 建议:新部署使用
--additional-config,并迁移现有配置 - 未来计划:环境变量将在未来版本中移除;仅支持
--additional-config
快速参考¶
| 环境变量 | 配置键 | 类型转换 |
|---|---|---|
VLLM_ASCEND_BALANCE_SCHEDULING |
scheduler_config.enable_balance_scheduling |
"1" → true, "0" → false |
MSMONITOR_USE_DAEMON |
msmonitor_use_daemon |
"1" → true, "0" → false |
VLLM_ASCEND_ENABLE_MLAPO |
enable_mlapo |
"1" → true, "0" → false |
VLLM_ASCEND_ENABLE_NZ |
weight_nz_mode |
整数(保持不变,字段名已更改) |
VLLM_ASCEND_ENABLE_FUSED_MC2 |
enable_fused_mc2 |
整数(保持不变) |
VLLM_ASCEND_FUSION_OP_TRANSPOSE_KV_CACHE_BY_BLOCK |
enable_transpose_kv_cache_by_block |
"1" → true, "0" → false |
VLLM_ASCEND_ENABLE_FLASHCOMM1 |
enable_flashcomm1 |
"1" → true, "0" → false |
如何使用¶
在线模式或离线模式下,用户都可以使用附加配置。以 Qwen3 为例:
在线模式:
离线模式:
配置选项¶
下表列出了 vLLM Ascend 中可用的附加配置选项:
| 名称 | 类型 | 默认值 | 描述 |
|---|---|---|---|
xlite_graph_config |
dict | {} |
Xlite 图模式的配置选项 |
finegrained_tp_config |
dict | {} |
模块张量并行的配置选项 |
ascend_compilation_config |
dict | {} |
Ascend 编译的配置选项 |
eplb_config |
dict | {} |
Runner 特定的 EPLB 扩展。参见 专家并行负载均衡器。 |
scheduler_config |
dict | {} |
Ascend 调度器扩展的配置选项,包括平衡调度、重计算调度、DyntraLB、ShortRequestFirst 和动态分块流水线并行。 |
refresh |
bool | false |
是否刷新全局 Ascend 配置内容。这通常用于 rlhf 或 ut/e2e 测试用例。 |
dump_config |
dict | None |
内联 msprobe dump 配置。vLLM-Ascend 会将其实例化为临时 JSON 文件,并将该文件传递给调试器。 |
dump_config_path |
str | None |
msprobe dump 的配置文件路径(兼容旧选项)。 |
enable_shared_expert_dp |
bool | False |
在 TP rank 间复制共享专家权重,并以数据并行方式运行共享专家。此选项独立于上游 MoE 序列并行;可以启用任一功能或同时启用两者。它会提升性能,但会消耗更多内存。 |
multistream_overlap_shared_expert |
bool | False |
是否启用多流共享专家。此选项仅对具有共享专家的 MoE 模型生效。 |
enable_cpu_binding |
bool | True |
在 ARM 服务器上启用 Ascend 原生 CPU 绑定。设置为 False 可禁用。参见 CPU 绑定。 |
pa_shape_list |
list | [] |
页注意力算子的自定义形状列表。 |
enable_kv_nz |
bool | False |
是否启用 KV 缓存 NZ 布局。此选项仅对使用 MLA 的模型(例如 DeepSeek)生效。 |
c8_enable_reshape_optim |
bool | True |
是否使用 StoreKVBlock 算子加速 LightningIndexer C8 缓存写入。启用后,仅当 SFA 和 LightningIndexer C8 在 PD 预填充(P)节点上激活时,优化才会生效。 |
mc2_comm_alg |
str | "" |
设置 dispatch/combine 算子的 comm_alg 参数,仅支持 ""/"fullmesh"/"hierarchy"/"fullmesh_v2"。"hierarchy" 仅支持 A2/A3,"fullmesh_v2" 目前仅支持 A3。 |
enable_mc2_hierarchy_comm |
bool | False |
通过 ROCE 启用 dispatch/combine 算子的节点间通信。此参数将被弃用,并由 mc2_comm_alg = "hierarchy" 替代 |
enable_prefill_mc2 |
bool | False |
是否为预填充批次保留 mc2_token_capacity。启用后,将使用 max_num_batched_tokens 而不是仅解码容量来计算 mc2_token_capacity。在此场景中,max_num_batched_tokens 的推荐最大值为 tp_size * 512。这是一个临时开关;一旦 MC2 算子在所有场景中完成,此开关将被移除,并且 MC2 将默认启用。 |
| 名称 | 类型 | 默认值 | 描述 |
|---|---|---|---|
mega_moe_max_tokens |
int | 65536 |
在融合 MC2/MegaMoe 路径中,dispatch 后每个 rank 的参考 token 容量。它作为 dispatch_ffn_combine 的 max_output_size 以及 CANN MegaMoe 缓冲区的 max_recv_token_num 传入。如果某个 rank 的实际 MoE 负载超过此值,可能会发生精度下降。绝对安全上限为 num_max_tokens_per_rank * int(self.token_dispatcher.ep_world_size) * min(num_topk, expert_per_rank),但直接使用它可能会消耗非常大的设备内存。请根据实际专家负载分布调整此值。 |
msmonitor_use_daemon |
bool | False |
是否为 msmonitor 使用守护进程模式。旧版 MSMONITOR_USE_DAEMON 环境变量不再受支持。 |
enable_mlapo |
bool | True |
是否启用 MLAPO(模型逐层自适应并行优化)。旧版 VLLM_ASCEND_ENABLE_MLAPO 环境变量不再受支持。 |
mlapo_keep_prefill_weights |
bool | False |
当为 True 时,在 NPU 上保留 MLAPO 预填充权重,而不是在 kv_consumer(仅解码的 D)节点上释放它们。D 节点具有正常的本地预填充路径(recompute / fallback / preempt),当权重被释放时会导致崩溃(issue #11882)。启用此选项以用 NPU 内存换取稳定性。 |
weight_nz_mode |
int | 1 |
权重 NZ 模式。0 禁用 NZ,1 仅对量化权重启用 NZ,2 在支持时也对 BF16/FP16 权重启用 NZ。旧版 VLLM_ASCEND_ENABLE_NZ 环境变量不再受支持。 |
enable_fused_mc2 |
int | 0 |
融合 MC2 配置。0 禁用融合路径,1 在模型和并行配置支持时启用它。旧版 VLLM_ASCEND_ENABLE_FUSED_MC2 环境变量不再受支持。 |
enable_transpose_kv_cache_by_block |
bool | True |
是否启用按块转置 KV cache。旧版 VLLM_ASCEND_FUSION_OP_TRANSPOSE_KV_CACHE_BY_BLOCK 环境变量不再受支持。 |
enable_dsa_cp |
bool | False |
是否为 DeepSeek V3.2、DeepSeek V4 以及其他具有相同架构的模型启用 dsa_cp。此功能要求启用序列并行。启用它会自动启用 FlashComm。 |
enable_flashcomm1 |
bool | False |
是否启用 SP MoE。旧版 VLLM_ASCEND_ENABLE_FLASHCOMM1 环境变量为兼容性而保留。参见 序列并行。 |
enable_pcp_o_proj_weight_sharding |
bool | False |
SFA-PCP 是否在加载时跨 PCP 组对 O-proj 权重进行分片,并在运行时在 PCP 本地和聚合后的权重视图之间切换。此选项不影响 DSA-CP,其原始策略保持固定:预填充聚合完整的 O-proj 权重,解码使用本地权重。此选项必须在服务器启动时设置。 |
rejection_sampler_config |
dict | {} |
拒绝采样器(block verify 和 entropy verify)的配置选项。 |
dynamic_spec_config |
dict | {} |
动态推测解码的配置选项。参见 动态推测解码。 |
multistream_dsv4_dsa_overlap |
bool | True |
是否为 DeepSeek V4 启用 dsa 多流重叠。 |
rl_config |
dict | {} |
一键 RL 模式配置。有关所有字段、两种部署模式、使用示例和迁移指南,请参见 rl_config。 |
enable_reduce_sample |
bool | False |
是否启用 reduce sample 优化,以降低张量并行场景中的通信和计算开销。启用后,logits 将保持跨 TP rank 分区,并且只通信少量 top-k 候选值/索引,而不是执行全词表 all-to-all/all-gather。注意:这是一个实验性功能。限制:(1) 不支持 PD 分离场景。(2) 当请求采样 logprobs 时必须禁用。启用 reduce sample 时,logprobs 会在分区 logits 上静默计算,而不是在全词表上计算,从而产生不正确的 logprob 值和 top-k 排名。(3) 不能与 lmhead TP 同时启用。 |
combine_quant_mode |
int | 0 |
融合 MC2 配置。此配置将作为 torch_npu.npu_moe_distribute_combine_v2 算子的 comm_quant_mode 参数传入。有效值范围请参阅算子文档。 |
各配置选项的详细信息如下:
[!WARNING] 在 HDK 0.26.0 或更早版本中,
c8_enable_reshape_optim可能与使用 AICPU 算子的池化模型发生冲突。将c8_enable_reshape_optim设置为false以禁用该优化并避免冲突。有关详细信息,请参见 issue #15896。
xlite_graph_config
| 名称 | 类型 | 默认值 | 描述 |
|---|---|---|---|
enabled |
bool | False |
是否启用 Xlite 图模式。有关支持的模型、仅解码与完整模式的区别以及示例,请参见 使用 XliteGraph。 |
full_mode |
bool | False |
xlite 运行时的 token 预算大小设置。批次按 token 数量路由:预算内的批次在 xlite 运行时上运行,较大的批次回退到 ACLGraph 下的 runnable。默认情况下(False),预算按解码步骤设置(max_num_seqs × (1 + num_speculative_tokens)),因此预填充和大型混合批次通常会回退。当为 True 时,预算为 max_num_batched_tokens,因此 xlite 同样处理预填充和解码,不使用 ACLGraph 捕获,并建议设置 --enforce-eager(除非配置了推测解码等)。自 v0.28.0 起,路由按 token 数量而不是批次注意力状态进行。 |
| 名称 | 类型 | 默认值 | 描述 |
|---|---|---|---|
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 |
是否启用静态内核。适用于形状变化较少且可预留时间进行静态内核编译的场景。 |
enable_super_kernel |
bool | 继承 enable_static_kernel |
是否启用 Super Kernel 优化。省略时,遵循 enable_static_kernel;显式设置可覆盖该行为。Super Kernel 需要静态内核。 |
fuse_norm_quant |
bool | True |
是否启用 fuse_norm_quant 通道。 |
fuse_qknorm_rope |
bool | True |
是否启用 fuse_qknorm_rope 通道。如果环境中没有 Triton,请将其设置为 False。 |
fuse_muls_add |
bool | True |
是否启用 fuse_muls_add 通道。 |
eplb_config
接受的字段取决于模型运行器:
- Model Runner V2 此处仅接受
load_collection_phase。通过--enable-eplb和--eplb-config配置上游 EPLB。Ascend 使用 上游默认策略和异步 Gloo 移动。 - Model Runner V1 接受以下旧字段,但不接受
load_collection_phase。 MRv1 在 Ascend 上不接受上游--enable-eplb。
混合两种模式会在启动时失败,而不是静默忽略配置。
| 名称 | 类型 | 默认值 | 描述 |
|---|---|---|---|
dynamic_eplb |
bool | False |
仅 MRv1。是否启用旧版动态 EPLB。 |
expert_map_path |
str | None |
仅 MRv1。加载已记录的静态专家映射。 |
expert_heat_collection_interval |
int | 600 |
仅 MRv1。用于收集专家热度的前向迭代次数。 |
algorithm_execution_interval |
int | 50 |
仅 MRv1。允许 EPLB 工作进程完成其 CPU 任务的间隔。 |
expert_map_record_path |
str | None |
仅 MRv1。将计算得到的专家映射保存到指定的 JSON 路径。 |
num_redundant_experts |
int | 0 |
在此表中仅 MRv1。通过上游 --eplb-config 配置 MRv2 值。 |
eplb_policy_type |
int | 2 |
仅 MRv1。EPLB 策略:0=Random,1=DefaultEplb,2=SwiftBalanceEplb,3=FlashLB。 |
eplb_heat_collection_stage |
str | "all" |
仅 MRv1。选择 "all"、"prefill" 或 "decode" 热度收集。 |
load_collection_phase |
str | "all" |
仅 MRv2。选择 "all"、"prefill" 或 "decode" 负载提交。任何包含 prefill 请求的批次都完全归类为 prefill。 |
scheduler_config
旧版顶层 enable_balance_scheduling、recompute_scheduler_enable、short_request_first_config 和 profiling_chunk_config 键在迁移期间仍受支持,但已弃用。如果两种格式都提供了相同字段,则以 scheduler_config 中的值为准。
| 名称 | 类型 | 默认值 | 描述 |
|---|---|---|---|
enable_balance_scheduling |
bool | False |
是否启用均衡调度。旧版 VLLM_ASCEND_BALANCE_SCHEDULING 环境变量不再受支持。 |
recompute_scheduler_enable |
bool | False |
是否启用重计算调度器。仅在 PD 分离的 D 节点上有效(kv_role 为 kv_consumer)。不要在 P 节点或 PD 混合模式下启用(没有 kv_transfer_config、kv_role 为 kv_producer,或 kv_role 为 kv_both);启动时将因明确错误而失败。 |
profiling_chunk_config |
dict | {} |
动态分块流水线并行的配置选项。有关详细信息,请参阅 Dynamic Chunked Pipeline Parallel。 |
short_request_first_config |
dict | {} |
ShortRequestFirst 预填充调度在 FCFS 同步或异步、PD 预填充(P)或 PD 混合节点上的配置选项。 |
batch_job_sched_config |
dict | {} |
批作业感知调度器的配置选项。有关详细信息,请参阅 Batch-Job-Aware Scheduler。 |
dyntra_lb_config |
dict | {} |
PD 分离解码节点上 DyntraLB 负载均衡的配置选项。 |
scheduler_config.profiling_chunk_config
| 名称 | 类型 | 默认值 | 描述 |
|---|---|---|---|
enabled |
bool | False |
是否启用动态分块流水线并行。需要 pipeline-parallel-size > 1。 |
smooth_factor |
float | 1.0 |
平滑因子(0 < x ≤ 1.0)。值越高,越信任动态预测;0.0 禁用动态调整。 |
min_chunk |
int | 4096 |
动态计算的最小分块大小。应小于 max-num-batched-tokens。 |
need_timing |
bool | True | 启用/禁用在线校准 |
max_fit_chunk |
int | 30 | 在线校准的分块时间数据数量 |
scheduler_config.dyntra_lb_config
DyntraLB 在数据并行 rank 之间均衡解码请求。它仅在具有 data_parallel_size > 1 的
PD 分离解码节点(kv_role="kv_consumer")上受支持。
dyntra_lb_config.enabled 和 recompute_scheduler_enable 是独立的同级
设置;同时启用两者会选择组合的 DyntraLB 重计算调度器。
| 名称 | 类型 | 默认值 | 描述 |
|---|---|---|---|
enabled |
bool | False |
启用 DyntraLB 并选择 DyntraLB 感知的调度器。 |
mode |
str | "dynamic" |
使用 "static" 或 "dynamic" 激活。 |
start_step |
int | 250 |
允许生成计划的第一个已完成的引擎步骤快照。 |
end_step |
int | -1 |
排他的最终快照步骤;-1 表示无上限。 |
bubble_threshold |
float | 5.0 |
修改调度所需的最大 rank 负载与平均 rank 负载之差的最小值。大于或等于 1 的值为 KV 缓存块;小于 1 的值为归一化比率。 |
long_req_block_threshold |
int | 700 |
在动态模式下,新添加请求的块数超过该阈值时激活均衡。默认阈值在 block_size=128 时大约对应 89,600 个 token。 |
dynamic_max_step |
int | 256 |
在没有新的长请求加入的情况下,经过这么多活跃步骤后停止动态均衡。 |
enable_diagnostics |
bool | False |
仅用于功能验证和调试的冗长日志。默认禁用,生产环境中应保持禁用。 |
rejection_sampler_config
注意:块验证和熵验证都能提升投机解码性能(更高的接受率、更低的延迟),但会降低采样精度。更大的
posterior_alpha会使调整更激进——它会进一步降低高熵 token 的接受阈值,从而提高吞吐量但降低输出质量。用户应根据其具体模型权重和应用场景调整这些参数,以在性能和精度之间找到合适的平衡。
| 名称 | 类型 | 默认值 | 描述 |
|---|---|---|---|
enable_block_verify |
bool | False |
是否启用块验证模式。块验证使用累积概率乘积将所有草稿 token 作为一个块进行评估,可以提高接受率。 |
enable_entropy_verify |
bool | False |
是否启用熵验证模式。熵验证根据目标分布的熵调整接受阈值——高熵(不确定)token 获得更低的阈值(更容易接受),低熵(确定)token 获得更严格的阈值。 |
posterior_threshold |
float | 0.95 |
熵调整接受阈值的上限。必须位于 (0, 1] 内。有效阈值为 min(exp(-entropy * posterior_alpha), posterior_threshold)。 |
posterior_alpha |
float | 0.4 |
阈值计算中熵的缩放因子。必须 >= 0。更高的值会使阈值对熵更敏感——高熵 token 变得更容易接受,从而提升性能但降低精度。 |
dynamic_spec_config
注意:这是针对 model runner v1 的探索性功能。支持的方法为
"dspark"(DSpark 置信度头)和"dflash"(无头;使用草稿 logits 上的 max-softmax 作为置信度代理)。仍然需要匹配的speculative_config(method: "dspark"或"dflash");dynamic_spec_config仅控制每个请求验证多少个草稿 token。用法和限制参见 动态投机解码。
| 名称 | 类型 | 默认值 | 描述 |
|---|---|---|---|
method |
str | None |
动态方法名称。支持的值:"dspark"、"dflash"。省略或设置为 None 以禁用。 |
method_params |
dict | {} |
方法特定的超参数。为空时,每种方法回退到其内置默认值。 |
dynamic_spec_config.method_params(当 method 为 "dspark" 或 "dflash" 时)
dspark 和 dflash 共享相同的调度超参数。区别仅在于如何估计每个 token 的接受置信度:DSpark 使用其置信度头(sigmoid),而 DFlash(无头)使用草稿 token 的 max(softmax(logits))。
| 名称 | 类型 | 默认值 | 描述 |
|---|---|---|---|
initial_verify_budget_per_req |
int | 5 |
首次重计算之前的每个请求的初始验证预算。 |
budget_update_interval |
int | 16 |
每 N 个解码步骤重新计算共享验证预算。 |
budget_threshold |
float | 0.3 |
估计平均验证预算时使用的累积生存概率阈值。 |
min_verify_tokens |
int | 1 |
每个请求验证的最少草稿 token 数。 |
scheduler_config.short_request_first_config
ShortRequestFirst 是用于 prefill 和 PD 混合路径上 FCFS 同步或异步调度的等待队列策略。它不支持批作业感知、profiling-chunk 或 PD 分离 D 节点调度。用法、行为和调优指南参见 ShortRequestFirst Prefill 调度。
| 名称 | 类型 | 默认值 | 描述 |
|---|---|---|---|
enabled |
bool | False |
是否启用 ShortRequestFirst 调度。 |
threshold |
int | 256 |
提示长度阈值(token 数)。满足 num_prompt_tokens <= threshold 的请求被视为短 prefill,并优先于长 prefill。 |
long_max_wait_ms |
float | 0.0 |
长 prefill 在短 prefill 之后等待的最长时间,超过后可被提升到它们之前。0 禁用长请求提升,并保持严格的短请求优先。 |
scheduler_config.batch_job_sched_config
| 名称 | 类型 | 默认值 | 描述 |
|---|---|---|---|
enabled |
bool | false |
启用批作业感知调度器。 |
max_jobs |
int | 20 |
跟踪作业的最大数量。0 表示无限制。 |
reserve_margin_blocks |
int | 2 |
作为安全缓冲添加到 KV 缓存预留中的额外块边距。 |
reserve_max_blocks |
int | 8 |
可预留的最大块数。 |
| 名称 | 类型 | 默认值 | 描述 |
|---|---|---|---|
low_available_tokens_threshold |
int | 4096 |
用于优先处理长解码任务与短解码任务的阈值。当可用 token 数大于阈值时,优先处理长解码任务;当 ≤ 阈值时,优先处理短解码任务。 |
short_decode_token_threshold |
int | 32 |
用于将任务分类为“短解码”的阈值。 |
rl_config
rl_config 是一键 RL 模式开关。当 enabled 为 true 时,它会在每次初始化时刷新全局 Ascend 配置,强制设置 AscendConfig.weight_nz_mode=0,设置 VLLM_SERVER_DEV_MODE=1,并移除 PYTORCH_NPU_ALLOC_CONF 中的 expandable_segments 条目,同时记录一条信息日志。这些固定的 RL 行为不能作为 rl_config 子字段进行配置。当 enabled 为 false 时,所有其他子字段均被忽略。
当启用 RL 模式时,其固定的 NZ 设置优先于顶层 weight_nz_mode 配置。当 rl_config.enable_batch_invariant 为 false 时,VLLM_BATCH_INVARIANT=1 仍保持启用。
| 名称 | 类型 | 默认值 | 描述 |
|---|---|---|---|
enabled |
bool | false |
RL 模式的主开关。当为 true 时,应用以下所有 RL 最佳实践默认值。 |
sleep_mode_extra_cleanup |
bool | false |
同设备模式。在睡眠期间启用 HCCL 进程组释放 + ACL 图工作区清理,以更高的唤醒延迟为代价,向训练器返回更多 NPU 内存。此选项仅在 rl_config 下可用;原顶层 enable_sleep_mode_extra_cleanup 键已移除。 |
enable_training_consistency |
bool | false |
两种模式。启用用于训练-推理一致性的 FA3 注意力后端。需要 flash_attn_npu_v3 包,并且不会隐式启用批不变性。 |
enable_batch_invariant |
bool | false |
两种模式。提供启用批不变确定性计算的另一种方式:当为 true 时,在工作进程启动前设置 VLLM_BATCH_INVARIANT=1。工作端批不变性初始化随后设置 HCCL_DETERMINISTIC=strict 和 LCCL_DETERMINISTIC=1。当为 false 时,保留已有的 VLLM_BATCH_INVARIANT 环境变量设置。需要使用 COMPILE_CUSTOM_KERNELS=1 从源码构建 vllm-ascend;RL 模式已强制 weight_nz_mode=0。 |
部署模式
- 同设备模式(睡眠/唤醒 + IPC 权重传输):推理引擎和训练器共享同一张 NPU 卡。使用
enable_sleep_mode=True,并可选使用sleep_mode_extra_cleanup=True以获取额外内存。 - 跨设备模式(暂停/恢复 + HCCL 权重传输):推理引擎和训练器使用不同的 NPU 卡。使用
--weight-transfer-config '{"backend": "nccl"}'。
示例(在线,同设备):
vllm serve DeepSeek-V4 \
--enable-sleep-mode \
--enable-return-routed-experts \
--weight-transfer-config '{"backend": "ipc"}' \
--additional-config '{"rl_config": {"enabled": true, "enable_training_consistency": true, "enable_batch_invariant": true, "sleep_mode_extra_cleanup": true}}'
示例(在线,跨设备):
vllm serve DeepSeek-V4 \
--weight-transfer-config '{"backend": "nccl"}' \
--additional-config '{"rl_config": {"enabled": true}}'
示例(离线):
from vllm import LLM
llm = LLM(
model="DeepSeek-V4",
enable_sleep_mode=True, # same-device mode only
additional_config={
"rl_config": {
"enabled": True,
"enable_training_consistency": True,
"enable_batch_invariant": True,
},
},
)
迁移指南
| 之前 | 之后 |
|---|---|
export VLLM_ASCEND_ENABLE_NZ=0 |
"rl_config": {"enabled": true} |
export VLLM_SERVER_DEV_MODE=1 |
"rl_config": {"enabled": true} |
export VLLM_BATCH_INVARIANT=1 |
"rl_config": {"enabled": true, "enable_batch_invariant": true} |
--attention-backend FLASH_ATTN 用于 FA3 一致性模式 |
"rl_config": {"enabled": true, "enable_training_consistency": true} |
用于 RL 的顶层 "weight_nz_mode": 0 |
"rl_config": {"enabled": true} |
顶层 "enable_sleep_mode_extra_cleanup": true |
"rl_config": {"enabled": true, "sleep_mode_extra_cleanup": true} |
示例¶
附加配置示例如下:
{
"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,
"rejection_sampler_config": {
"enable_block_verify": True,
"enable_entropy_verify": True,
"posterior_threshold": 0.95,
"posterior_alpha": 0.4,
},
"dynamic_spec_config": {
"method": "dspark",
"method_params": {
"initial_verify_budget_per_req": 5,
"budget_update_interval": 50,
"budget_threshold": 0.7,
},
},
"refresh": False
}
KV 流水线并行(KVPP)¶
在 --additional-config 中设置 enable_kvpp: true,可将持久化 MLA KV-cache 层分布在同一 DP 副本和 PP 阶段内的 TP 以及(配合 Model Runner V2)PCP rank 上。组大小为 TP x PCP:TP4 + PCP2 使用八个 rank;TP1 + PCP2 也会启用 KVPP。DP 副本和 PP 阶段使用独立的组。
PCP 需要 VLLM_USE_V2_MODEL_RUNNER=1。KVPP 仍要求 eager 执行和非混合 MLA,并且不支持 DCP 或 KV 传输连接器。PCP 在缓存写入前收集 prefill KV;层广播在注意力之前恢复先前前向的缓存内容。广播决策使用全局调度批,而不是 PCP 本地段偏移。
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 vl/vllm-ascend