问题现象描述
硬件配置:Atlas 800I A2
问题现象:
在配置并行策略为 "dp": 1, "tp": 8, "cp": 2, "sp": 8, "moe_tp": 1, "moe_ep": 16 的情况下,启动基于W8A8量化模型的推理服务时,AttentionRunner_67_0 与 Decoder_layerRunner_67 节点报错,日志中出现大量 infer shape check fail 错误,典型错误信息如下:
[graph_runner.cpp:499] AttentionRunner_67_0:0 node[14] invalid reshape func, reshapeTensor.Numel:51200, tensor.Numel:409600
原因分析
关键过程:
- 初步验证:在未启用CP、仅使用 TP16 默认配置时,64K 序列长度服务可正常拉起,说明模型权重与基础环境无异常。
- 进一步测试:保持相同并行策略,将序列长度调整为 16K 后服务仍无法启动,排除序列长度本身导致的资源问题,确认问题由并行策略引入。
- 日志分析:开启 ASDOPS 算子日志后,发现错误发生在模型 forward 阶段,具体为 acl_decoder_operation 执行失败。
根本原因分析:
根因定位:深入检查模型配置文件 config.json,发现 torch_dtype 字段被设置为 bfloat16。经确认,当前版本 MindIE 2.1.RC1 在启用 CP 特性时,仅支持 float16 精度。数据精度与算子执行要求不匹配,导致 Attention 模块中关键算子初始化失败,最终引发服务拉起失败。

解决措施
结论:
模型权重目录下的 config.json 文件中 torch_dtype 字段错误设置为 bfloat16。
解决方案:
将模型权重目录下的 config.json 文件中 torch_dtype 字段从 bfloat16 显式修改为 float16。完成配置后,服务成功拉起,推理任务正常执行,问题彻底解决。
若条件允许,推荐升级至 MindIE 2.2.RC1 及以上版本,该版本已优化精度兼容性,支持更灵活的精度配置,无需手动调整 torch_dtype



