qwen模型 MindIE PD分离部署问题定位

简介: 使用MindIE提供的PD分离特性部署qwen2-7B模型,使用k8s拉起容器,参考这个文档进行部署:https://www.hiascend.com/document/detail/zh/mindie/100/mindieservice/servicedev/mindie_service0060.html,1个Prefill,1个Decode。最后一步测试推理请求的时候,出现报错:model instance has been finalized or not initialized。

背景

使用MindIE提供的PD分离特性部署qwen2-7B模型,使用k8s拉起容器,参考这个文档进行部署:https://www.hiascend.com/document/detail/zh/mindie/100/mindieservice/servicedev/mindie_service0060.html,1个Prefill,1个Decode。

最后一步测试推理请求的时候,出现报错:model instance has been finalized or not initialized。

排查过程

不管发生什么,不要慌,首先要看日志,重点看看有没有fail、error等关键字。

P节点和D节点都是用mindieservice-daemon起的服务,最后打印了”daemon start success!“,看上去没有问题,但是用npu-smi info查看昇腾卡的显存占用,发现没有显存被占用,说明模型没有加载,和上面的报错信息逻辑对上了。

于是继续看controller和coordinator的启动日志。其实有一定经验后,通过”model instance has been finalized or not initialized“就知道应该是controller出问题了,因为controller负责PD身份决策与下发,coordinator是数据面入口,用于对用户的请求输入进行调度。果然,在controller的日志里面发现这一一行Error日志:IsValidServer: server ip 10.xxx has invalid device num。这说明,controller在尝试分配P或者D的时候,发现某个节点上没有可用的device。由于device的信息是在rank_table文件中配置的,所以下一步需要检查rank_table文件。

果然,打开rank_table文件一看,发现rank_table文件中没有device字段!这样的话controller广播给P和D的rank_table中就缺失了device信息,导致P和D的server启动找不到昇腾卡。

根因找到了就好办了。

解决方案

对开发者最友好的方案,当然是修改MindIE镜像 /usr/local/Ascend/mindie/latest/mindie-service/examples/kubernetes_deploy_scripts/gen_ranktable_helper 目录下的gen_global_ranktable.py文件。但是为了快速解决问题,我们手动获取device字段的信息,再添加到rank_table中。

device字段的格式如下:

"device":[
{
"device_id":0,
"device_ip":"xxx.xxx.xxx.xxx",
"device_logical_id":"0"
}
]

由于客户使用了k8s进行容器化部署,而device的device_ip信息在宿主机的/etc/hccn.conf文件中,所以我们可以在创建容器的时候,把宿主机的/etc/hccn.conf挂载进容器,然后在容器中使用npu-smi info命令查看容器中的卡号(每个容器挂载了1张卡),再根据卡号和/etc/hccn.conf获取卡的device_ip。由于容器中只有1张卡,device_logical_id就是取0。

通过上面的方法获取到P和D的device信息后,再添加到rank_table文件中,重新启动。重新启动后,有个新的报错”read ./conf/model_config/qwen2-b.json failed“,这个报错比较常见,把文件权限修改成640就可以了。再重新启动,可以看到controller中有日志”avaliable node 2“出现,同时可以看到P和D的日志中在加载模型,说明P和D创建成功了。

稍等一会可以看到coordinator的日志中出现”MindIE-MS coordinator is ready!!!“,说明PD分离服务部署成功了,这时候再用curl命令向coordinator节点发送推理请求,就可以得到回复了。

总结

需要清楚controller、coordinator、P server和D server节点的职责,再根据日志中的error信息和fail信息进行逐步分析。

目录
相关文章
|
2天前
|
人工智能 弹性计算 API
再不玩通义 VACE 模型你就过时了!一个模型搞定所有视频任务
介绍通义的开源模型在 ecs 或 acs 场景如何一键部署和使用,如何解决不同视频生成场景的问题。
|
2天前
|
人工智能 运维 Serverless
0 代码,一键部署 Qwen3
依托于阿里云函数计算 FC 算力,Serverless + AI 开发平台 FunctionAI 现已提供模型服务、应用模版两种部署方式辅助您部署 Qwen3 系列模型。完成模型部署后,您即可与模型进行对话体验;或以 API 形式进行调用,接入 AI 应用中,欢迎您立即体验。
|
21天前
|
人工智能 并行计算 持续交付
如何使用龙蜥衍生版KOS,2步实现大模型训练环境部署
大幅降低了用户开发和应用大模型的技术门槛。
|
20天前
|
人工智能 弹性计算 自然语言处理
从0到1部署大模型,计算巢模型市场让小白秒变专家
阿里云计算巢模型市场依托阿里云弹性计算资源,支持私有化部署,集成通义千问、通义万象、Stable Diffusion等领先AI模型,覆盖大语言模型、文生图、多模态、文生视频等场景。模型部署在用户云账号下,30分钟极速上线,保障数据安全与权限自主控制,适用于企业级私有部署及快速原型验证场景。
|
25天前
|
数据采集 机器学习/深度学习 搜索推荐
利用通义大模型构建个性化推荐系统——从数据预处理到实时API部署
本文详细介绍了基于通义大模型构建个性化推荐系统的全流程,涵盖数据预处理、模型微调、实时部署及效果优化。通过采用Qwen-72B结合LoRA技术,实现电商场景下CTR提升58%,GMV增长12.7%。文章分析了特征工程、多任务学习和性能调优的关键步骤,并探讨内存优化与蒸馏实践。最后总结了大模型在推荐系统中的适用场景与局限性,提出未来向MoE架构和因果推断方向演进的建议。
161 10
|
25天前
|
存储 文字识别 自然语言处理
通义大模型在文档自动化处理中的高效部署指南(OCR集成与批量处理优化)
本文深入探讨了通义大模型在文档自动化处理中的应用,重点解决传统OCR识别精度低、效率瓶颈等问题。通过多模态编码与跨模态融合技术,通义大模型实现了高精度的文本检测与版面分析。文章详细介绍了OCR集成流程、批量处理优化策略及实战案例,展示了动态批处理和分布式架构带来的性能提升。实验结果表明,优化后系统处理速度可达210页/分钟,准确率达96.8%,单文档延迟降至0.3秒,为文档处理领域提供了高效解决方案。
102 0
|
3天前
|
人工智能 搜索推荐 Linux
ollama部署本地DeepSeek大模型
本地部署大模型具有省钱省心、数据安全、使用自由、无需联网、量身定制及响应高效等优势。DeepSeek 提供满血版与多种蒸馏版模型,适配不同硬件条件。通过 Ollama 可便捷部署,并结合客户端工具如 AnythingLLM 提升交互体验,打造个性化本地 AI 助手。
114 0
|
27天前
|
并行计算 API Python
vLLM 部署 Qwen3
本文介绍了在特定环境下安装和使用 vLLM 的步骤。环境配置包括 CUDA 12.2、40GB 显存,使用 conda 进行 Python 包管理,并基于 Qwen3-8B 模型。首先通过创建 conda 环境并安装 vLLM 实现部署,接着启动 API 服务以支持对话功能。文中提供了 curl 和 Python 两种调用方式示例,方便用户测试与集成。
819 1
|
9天前
|
人工智能 自然语言处理 vr&ar
通义首个音频生成模型 ThinkSound 开源,你的专业音效师
通义实验室推出首个音频生成模型ThinkSound,突破传统视频到音频生成技术局限,首次将思维链(CoT)应用于音频生成领域,实现高保真、强同步的空间音频生成。基于自研AudioCoT数据集,结合多模态大语言模型与统一音频生成模型,支持交互式编辑,显著提升音画匹配度与时序一致性。代码已开源,助力游戏、VR、AR等场景创新应用。
338 3

热门文章

最新文章