在个人电脑用Atlas 300I Duo 96G推理卡跑大语言模型
本文介绍了使用Atlas300IDuo96G推理卡运行大语言模型的方案。经过一番折腾,作者最终选择Docker方式部署。详细说明了环境准备步骤,包括安装Docker和Ascend插件,并通过代理拉取npu-310p专用镜像。重点讲解了启动容器的完整命令参数配置,涉及硬件设备映射、目录挂载等关键设置。最后展示了如何获取管理员密码并访问WEB管理界面,包括资源监控、模型管理和对话测试等功能。
之前介绍过如何在Comfyui利用Atlas 300I Duo推理卡做文生视频(点这里)。
在网上翻了一些资料,终于又找到一款开源的软件“GPUStack”可以用来跑多种模型。它不仅提供了兼容OpenAI的API接口,还有图形化的操作界面。
〇、直接安装尝试
基于之前部署的Ubuntu20.04操作系统,尝试直接安装gpustack时却遇到问题:首先遇到的是Python版本的问题,官方的自动安装脚本默认调用python3,而python3默认链接到python3.8。查看gpustack的要求,要求版本为3.10 - 3.12(见这里)
尝试把python3改为链接到python3.11后,可以使用官方的脚本安装成功,但是跑模型时却出现找不到so文件的错误。
使用官方提供的针对脚本安装的卸载方法(点这里):
再重新尝试以另一种安装方法:把官方linux安装脚本中的python3字样全部替换为python3.11,安装过程也很顺利,然而启动的时候还是会调用python3,导致启动失败。
所以,最后还是觉得使用docker方式来运行gpustack更加方便,下面就以这种方式展开。
一、环境准备
具体支持硬件和要求可以看gpustack的文档(点这里):
具体安装驱动和cann的操作方法可以参考我之前的文章 (点这里)。
1、安装docker
在Ubuntu20.04安装docker可以参照这篇文章:https://www.cnblogs.com/lqqgis/p/18276118
我的操作步骤如下,首先修改系统更新源然后安装docker:
curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
然后修改文件/etc/docker/daemon.json,内容如下
{
"registry-mirrors": [
"https://dockerproxy.com",
"https://docker.m.daocloud.io",
"https://cr.console.aliyun.com",
"https://ccr.ccs.tencentyun.com",
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com",
"https://docker.nju.edu.cn",
"https://docker.mirrors.sjtug.sjtu.edu.cn",
"https://github.com/ustclug/mirrorrequest",
"https://registry.docker-cn.com"
]
}
最后重载配置文件,并重启 docker
sudo systemctl daemon-reload
sudo systemctl restart docker
2、安装插件
安装Ascend Docker Runtime的步骤参考官网文档:
hiascend.com/doc_center/source/zh/mindx-dl/500/dockerruntime/dockerruntimeug/dlruntime_ug_007.html
安装程序可以在昇腾社区搜索页面(点这里),点击“获取源码”:
然后在gitee页面可以下载到对应的程序:
下载后执行chmod +x Ascend-docker-runtime_{version}_linux-{arch}.run增加运行权限,再./Ascend-docker-runtime_{version}_linux-{arch}.run --install安装就行
二、运行GPUStack
1、拉取docker镜像
需要根据硬件选择合适的镜像版本,在国内的docker镜像网站找了一下,对应的网址是https://docker.aityp.com/r/docker.io/gpustack/gpustack
然而发现其中并没有linux amd64 npu-310p的版本,而docker.io是有对应版本的,如下图:
Atlas 300I Duo推理卡的芯片是310p,在微信上添加“gpustack助手”询问得知,npu的镜像适用于910b芯片,310P芯片应该使用npu-310p版本的镜像,一般不用名称里面含有main的镜像。
如果访问不了docker.io,可以用以下2种方法:
①设置代理:代理IP和端口需要自行准备。设置方法为:修改/etc/docker/daemon.json,添加如下内容
{
"proxies": {
"http-proxy": "http://代理IP地址:代理端口",
"https-proxy": "http://代理IP地址:代理端口"
"no-proxy": "localhost,127.0.0.1,aityp.com"
}
}
然后执行指令拉取镜像:
docker pull gpustack/gpustack:latest-npu-310p
②使用镜像站:
比如镜像站dockertest.jsdelivr.fyi,拉取命令:
docker pull dockertest.jsdelivr.fyi/gpustack/gpustack:latest-npu-310p
再修改标记为docker.io的镜像:
docker tag dockertest.jsdelivr.fyi/gpustack/gpustack:latest-npu-310p docker.io/gpustack/gpustack:latest-npu-310p
2、启动镜像
启动需要root权限,指令如下:
docker run -d \
--name=gpustack \
--runtime=ascend \
--restart=unless-stopped \
--device /dev/devmm_svm \
--device /dev/hisi_hdc \
-v /usr/local/dcmi:/usr/local/dcmi \
-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 /usr/local/Ascend/ascend-toolkit/:/usr/local/Ascend/ascend-toolkit/ \
-v /etc/ascend_install.info:/etc/ascend_install.info \
-v /root/gpustack-worker-data:/var/lib/gpustack \
--device=/dev/davinci0 \
--device=/dev/davinci1 \
--device=/dev/davinci_manager \
--network=host --ipc=host \
docker.io/gpustack/gpustack:latest-npu-310p
其中:
--runtime=ascend 作用为启用华为ascend插件,默认挂载内容和解释可以看官方文档(点这里)
--device=/dev/xxx 作用为给容器启用NPU硬件,
-v /root/gpustack-worker-data:/var/lib/gpustack 作用为将目录/root/gpustack-worker-data挂载到容器内的目录/var/lib/gpustack,该目录主要保存设置相关内容
启动大约要10s时间,启动后要执行这个指令获取管理员账号admin的密码:
docker exec gpustack cat /var/lib/gpustack/initial_admin_password
结果如下:
3、访问WEB页面
访问http://服务器IP地址/,使用admin账号和上面的密码登录,首次登录需要修改密码,登录后可以在左侧“资源”页签看到可用的GPU资源
在左侧的“模型库”页签可以下载库里的模型:
在“模型”页签可以管理已有的模型或者部署本地的模型:
试验场可以测试对话:
4、HTTP API接口
5、存在问题
目前gpustack的这个docker镜像还不支持语音模型,某些图形模型在用310P硬件运行时也有一些问题,而且速度相对较慢。
总结:
使用docker安装gpustack方式能更好解决python版本等问题。使用gpustack可以方便地使用NPU运行各种模型,虽然仍然存在一些问题,但已经可以较为充分地利用NPU资源。

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)