TigerBot在华为云昇腾上实现模型推理,并部署到华为昇腾NPU的详细步骤

举报
阳煦~ 发表于 2024/12/10 16:27:34 2024/12/10
【摘要】 TigerBot是虎博科技所发布的自研大模型,是一个多语言多任务大规模语言模型,功能上,Tigerbot已经包含大部分生成和理解类的能力,具体包括内容生成、文生图、开放问答、提取信息等。

Tigerbot適配昇騰云

TigerBot是虎博科技所发布的自研大模型,是一个多语言多任务大规模语言模型,功能上,Tigerbot已经包含大部分生成和理解类的能力,具体包括内容生成、文生图、开放问答、提取信息等。

TigerBot仓库地址

目录

一、华为云ECS验证

1.购买华为云虚拟私有云VPC和弹性云服务器ECS

详解教程参考链接:创建华为云弹性云服务器ECS流程
已有忽略

2.环境搭建

python版本为3.9,

代码拉取:

git clone https://github.com/TigerResearch/TigerBot.git

模型参数下载

pip install modelscope
modelscope download --model TigerResearch/tigerbot-7b-chat-v3  --local_dir tigerbot-7b

进入TigerBot文件路径下,先注釋掉requirments.txt文件中的flash-attn==2.1.1,再安裝requirements.txt 裏的包

cd TigerBot#1.進入TigerBot文件下
vim requirements.txt #2.然後在flash-attn==2.1.1前面加#號,按esc后,用 :wq保存退出
pip install -r requirements.txt  #安裝包

修改代碼infer.py

vim infer.py 

第51行左右,注釋掉原本的device,加入下面代碼:

 device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')

保存退出

3.准备测试

python infer.py --model-path ../tigerbot-7b #注意將後面的模型路徑替換為自己本地路徑

此時可以進行對話,輸入:hello,等待有結果輸出即可 (請耐心等待,模型推理實在太慢)。

二、部署到昇腾NPU

昇腾环境:
芯片类型:昇腾910B3
CANN版本:CANN 7.0.1.5
驱动版本:23.0.6
操作系统:Huawei Cloud EulerOS 2.0

1.查看NPU硬件信息

npu-smi info

image.png
如果 Health 状态为 OK,说明 NPU 和 CANN 正常运行。

2.NPU环境下运行代码

代码拉取:

git clone https://github.com/TigerResearch/TigerBot.git

模型参数下载

pip install modelscope
modelscope download --model TigerResearch/tigerbot-7b-chat-v3  --local_dir tigerbot-7b

环境配置:创建python 3.9环境并激活

conda create -n TigerBot python=3.9
conda activate TigerBot

进入TigerBot文件路径下,先注釋掉requirments.txt文件中的flash-attn==2.1.1,再安裝requirements.txt 裏的包

cd TigerBot#1.進入TigerBot文件下
vim requirements.txt #2.然後在flash-attn==2.1.1前面加#號,按esc后,用 :wq保存退出
pip install -r requirements.txt  #安裝包

編輯infer.py,

vim infer.py

在第五行下添加下边代码

import torch_npu
from torch_npu.contrib import transfer_to_npu

在main()函數上邊加上如下代碼(第21行左右):

torch.npu.empty_cache()

並將main()函數的中的model_path值改爲自己本地的模型路徑:

 model_path: str='此處爲自己本地模型路徑',

如下圖所示:

2.1 下载torch_npu插件
pip install torch==2.1.0 torch_npu==2.1.0.post8

运行代码:

python infer.py

輸入:請幫我寫一篇wedding vow letter
结果展示(略有差異):

輸入exit可退出

npu内存占用如下:

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。