Gemma2适配昇腾开源验证任务心得

举报
huyanbo 发表于 2024/12/14 10:37:26 2024/12/14
【摘要】 此文章是本人使用昇腾npu推理gemma2模型的历程心得

Gemma2适配昇腾开源验证任务心得

 

首先看了一下任务计划书:https://bbs.huaweicloud.cn/blogs/441415主要目的是将 Gemma2 项目适配至华为的 Ascend(昇腾)和 Kunpeng(鲲鹏)处理器,确保其在这些硬件平台上的高效运行,也就是说验证Gemma2能不能在 Ascend(昇腾)上运行。

开发过程

明确目的后开始熟悉模型,Gemma2github网址:https://github.com/google/gemma_pytorch 。为了方便后续使用,我把代码库中的代码文件fork到了我自己的代码仓库,代码仓库的README文件有模型的镜像使用方法,不过我为了方便后续让模型使用npu进行推理选择了用代码运行模型。模型文件可以去常用的模型仓库网站寻找模型然后下载,比如huggingface和魔塔社区。

我是在魔塔社区下载的模型,版本为:gemma-2-2b-it

模型下载步骤:先使用:

pip install modelscope

 安装modelscope,然后使用:

modelscope download --model LLM-Research/gemma-2-2b-it --local_dir ./

把模型下载到当前文件夹。


编写推理代码在NPU推理模型

官方并没有直接提供gemma2的推理代码,需要自己编写,可以参考:https://gitcode.com/huyanbo/gemma2/overview ,将该代码仓库的文件下载到你本地模型所在文件夹,安装readme文件使用。

创建python虚拟环境并且安装numpy库(注:numpy版本建议安装1.23左右的,不要安装2.0及以上的,会有兼容问题。)

使用NPU推理模型需要安装pytorchCANNtorch_npu

先安装CANN,参考:https://www.hiascend.com/zh/developer/download/community/result?module=cann

安装pytorch 和torch_npu参考:https://github.com/Ascend/pytorch/blob/master/README.zh.md

其他的代码依赖包可以运行

pip install -r requirement.txt

,把我的代码库里requirement.txt文件中写出的依赖包安装到你的环境之中。

 

1       验收材料

1.1       交付件清单

1验证DEMO地址:https://gitcode.com/huyanbo/gemma2/overview

(2)验证DEMO修改记录(可以有多个修改记录,只包含和本任务验证强相关的提交记录,比如添加依赖、增加配置文件、演示开源软件功能使用的代码等):https://gitcode.com/huyanbo/gemma2/commits/detail/b40df57cb019a7defe35e2fcba72e0463734ca1f?ref=ascend_npu

(3)博客地址:https://bbs.huaweicloud.cn/blogs/442405 

 

2       资源清单

产品名称

NPU架构

CPU架构

操作系统

云堡垒机

Ascend 910B3

 

鲲鹏计算

Kunpeng-920

Huawei Cloud EulerOS 2.0 (aarch64)

 

 

3       测试结果

Npu推理

运行程序前


运行程序后


我编辑npu时指定了npu编号为3,可以看到npu3多了一个程序在运行。

 

推理结果


此模型是对话模型,我输入问题并提交给模型后,模型正确反馈了答案。

 

 

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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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