昇腾MindIE多机集群推理自动化部署的“神器”来袭! 支持Deepseek R1/V3满血版
在传统的AI模型部署过程中,工程师们常常面临着诸多挑战。多机集群的配置复杂,手动部署不仅耗时费力,还容易出现错误。昇腾MindIE多机集群推理自动化工具的出现,正是为了解决这些痛点。它通过自动化的部署流程,极大地简化了多机集群推理的复杂性,让工程师们能够更专注于模型的开发和优化,而不是被繁琐的部署细节所困扰。目前该工具已上线魔乐社区,欢迎体验!
在传统的AI模型部署过程中,工程师们常常面临着诸多挑战。多机集群的配置复杂,手动部署不仅耗时费力,还容易出现错误。昇腾MindIE多机集群推理自动化工具的出现,正是为了解决这些痛点。它通过自动化的部署流程,极大地简化了多机集群推理的复杂性,让工程师们能够更专注于模型的开发和优化,而不是被繁琐的部署细节所困扰。目前该工具已上线魔乐社区,欢迎体验!
🔗 链接:魔乐社区
https://modelers.cn/models/devincool/deepseekr1_671B_auto_deploy_tool
功能特点:
- 支持离线使用
- 支持昇腾多机/集群部署(当前不支持单机部署)
- 支持 MindIE 所有支持模型列表,不局限于 DeepSeek v3/r1
- 全自动化部署,预计部署时长 5-10 分钟
注:工具更新频率较高,建议收藏。之后可以在clone目录执行以下指令完成更新
git pull
当前main分支为离线部署版测试版本,大家测试有问题可以在工具讨论区留言 如果想要用联网稳定版可以切换为v2.0分支
快速开始
1. 克隆仓库
git clone https://modelers.cn/devincool/deepseekr1_671B_auto_deploy_tool.git
2. 前置准备
部署前需要准备以下资源:
-
驱动和 Docker 镜像
- 配套驱动和 mindie 2.0.T3/T3.1 docker 镜像下载:
- 👉 mindie2.0.T3 资源包
-
模型权重
-
DeepSeek V3(需要 4 机部署,800I-A2-64G/800T-A2-64G):
-
DeepSeek R1-W8A8(需要 2 机部署,800I-A2-64G/800T-A2-64G):
-
部署方法
方法一:全自动部署(推荐)
1. 配置部署参数
编辑 deploy_config.json
文件:
注意:节点数必须为 2 的倍数(1、2、4、8...)
{
"master_ip": "192.168.1.100", # 主节点IP
"nodes": [ # 所有节点IP列表(包含主节点)
"192.168.1.100",
"192.168.1.101",
"192.168.1.102",
"192.168.1.103"
],
"model_name": "deepseekr1", # 模型名称
"model_path": "/model/deepseekr1_w8a8", # 容器中的模型路径,需要可以通过volums字段中挂载路径访问到
"world_size": 32, # 总的设备数量
"docker": {
"image": "your_mindie_image_id", # Mindie Docker镜像 ID
"volumes": { # docker 启动挂载配置
"/data/model": "/model", # /data/model 为宿主机目录 /model为容器内挂载的目录地址
}
},
"ssh": { # SSH连接配置
"username": "root", # SSH用户名
"use_key": true, # 是否使用密钥认证
"key_path": "~/.ssh/id_rsa", # SSH密钥路径
"password": "", # 如果不使用密钥,则提供密码
"port": 22 # 如果修改过ssh默认端口可以配置
}
}
2. 执行部署
1)配置文件准备
# 复制并修改配置文件
cp deploy_config.json.example deploy_config.json
vim deploy_config.json
```README.md
注意:配置好后把工具包往所有节点都拷贝一份,每台机器都需要执行部署脚本。
2)执行部署
# 启动部署
bash deploy.sh
3)清理环境
# 清理之前的容器和进程
bash deploy.sh --cleanup
部署流程:
- ✅ 检查网络环境
- ✅ 生成 rank 表配置
- ✅ 启动 Docker 容器
- ✅ 配置环境变量
- ✅ 修改 Mindie 服务配置
- ✅ 执行内存预热
- ✅ 启动服务
重要提示:
- 主节点需要最先启动服务
- 从节点需要在主节点启动后 1 分钟内启动
- 请按照提示确认每个步骤是否执行成功
方法二:半自动部署(按需选择)
如果需要更细粒度的控制,可以按以下步骤手动执行:
1. 网络环境检查
./lib/auto_check.sh
2. 生成 rank 表配置
pip install -r requirements.txt
python3 lib/generate_ranktable_semiauto.py
注意:
- 生成的 rank_table_file.json 需自行放置到容器中 /usr/local/Ascend/mindie/latest/mindie-service/rank_table_file.json
- 脚本需要SSH访问各个服务器,支持密码认证和密钥认证两种方式:
- 如果已配置SSH密钥,选择"y"使用密钥认证
- 否则选择"N"使用密码认证
以下在docker镜像中操作,deepseekr1需要用mindie2.0.t3版本的docker镜像:
3. 配置环境变量
./lib/add_env_settings.sh <master_ip> <container_ip> <world_size>
source ~/.bashrc
4. 修改 Mindie 服务配置
python3 lib/modify_mindie_config_semiauto.py
5. 内存预热(可选)
cd $MODEL_PATH
nohup bash lib/push_mem.sh > output_mem.log &
6. 启动服务
cd /usr/local/Ascend/mindie/latest/mindie-service/
nohup ./bin/mindieservice_daemon > output_$(date +"%Y%m%d%H%M").log 2>&1 &
注意事项
- ⚠️ 确保所有脚本具有执行权限
- ⚠️ 在执行 add_env_settings.sh 前,请确保了解 master_ip 和 world_size 的正确值
- ⚠️ 生成 rank 表时需要能够通过 SSH 访问所有服务器
- ⚠️ 内存预热可能需要较长时间,请耐心等待
- ⚠️ 建议按照顺序执行各个步骤,确保配置的正确性
常见问题
-
SSH 连接失败
- 检查用户名和服务器 IP 地址是否正确
- 确认目标机器SSH服务是否运行
- 验证认证方式(密钥/密码)是否正确
-
权限问题
- 确保脚本有执行权限
-
环境变量未生效
- 记得执行
source ~/.bashrc
- 记得执行
-
网络检查失败
- 检查网络连接和 NPU 设备状态
- 查看服务日志
- 确认端口是否被占用
更多推荐
所有评论(0)