modelscope适配昇腾NPU

2023-11-07 03:12
文章标签 适配 npu modelscope

本文主要是介绍modelscope适配昇腾NPU,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

注意

我只做了raner,raner-50cls,corom这三个模型的适配,不能保证其他模型同样好使。

我的环境信息

NPU:  Atlas 300I Pro

Modelsope: 1.9.4(最好要使用这个版本呀,因为后面要改一下源码)

python: 3.8

torch: 2.0.1

内核以及系统版本:

有条件的可以升级一下内核到5.5或者以上,不然的话后面会出现警告(部分特性不支持)。我是没有条件升级的,不过目前模型的功能正常使用。

驱动

安装昇腾的驱动也是一个折磨的过程,主要是资料太少了,安装过程中的问题不太好找到解决办法。

确定环境信息

首先我们要清楚自己的环境信息,也就是你的npu的型号:

lspci |grep -i 'Processing accelerators'

通过上面命令我们可以知道,我们机器上有两个npu。 我们可以通过d500确定npu的型号(这里我没有找到官方的转换渠道,而是百度了一下,如果你有更好的方式,帮忙给留个言)

下载驱动

我们在下面这个网站找合适的驱动和cann,这个网站我也是找了好久。

https://www.hiascend.com/hardware/firmware-drivers/community?product=2&model=15&cann=7.0.0.alpha001&driver=1.0.20.alpha

 下载的时候注意cpu架构,软件包格式可以选择run格式,组件选择npu。

cann的版本要和你的环境对应一下,尤其是torch的版本,可以去这个网站查一下:

pytorch: Ascend PyTorch adapter

选好后一般会有两个文件,一个是驱动,一个是固件:

安装驱动

安装流程是,先安装驱动,在安装固件

chmod +x *.run ## 安装驱动
# 先进行check
./xx.run --check# 然后进行安装
./xx.run --full## 安装固件
# 先进行check
./xx.run --check# 然后进行安装
./xx.run --full

官方的安装流程可以参考一下:

安装驱动 - Atlas 300I Pro 推理卡 5.1.RC2 NPU驱动和固件安装指南 06 - 华为

安装完后执行一下,npu-smi info, 出现下图这样就说明安装正确了:

安装Ascend-cann-toolkit

这一步可以先不做,如果后面出现相关报错了,或者你的驱动目录(一般是/usr/local/Ascend这个目录)中没有ascend-toolkit目录,你可以做下这一步。

首先下载toolkit包

(如果时间富裕的话,这些包都安装一下,如果想偷懒的话就安装 toolkit这个包就行了)

# 安装
chmod +x xxx-toolkit-xx.run
# 运行
./xxx-toolkit-xx.run --install
# 如果报错的话,可以加上 --force参数,或者使用其他版本
应用环境部署

首先你得有一个正常的modelscope的环境,这是前提呀!!!,如果没有的话请先准备好,再往后执行。

安装python依赖
# 安装 decorator-5.1.1-py3-none-any.whl# 安装torch_npu
版本要结合 torch/cann的版本
https://gitee.com/ascend/pytorch#pytorch%E4%B8%8Epython%E7%89%88%E6%9C%AC%E9%85%8D%E5%A5%97%E8%A1%A8
 修改modelscope

代码仓库:

modelscope_for_ascend: modelscope 适配昇腾的NPU。 目前能运行的模型是raner,raner-50cls,corom,其他模型可以尝试一下,有问题大家一起解决。

找到你的python环境的site-packages, 将你的modelscope目录备份下,然后替换为仓库里的modelscope。

使用
不使用容器

执行如下脚本之前,要执行一下:source /usr/local/Ascend/ascend-toolkit/set_env.sh

from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks
import torch_npuif __name__ == '__main__':device = "npu:1"torch_npu.npu.set_device("npu:1")ner_pipeline = pipeline(Tasks.named_entity_recognition,'damo/nlp_raner_named-entity-recognition_chinese-base-ecom',  device_map=device)result = ner_pipeline('他继续与貝塞斯達遊戲工作室在接下来辐射4游戏。')print(result)
使用容器

首先要安装一个ascend-docker-runtime:

https://github.com/Ascend/ascend-docker-runtime/tags

然后再运行容器的指令中添加如下参数:

-e LD_LOBRARY_PATH=/usr/local/Ascend/driver/lib64/driver:/usr/local/Ascend/driver/lib64/common:/usr/local/Ascend/driver/lib64/ \
--cap-add=SYS_PTRACE --security-opt seccomp=unconfined \
--device=/dev/davinci4 --device=/dev/davinci5 \
--device=/dev/davinci6 --device=/dev/davinci7 \
--device=/dev/davinci_manager \
--device=/dev/devmm_svm \
--device=/dev/hisi_hdc \
-v /usr/local/Ascend:/usr/local/Ascend \
-v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \
-v /usr/local/dcmi:/usr/local/dcmi \

进入容器,首先执行一下: source /usr/local/Ascend/ascend-toolkit/set_env.sh

然后运行python脚本即可。

问题交流

 QQ 614809646

这篇关于modelscope适配昇腾NPU的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/360868

相关文章

鸿蒙开发5.0【Picker的受限权限适配方案】

Picker由系统独立进程实现,应用可以通过拉起Picker组件,用户在Picker上选择对应的资源(如图片、文档等),应用可以获取Picker返回的结果。 类型受限权限使用的picker音频ohos.permission.READ_AUDIO,ohos.permission.WRITE_AUDIOAudioViewPicker文件ohos.permission.READ_DOCUMENT,oh

android屏幕适配的问题

这里主要是介绍两种方法:恰巧这两种方法都是出自同一个大神的手笔,当然我这里不做详细的介绍了,大神的博客里面有详细的介绍 1  百分比 洋神的博客:http://blog.csdn.net/lmj623565791/article/details/46767825 github :https://github.com/hongyangAndroid/android-percent-suppor

恋爱相亲交友系统源码原生源码可二次开发APP 小程序 H5,web全适配

直播互动:平台设有专门的直播间,允许房间主人与其他异性用户通过视频连线的方式进行一对一互动。语音视频交流:异性用户可以发起语音或视频通话,以增进了解和交流。群组聊天:用户能够创建群聊,邀请自己关注的异性朋友加入,以便进行多人在线交流。虚拟礼品赠送:平台提供多样化的虚拟礼物,不同礼物有不同的价值,用户可以用来表达好感或支持。私人消息:异性用户之间可以互相发送私人信息,不过平台为了维护用户体验,对

安卓8.0通知栏适配

一、谷歌为什么在安卓8.0对通知栏进行修改         系统通知栏作为除桌面启动图标之外的唯一入口,对app的日活起到非常重要的作用,因此各个app开发商都希望能抢占用户的通知栏。随着移动端的普及和安卓手机存储容量的扩大,用户手机能安装的app数量越来越多,一台手机安装几十到上百个app已经不足为奇,各个app都极尽可能的抢占通知栏,而安卓系统本身又没有一种规范来约束app开发商的这种行为,

安卓8.0桌面图标适配

一、现状及问题          在安卓8.0之前的版本中,原生安装系统 在应用安装到手机后,显示在桌面上的图标只有一种方式来决定, 即在manifest.xml的Application节点中设置 icon标签的属性,这个任何安卓开发者都应该清楚。            上面我们说是在原生安卓系统中的表现,那么在国内就不一定是这样。 拿小米手机来举例,MiUI 8.2 对应 Android 6.

任务栏透明怎么设置?适配最新版 Windows 电脑的方法介绍(图文教程)

电脑任务栏作为Windows操作系统中的一个重要组件,部分用户对于任务栏的了解比较少,经常会遇到任务栏消失、任务栏透明度不会设置的问题。本文一一给大家科普关于Windows任务栏的知识,以及设置任务栏透明的技巧。 一、什么是任务栏 电脑任务栏指的是屏幕下的小长条,由左到右分别包括了:开始、搜索、应用程序区、托盘区、音量、网络设置、输入法、日历等内容组成 主要作用: 1、启动和切换应用程

通知Notification(可展开的大布局)使用,适配android8.0

补充修正: 2018-11-07 问题:Notification PendingIntent失效,每个通知都响应第一个PendingIntent https://blog.csdn.net/u013370255/article/details/83791750 2018-08-16 问题:app版本更新,通知形式显示安装包下载进度 https://blog.csdn.net/u01337025

适配iOS6与iOS7

适配屏幕其实很简单,但为了保持兼容性以及写的代码的通用性,以及最小的改动代码,本人按照如下的一种方式来适配,可以一劳永逸. 1. 先定义几个宏,分辨表示应用可以使用区域的高度,屏幕可用区域的高度,屏幕的宽度 2. 再看看如下图的一些描述 3. 接下来看看适配的代码如何写 #import "RootViewController.h"#define iOS7

LLaMA-Factory仓基础功能架构及NPU/GPU环境实战演练

LLaMA-Factory 基础篇 LLaMA-Factory简介 LLaMA-Factory是一个开源的大规模语言模型微调框架,设计用于简化大模型的训练过程。它提供了一个统一的平台,支持多种大模型的微调,包括LLaMA、BLOOM、Mistral等,旨在帮助用户快速适应和调整这些模型以适应特定的应用场景。LLaMA-Factory通过提供一套完整的工具和接口,使用户能够轻松地对预训练的

模型从 HuggingFace 转存到 ModelScope

由于 HuggingFace 网络访问比较慢,国内通常会使用魔搭下载模型,如果魔搭上还没有,需要从 HuggingFace 准存一下,本文将通过 Colab + AliyunPan 的方式下载模型并进行转存。 登录Colab 并运行一下命令 安装依赖包,Huggingface 和云盘 # 安装需要的包!pip install huggingface_hub aligo 下载模型 im