当前位置: 首页 > news >正文

MiniMax-M2.7-W8A8 双机 DP=2 部署

本文介绍了在昇腾双机8卡服务器上部署MiniMax-M2.7-W8A8。适配Ascend 910B双机 16 卡 TP8 × DP2镜像quay.io/ascend/vllm-ascend:v0.18.0rc1一、拉起容器两台机器都要执行只需把 {容器名} 和 {master内网IP} 替换成实际值docker run -itd -u 0 --ipchost --privileged \ --name {容器名} \ --nethost \ --device /dev/davinci_manager \ --device /dev/devmm_svm \ --device /dev/hisi_hdc \ --shm-size1200g \ -e VLLM_USE_MODELSCOPETrue \ -e ASCEND_RT_VISIBLE_DEVICES0,1,2,3,4,5,6,7 \ -v /usr/local/dcmi:/usr/local/dcmi \ -v /usr/local/Ascend/driver/tools/hccn_tool:/usr/local/Ascend/driver/tools/hccn_tool \ -v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \ -v /usr/local/Ascend/driver/lib64/:/usr/local/Ascend/driver/lib64/ \ -v /usr/local/Ascend/driver/version.info:/usr/local/Ascend/driver/version.info \ -v /etc/ascend_install.info:/etc/ascend_install.info \ -v /home/:/home/ \ -v /root/.cache:/root/.cache \ quay.io/ascend/vllm-ascend:v0.18.0rc1 bash二、修复 modelslim_config.py必须v0.18.0rc1 镜像的 modelslim_config.py 缺少 MODELSLIM_CONFIG_FILENAME 常量会导致 ImportError。**两台容器都要修复**先修哪台都行。2.1 下载官方配置​ git clone https://gitcode.com/vLLM\_Ascend/MiniMax-M2.5-W8A8.git/tmp/minimax25-w8a82.2 替换容器内文件并添加常量Master 容器docker cp /tmp/minimax25-w8a8/modelslim_config.py {master容器名}:/vllm-workspace/vllm-ascend/vllm_ascend/quantization/modelslim_config.py docker exec {master容器名} bash -c \ echo MODELSLIM_CONFIG_FILENAME \quant_model_description.json\ /vllm-workspace/vllm-ascend/vllm_ascend/quantization/modelslim_config.pyWorker 容器docker cp /tmp/minimax25-w8a8/modelslim_config.py {worker容器名}:/vllm-workspace/vllm-ascend/vllm_ascend/quantization/modelslim_config.py docker exec {worker容器名} bash -c \ echo MODELSLIM_CONFIG_FILENAME \quant_model_description.json\ /vllm-workspace/vllm-ascend/vllm_ascend/quantization/modelslim_config.py三、启动 vLLM3.1 确认 bond1 网卡两台都要确认ip a | grep bond1能看到 bond1 inet 地址即可。3.2 启动顺序必须先启动 worker再启动 master间隔 10 秒。3.3 启动 Workerdocker exec -d {worker容器名} bash -c export HCCL_IF_IP{worker内网IP} export GLOO_SOCKET_IFNAMEbond1 export TP_SOCKET_IFNAMEbond1 export HCCL_SOCKET_IFNAMEbond1 export HCCL_BUFFSIZE1024 export ASCEND_RT_VISIBLE_DEVICES0,1,2,3,4,5,6,7 export HCCL_OP_EXPANSION_MODEAIV export PYTORCH_NPU_ALLOC_CONFexpandable_segments:True export OMP_PROC_BINDfalse export OMP_NUM_THREADS1 export VLLM_ASCEND_ENABLE_FLASHCOMM11 export HCCL_INTRA_PCIE_ENABLE1 export HCCL_INTRA_ROCE_ENABLE0 nohup vllm serve /root/.cache/modelscope/hub/models/Eco-Tech/MiniMax-M2___7-w8a8-QuaRot \ --served-model-name MiniMax-M2.7 \ --host 0.0.0.0 --port 8077 \ --headless \ --tensor-parallel-size 8 \ --data-parallel-size 2 \ --data-parallel-size-local 1 \ --data-parallel-start-rank 1 \ --data-parallel-address {master内网IP} \ --data-parallel-rpc-port 13389 \ --max-num-seqs 128 \ --max-num-batched-tokens 65536 \ --gpu-memory-utilization 0.92 \ --enable-expert-parallel \ --trust-remote-code \ --enable-auto-tool-choice \ --tool-call-parser minimax_m2 \ --reasoning-parser minimax_m2_append_think \ --compilation-config {\cudagraph_mode\: \FULL_DECODE_ONLY\} \ --mm_processor_cache_typeshm \ --async-scheduling \ --additional-config {\enable_cpu_binding\:true} \ /tmp/vllm-worker.log 21 3.4 启动 Master等 10 秒docker exec -d {master容器名} bash -c export HCCL_IF_IP{master内网IP} export GLOO_SOCKET_IFNAMEbond1 export TP_SOCKET_IFNAMEbond1 export HCCL_SOCKET_IFNAMEbond1 export HCCL_BUFFSIZE1024 export ASCEND_RT_VISIBLE_DEVICES0,1,2,3,4,5,6,7 export HCCL_OP_EXPANSION_MODEAIV export PYTORCH_NPU_ALLOC_CONFexpandable_segments:True export OMP_PROC_BINDfalse export OMP_NUM_THREADS1 export VLLM_ASCEND_ENABLE_FLASHCOMM11 export HCCL_INTRA_PCIE_ENABLE1 export HCCL_INTRA_ROCE_ENABLE0 nohup vllm serve /root/.cache/modelscope/hub/models/Eco-Tech/MiniMax-M2___7-w8a8-QuaRot \ --served-model-name MiniMax-M2.7 \ --host 0.0.0.0 --port 8077 \ --tensor-parallel-size 8 \ --data-parallel-size 2 \ --data-parallel-size-local 1 \ --data-parallel-start-rank 0 \ --data-parallel-address {master内网IP} \ --data-parallel-rpc-port 13389 \ --max-num-seqs 128 \ --max-num-batched-tokens 65536 \ --gpu-memory-utilization 0.92 \ --enable-expert-parallel \ --trust-remote-code \ --enable-auto-tool-choice \ --tool-call-parser minimax_m2 \ --reasoning-parser minimax_m2_append_think \ --compilation-config {\cudagraph_mode\: \FULL_DECODE_ONLY\} \ --mm_processor_cache_typeshm \ --async-scheduling \ --additional-config {\enable_cpu_binding\:true} \ /tmp/vllm-master.log 21 四、验证等待约 5 分钟后在任一节点执行curl http://{master内网IP}:8077/v1/models应返回 MiniMax-M2.7max_model_len: 196608。推理测试curl --location http://{master内网IP}:8077/v1/chat/completions \ --header Content-Type: application/json \ --data {model:MiniMax-M2.7,messages:[{role:user,content:hello}],stream:false}五、访问服务服务启动后通过 master 节点的 8077 端口访问http://{master内网IP}:8077API 端点GET /v1/models — 查看可用模型POST /v1/chat/completions — 对话POST /v1/completions — 文本补全六、重启恢复6.1 启动容器docker start {master容器名} docker start {worker容器名}6.2 重新启动 vLLM顺序先 worker再 master等几秒后分别执行 3.3 和 3.4 的启动命令。6.3 确认进程运行worker 上 docker exec {worker容器名} bash -c ps -ef | grep vllm serve | grep -v grep master 上 docker exec {master容器名} bash -c ps -ef | grep vllm serve | grep -v grep应该各有 1 个 vllm 进程。七、常见问题排查7.1 查看启动日志master 日志 docker exec {master容器名} tail -100 /tmp/vllm-master.log worker 日志 docker exec {worker容器名} tail -100 /tmp/vllm-worker.log7.2 查看实时日志docker logs -f {容器名}7.3 确认端口在监听docker exec {容器名} bash -c netstat -tlnp | grep 80777.4 确认 NPU 进程docker exec {容器名} bash -c npu-smi info | grep Process id应该各有 8 个进程TP8。7.5 确认 HCCL 通信正常在容器内执行docker exec {容器名} bash -c HCCL_INFO1 python -c import torch; torch.distributed.is_initialized()7.6 常见错误ImportError: MODELSLIM_CONFIG_FILENAME→ modelslim_config.py 未修复见本文档第二节Connection refused on port 8077→ vllm 进程未启动看日志确认HCCL timeout / DP Coordinator timeout→ 检查 bond1 网卡是否互通确认启动顺序是 worker 先、master 后Worker 启动后立即退出→ 检查 --data-parallel-address 是否填写了 master 的内网 IP
http://www.zskr.cn/news/1335249.html

相关文章:

  • 别再手动补面了!ANSA Topo_CONS命令实战:从Paste到Project,5分钟搞定复杂几何修复
  • Pandas/NumPy数据处理中,科学计数法如何‘隐形’影响你的结果?附解决方案
  • 2026年4月消毒房公司推荐,工业消毒房/消毒房/餐具消毒房/蒸汽消毒房/臭氧消毒房/消毒房定制,消毒房厂商有哪些 - 品牌推荐师
  • TG电报登录收不到短信验证码?关于 SMS fee 我是这样搞定的!
  • 手把手教你用PlatformIO给ESP32添加蓝牙HID功能(从库缺失到成功编译的全过程)
  • 【软考高级架构】论文预测——论大语言模型(LLM)在企业级系统中的部署架构与优化策略
  • RT-Thread Studio开发RA2L1:从环境搭建到GPIO输入输出实战
  • CRM功能解析:覆盖客户、销售、数据、库存、工单全场景
  • 5分钟轻松搞定GitHub中文界面:智能汉化插件让英文GitHub变母语
  • 合同系统业务功能
  • 逆向分析MIUI安全中心:我是如何找到‘USB安装确认’开关的(附配置文件详解)
  • 为什么自己写的论文重复率会很高?
  • 告别舵机抖动!用PCA9685驱动16路舵机,51单片机/STM32代码实测(附Proteus仿真文件)
  • 告别阻塞等待:用UVM的response_handler和另类response机制提升验证平台效率
  • 别再死记硬背了!用Python和C语言两种方式,带你一步步手算Modbus CRC16校验码
  • GAN评估指标“内卷史”:从Inception Score到FID,再到KID为何被StyleGAN2-ada选中?
  • RT-Thread Studio安装后别急着关:手把手带你完成第一个‘点亮LED’的STM32项目
  • 2026年Q2日本红枫苗木选购评测:鸡爪槭苗木/乌桕苗木/巨紫荆苗木/朴树苗木/榉树苗木/樱花苗木/欧洲枫香苗木/选择指南 - 优质品牌商家
  • 深入理解PCIe地址转换(ATU):以DW控制器为例,图解Inbound/Outbound与DMA配置
  • 从Controller到Agent:一篇讲透EasyMesh协议里的那些“黑话”与实战配置
  • 别再只调参数了!深入Niagara自定义模块:从看懂官方示例到写出自己的第一个功能
  • RK3568核心板+基板硬件设计全解析:从模块化架构到嵌入式系统开发实战
  • 研一开学前,我用这份保姆级时间表3个月搞定CV基础(附Python/PyTorch/OpenCV避坑指南)
  • Postgresql基础实践教程
  • 论秒杀场景及其技术解决方案
  • 【限时解密】Perplexity未公开的“诗眼定位算法”:仅0.3秒锁定《春江花月夜》中17处意象跃迁节点(内附可复现Prompt模板)
  • 双面丝印的核心定义、工艺边界与基础难点
  • 连熬大夜帮大家总结了一下Google I/O 2026开发者大会,Gemini 3.5 Flash评价
  • 优思学院|科技制造业如何提高质量变革成功率?
  • 2026泰州地区网站优化服务商评测:泰州网络公司、靖江AI优化、靖江geo优化、靖江做网站、靖江网站建设、兴化AI优化选择指南 - 优质品牌商家