Qwen2适配Ascend NPU开源验证任务心得
Qwen2适配Ascend NPU、Kunpeng CPU 以及 OpenEuler 操作系统开源验证任务心得
首先看了一下任务计划书:https://bbs.huaweicloud.com/blogs/437824,主要目的是将 Qwen2 项目适配至华为的 Ascend(昇腾)和 Kunpeng(鲲鹏)处理器,确保其在这些硬件平台上的高效运行,也就是说验证qwen2能不能在 Ascend(昇腾)和 Kunpeng(鲲鹏)处理器中运行。
开发过程
明确目的后开始熟悉模型,Qwen2的github网址:https://github.com/QwenLM/Qwen2。把代码库中的代码文件(examples/demo/web_demo.py)wget下来。
有了代码后去下载模型文件
我是在合集详情页 · 魔搭社区 (modelscope.cn)下载的模型。先使用:pip install modelscope 安装modelscope,然后使用:
modelscope download --model Qwen/Qwen2-7B-Instruct --local_dir ./dir
把模型下载到当前文件夹。
安装依赖包
先在鲲鹏cpu和欧拉操作系统下验证推理,在:https://pytorch.org/ 下载安装cpu版本的pytorch,(conda安装:
conda install pytorch torchvision torchaudio cpuonly -c pytorch
)。
修改推理代码
把从github下载下来的推理代码web_demo.py中的改为本地模型文件的路径,在64行代码加上
device_map = "cpu"
,运行时会提醒你没有安装全的包和版本不对的包,根据提示安装修改即可。
在NPU推理模型
使用NPU推理模型需要安装pytorch、CANN和torch_npu,
先安装CANN,参考:https://www.hiascend.com/zh/developer/download/community/result?module=cann。
torch_npu的安装参考:https://github.com/Ascend/pytorch/blob/master/README.zh.md。
下载模型和之前在cpu上步骤相同。
获取代码:
Qwen2在npu上推理的代码官方没有直接给出,请参考:https://blog.csdn.net/weixin_46398647/article/details/140214117?ops_request_misc=%257B%2522request%255Fid%2522%253A%252215D54717-D279-4746-B037-CDAA10279D94%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=15D54717-D279-4746-B037-CDAA10279D94&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-140214117-null-null.142^v100^pc_search_result_base4&utm_term=qwen2-7b-instruct%E9%83%A8%E7%BD%B2%E5%88%B0npu&spm=1018.2226.3001.4187。自己创建空白python代码文件,修改此网页代码。把DEFAULT_CKPT_PATH后面的路径改为你的模型文件路径,安装好相关依赖包进行推理。
注:numpy版本建议安装1.23左右的,不要安装2.0及以上的,会有兼容问题。
1 验收材料
1.1 交付件清单
- DEMO仓库地址: https://gitcode.com/huyanbo/qwen2/tree/main
- 博客的地址: https://bbs.huaweicloud.com/blogs/438997
验收细则 |
评分说明 |
是否为验收必选项 |
结果(通过/不通过) |
功能开发:完成与华为三大根技术生态(鲲鹏云、昇腾云、鸿蒙)适配的功能开发 |
基于鲲鹏、昇腾和Euler系统完成验证。 |
是 |
|
代码质量:适配华为三大根技术生态的代码质量经过工具检测达标 |
推送给开源社区的代码符合开源社区关于代码风格、功能、自动化测试等要求。 |
是 |
|
提供相关文档,比如部署文档、使用文档、配置文档等 |
根据社区要求,完善相关的开发指南和部署指导 |
否 |
|
合入到开源项目主仓:代码推送上游社区 |
代码合并到当前主干分支。 |
是 |
|
Deomo设计&开发:完成功能演示Demo的开发 |
提供DEMO仓库地址。 |
是 |
|
Demo部署&验证:完成功能演示DEMO基于华为云鲲鹏环境的部署和功能验证 |
提供DEMO部署验证结果的关键截图进行举证。提供DEMO运行环境和资源的截图举证。 |
是 |
|
发布博客:发布博客介绍适配心得。 |
提供博客的地址。 |
是 |
|
制作单机版无高危开源镜像。 |
上架云商店。 |
否 |
|
单机版镜像上架时支持模板部署。 |
|
否 |
|
制作集群版无高危开源镜像 |
上架云商店。 |
否 |
|
集群版镜像上架时支持模板部署 |
|
否 |
|
2 资源清单
产品名称 |
CPU架构 |
实例类型 |
公共镜像 |
镜像版本 |
备注 |
弹性云服务器 |
鲲鹏计算 |
鲲鹏通用计算增强型kc1 |
Huawei Cloud EulerOS |
Huawei Cloud EulerOS 2.0 Arm 64bit sdi5 for ECS BareMetal With Uniagent(150GiB) |
推荐 |
产品名称 |
NPU架构 |
CPU架构 |
操作系统 |
云堡垒机 |
Ascend 910B3 |
鲲鹏计算Kunpeng-920 |
Huawei Cloud EulerOS 2.0 (aarch64) |
3 测试结果
3.1 Cpu推理
3.2 Npu推理
运行程序前
运行程序后
推理结果
- 点赞
- 收藏
- 关注作者
评论(0)