MindIE Motor服务化部署后推理性能异常,吞吐量远低于预期
各位昇腾社区的大佬们好,最近在尝试使用MindIE Motor部署一个中文大模型进行服务化推理,遇到了一个比较棘手的问题,想请教一下大家。
环境配置:
-
硬件:Atlas 800 IA2服务器,8张NPU卡
-
软件:MindIE 2.3.0,Python 3.10,PyTorch 2.1.0
-
模型:Qwen2.5-32B-Instruct(已转换为昇腾格式)
问题描述:
按照官方文档完成了MindIE Motor的服务化部署,服务能够正常启动,模型也能成功加载。但是进行压力测试时发现,推理吞吐量远低于预期值。具体表现为:
-
单请求延迟正常(约200ms),但并发请求数超过5个后,整体吞吐量基本不再增长
-
查看NPU利用率,发现只有30-40%,明显没有充分利用硬件资源
-
服务日志中出现间歇性的“请求排队超时”警告
已尝试的排查步骤:
-
检查了模型配置文件和权重文件权限(已设置为640)
-
调整了batch_size参数,从1调到8,效果不明显
-
尝试了不同的worker数量配置(2、4、8个worker)
-
检查了网络连接,节点间ping延迟正常
怀疑可能的原因:
-
环境变量配置不当:NPU_MEMORY_FRACTION、HCCL相关变量等可能没有优化
-
服务化配置参数需要进一步调优
-
模型本身在昇腾硬件上的适配问题
具体疑问:
-
在8卡配置下,针对Qwen2.5-32B这样的模型,有哪些关键的环境变量需要特别设置?
-
MindIE Motor的并发调度机制是怎样的?如何配置才能最大化利用多卡资源?
-
是否有针对类似规模模型的服务化部署最佳实践或性能调优指南?
补充信息:
MindIE Motor服务化部署后推理性能异常,吞吐量远低于预期
各位昇腾社区的大佬们好,最近在尝试使用MindIE Motor部署一个中文大模型进行服务化推理,遇到了一个比较棘手的问题,想请教一下大家。
环境配置:
硬件:Atlas 800 IA2服务器,8张NPU卡
软件:MindIE 2.3.0,Python 3.10,PyTorch 2.1.0
模型:Qwen2.5-32B-Instruct(已转换为昇腾格式)
问题描述:
按照官方文档完成了MindIE Motor的服务化部署,服务能够正常启动,模型也能成功加载。但是进行压力测试时发现,推理吞吐量远低于预期值。具体表现为:
单请求延迟正常(约200ms),但并发请求数超过5个后,整体吞吐量基本不再增长
查看NPU利用率,发现只有30-40%,明显没有充分利用硬件资源
服务日志中出现间歇性的“请求排队超时”警告
已尝试的排查步骤:
检查了模型配置文件和权重文件权限(已设置为640)
调整了batch_size参数,从1调到8,效果不明显
尝试了不同的worker数量配置(2、4、8个worker)
检查了网络连接,节点间ping延迟正常
怀疑可能的原因:
环境变量配置不当:NPU_MEMORY_FRACTION、HCCL相关变量等可能没有优化
服务化配置参数需要进一步调优
模型本身在昇腾硬件上的适配问题
具体疑问:
在8卡配置下,针对Qwen2.5-32B这样的模型,有哪些关键的环境变量需要特别设置?
MindIE Motor的并发调度机制是怎样的?如何配置才能最大化利用多卡资源?
是否有针对类似规模模型的服务化部署最佳实践或性能调优指南?
补充信息:
使用的是官方提供的docker镜像