国产芯片助力大模型推理!LMDeploy+昇腾 它来了!
近日,LMDeploy 基于其强大的 PytorchEngine,增加了对华为昇腾设备的支持。这样一来,在华为昇腾上使用 LDMeploy 的方法与在英伟达 GPU 上使用 PytorchEngine 后端的方法几乎相同。因此,我们将在本期内容中为大家带来在华为昇腾设备上使用 LMDeploy 的方法。
近日,LMDeploy 基于其强大的 PytorchEngine,增加了对华为昇腾设备的支持。这样一来,在华为昇腾上使用 LDMeploy 的方法与在英伟达 GPU 上使用 PytorchEngine 后端的方法几乎相同。因此,我们将在本期内容中为大家带来在华为昇腾设备上使用 LMDeploy 的方法。
安装
我们强烈建议用户构建一个 Docker 镜像以简化环境设置。
克隆 lmdeploy 的源代码,Dockerfile 位于 docker 目录中。
git clone https://github.com/InternLM/lmdeploy.git
cd lmdeploy
环境准备
Docker 版本应不低于 18.03。并且需按照官方指南[1]安装 Ascend Docker Runtime。
Drivers,Firmware 和 CANN
目标机器需安装华为驱动程序和固件版本 23.0.3,请参考CANN 驱动程序和固件安装[2]和下载资源[3]。
另外,docker/Dockerfile_aarch64_ascend 没有提供 CANN 安装包,用户需要自己从昇腾资源下载中心[4]下载 CANN (8.0.RC3.alpha001)软件包。并将 Ascend-cann-kernels-910b*.run 和 Ascend-cann-toolkit*-aarch64.run 放在 lmdeploy 源码根目录下。
构建镜像
请在 lmdeploy源 代码根目录下执行以下镜像构建命令,CANN 相关的安装包也放在此目录下。
DOCKER_BUILDKIT=1 docker build -t lmdeploy-aarch64-ascend:latest \
-f docker/Dockerfile_aarch64_ascend .
如果以下命令执行没有任何错误,这表明环境设置成功。
docker run -e ASCEND_VISIBLE_DEVICES=0 --rm --name lmdeploy -t lmdeploy-aarch64-ascend:latest lmdeploy check_env
关于在昇腾设备上运行docker run命令的详情,请参考这篇文档[5]。
离线批处理
LLM 推理
将device_type="ascend"加入PytorchEngineConfig的参数中。
from lmdeploy import pipeline
from lmdeploy import PytorchEngineConfig
if __name__ == "__main__":
pipe = pipeline("internlm/internlm2_5-7b-chat",
backend_config = PytorchEngineConfig(tp=1, device_type="ascend"))
question = ["Shanghai is", "Please introduce China", "How are you?"]
response = pipe(question)
print(response)
VLM 推理
将device_type="ascend"加入PytorchEngineConfig的参数中。
from lmdeploy import pipeline, PytorchEngineConfig
from lmdeploy.vl import load_image
if __name__ == "__main__":
pipe = pipeline('OpenGVLab/InternVL2-2B',
backend_config=PytorchEngineConfig(tp=1, device_type='ascend'))
image = load_image('https://raw.githubusercontent.com/open-mmlab/mmdeploy/main/tests/data/tiger.jpeg')
response = pipe(('describe this image', image))
print(response)
在线服务
LLM 模型服务
将--device ascend加入到服务启动命令中。
lmdeploy serve api_server --backend pytorch --device ascend internlm/internlm2_5-7b-chat
VLM 模型服务
将--device ascend加入到服务启动命令中。
lmdeploy serve api_server --backend pytorch --device ascend OpenGVLab/InternVL2-2B
使用命令行与LLM模型对话
将--device ascend加入到服务启动命令中。
lmdeploy chat internlm/internlm2_5-7b-chat --backend pytorch --device ascend
也可以运行以下命令使启动容器后开启lmdeploy聊天
docker exec -it lmdeploy_ascend_demo \
bash -i -c "lmdeploy chat --backend pytorch --device ascend internlm/internlm2_5-7b-chat"
参考资料
[1]官方指南: https://www.hiascend.com/document/detail/zh/mindx-dl/60rc2/clusterscheduling/clusterschedulingig/clusterschedulingig/dlug_installation_012.html
[2]CANN 驱动程序和固件安装: https://www.hiascend.com/document/detail/zh/CANNCommunityEdition/80RC1alpha003/softwareinst/instg/instg_0019.html
[3]下载资源: https://www.hiascend.com/hardware/firmware-drivers/community?product=4&model=26&cann=8.0.RC3.alpha001&driver=1.0.0.2.alpha
[4]昇腾资源下载中心: https://www.hiascend.com/developer/download/community/result?module=cann&cann=8.0.RC3.alpha001
[5]文档: https://www.hiascend.com/document/detail/zh/mindx-dl/60rc1/clusterscheduling/dockerruntimeug/dlruntime_ug_013.html

昇腾计算产业是基于昇腾系列(HUAWEI Ascend)处理器和基础软件构建的全栈 AI计算基础设施、行业应用及服务,https://devpress.csdn.net/organization/setting/general/146749包括昇腾系列处理器、系列硬件、CANN、AI计算框架、应用使能、开发工具链、管理运维工具、行业应用及服务等全产业链
更多推荐

所有评论(0)