vLLM-Ascend 0.20.2.rc1 中 DeepSeek 模型推理输出乱码问题分析与解决

📅 2026/8/4 12:15:21
vLLM-Ascend 0.20.2.rc1 中 DeepSeek 模型推理输出乱码问题分析与解决
作者​昇腾实战派​知识地图​https://blog.csdn.net/Lumos_Lovegood/article/details/161601003背景概述在使用 vLLM 0.20.2.rc1 版本镜像部署 DeepSeek-V4-Pro时在某些输入长度下出现推理输出内容乱码的问题在多机分布式部署PD 分离架构下表现明显。本文基于该问题分析问题的根因并提供解决方案为类似场景提供参考。问题现象在使用 vLLM 0.20.2.rc1 镜像启动DeepSeek-V4-Pro模型服务后执行推理请求时返回结果中的content字段出现明显乱码表现为非预期字符、乱码符号或内容截断如下“content”: “-ev君 final\n”“reasoning_content”: “Super by.ydgPKev/『Get hard,”____,)\n\nésold反抗侵 $M9 and _ pointing| ,…该问题并非在所有请求中均复现仅在特定输入长度条件下出现且与模型输入长度存在强相关性。问题分析结合已知经验乱码问题与模型输入长度强相关初步判断问题与模型输入输出长度和MTP等加速特性相关。对比触发乱码的请求与正常请求发现关键区别在于输入长度。因此尝试参数调优无效调整几组max-model-len与 MTP 相关参数后问题仍持续存在。关闭 MTP 后问题消失当禁用 MTP 功能后乱码现象不再复现。结合 vLLM-Ascend 官方仓库中已知的版本问题进一步确认issue: [Bug]: PD disaggregated SWA KV transfer can include stale blocks and produce NaN hidden states #10253PR (Merged into 0.21.0): [BugFix] Trim SWA transfer blocks before clipping #10254综上升级镜像至0.21版本之后测试乱码问题不再复现。问题根因在 PD 分离架构中当启用 MTP 且输入长度恰好为 block 长度整数倍时P 节点在计算并传输 KV Cache 时会多传递一个无效 block 给 D 节点导致 D 节点在解析时出现数据错位进而引发推理输出乱码。解决措施为彻底解决该问题建议将推理服务所使用的 vLLM-Ascend 镜像版本升级至 **v0.21.0 **该版本已合并关键修复补丁。