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 格式的示例配置): .. code:: 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)