Align the Inference results of the verl and vLLM frameworks on Ascend devices(zh)
在昇腾设备上对齐 verl 和 vLLM 两个框架下的推理结果。
Last updated: 11/17/2025.
这是一份在昇腾设备上对齐 verl 和 vLLM 两个框架下推理结果的教程(目的是确保两个框架在相同输入下产生一致的推理输出,以便更好地比较和集成)。
环境变量配置
在多卡通信情况下:
HCCL 通信下(默认场景):
export CLOSE_MATMUL_K_SHIFT=1
export ATB_MATMUL_SHUFFLE_K_ENABLE=0
export HCCL_DETERMINISTIC=”true”
export VLLM_ENABLE_V1_MULTIPROCESSING=0
LCCL 通信下(通过 export HCCL_OP_EXPANSION_MODE=”AIV” 使能):
export CLOSE_MATMUL_K_SHIFT=1
export ATB_MATMUL_SHUFFLE_K_ENABLE=0
export LCCL_DETERMINISTIC=1
export ATB_LLM_LCOC_ENABLE=0
export VLLM_ENABLE_V1_MULTIPROCESSING=0
在单卡无通信情况下:
HCCL 和 LCCL 通信下:
export CLOSE_MATMUL_K_SHIFT=1
export ATB_MATMUL_SHUFFLE_K_ENABLE=0
export VLLM_ENABLE_V1_MULTIPROCESSING=0
vLLM 初始化参数
需要对 SamplingParams 参数里单独设置 seed(种子值,用于控制随机性以确保可重复性),保持 vLLM 和 verl 推理结果的一致性(这有助于调试和验证模型在不同框架下的行为是否匹配),举例修改如下(以下是 YAML 格式的示例配置):
sampling_params = SamplingParams(n=1,
logprobs=0, # can be set to 0 and let actor to recompute
max_tokens=config.response_length,
repetition_penalty=config.get("repetition_penalty", 1.0),
seed=1234)