文章目录
前言
前段时间想玩玩昇腾,发现华为云上租地GPU服务器,没有最新地cann8.0的镜像,自己折腾了许久,根本无法替换自己的镜像上去,此处省略一万字关于华为云的吐槽。
启智社区提供了不少国产厂家的免费算力,接下来,话不多说,开整。
正文
没账号的自己注册个,这个社区似乎每天登录都会送积分,积分可以免费兑换算力
1、新建云脑任务
这里我们选择调试任务,不要选错了哈,其他的任务,跟这个完全不一样。然后点击下一步
2、设置调试任务
可以看到,确实提供了很多厂家的免费算力,还是很不错的了。
这里我们选显存64G的昇腾D910B,其它的我试了没跑起来,可能是我跑的模型或者镜像的原因,第一次尝试,建议按步骤走
选好显卡后,接着选镜像。
注意: 镜像选错了,大概率跑不起来,按照文中踩过坑的镜像选就对了。
选我框出来的这个
数据集随便,可选可不选,反正也用不上。
模型的话,最好选一下,否则就要自己下载了,我们选他这里面有的,可以省掉下载模型的时间。
这里我多选几个,反正加载很快
点击选择模型,然后切到公开的模型,直接搜自己想部署的。
这里我选了这三个
点击确定。
可以注意一下右上角的代码,这段代码是用来加载我们选择的模型和数据集用的,我们直接点击复制就可以了,后面能用到。
点击新建任务
等他状态变成 Runiing就可以调试了。
之所以选这几个模型是因为,我们接下来要用lmdeploy部署,lmdeploy在华为昇腾平台上,支持的模型是比较有限的,如下:
官方文档链接: PyTorchEngine on Huawei Ascend Platform
好了,接着回到启智社区,资源已经加载好了,点击调试
进来后能看到以下页面,我们来点击框框中的这个notebook,打开它,执行我们前面复制的代码
如果在新建任务时没复制右上角的代码也没关系,应该所有人的都一样,如下:
也可以从调试任务那里的那段蓝色的任务名称点进去,可以找到对应的代码
from c2net.context import prepare
#初始化导入数据集和预训练模型到容器内
c2net_context = prepare()
#获取预训练模型路径
qwen2_5_7b_instruct_path = c2net_context.pretrain_model_path+“/”+“Qwen2.5-7B-Instruct”
internlm2_5_7b_chat_path = c2net_context.pretrain_model_path+“/”+“internlm2_5-7b-chat”
qwen2_7b_instruct_path = c2net_context.pretrain_model_path+“/”+“Qwen2-7B-Instruct”
#输出结果必须保存在该目录
you_should_save_here = c2net_context.output_path
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
你如果选了数据集,还会有其它代码,但是你如果选的模型和我的一样,那应该就是这么点了。
进入notebook后执行代码:
可以看到左边的 pretrainmodel
文件夹,我们选择的模型,都在里面了
3、部署模型
好了,接下来我们打开一个终端,开始正式搞活了
进来后,第一件事,看看我们的显卡情况,以示尊重,执行 npu-smi info
然后拉lmdeploy的代码,安装lmdeploy
git clone https://github.com/InternLM/lmdeploy.git
cd lmdeploy
pip install -e .
- 1
- 2
- 3
拉下代码后,我们还要改下requirements中的内容,否则会报错:
把框出来的这行注释掉或者删掉,都可以,我这里注释掉了。
如果你没这样做的话,会报错如下:
注释掉了后再执行pip install -e .
就不会报错了
顺利装完后,我们试试lmdeploy有没有真的安装成功
在命令行中输入 lmdeploy
即可验证
发现又报错了,不过这个问题不大,执行:
pip uninstall pillow
pip install pillow
- 1
- 2
就可以了,再次验证下:
至此,环境就都搞好了,接下来直接部署下试试,先从 internlm2_5-7b-chat
开始
我们回到目录:
部署命令
lmdeploy chat ./pretrainmodel/internlm2_5-7b-chat --backend pytorch --device ascend --eager-mode
- 1
执行后发现还是报错,在命令行再执行以下命令即可解决
pip install dlinfer-ascend
- 1
他这里的输入,要按两下回车。
没想到,真的成功了。
可以再试试其它模型,我这里就不继续赘述了,直接说结论。
qwen2.5 应该时跑不起来的,qwen2 是可以的。
具体原因不是很清楚,大概率是镜像问题吧。