modelscope适配昇腾NPU

news2024/11/23 21:33:24
注意

我只做了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_npu



if __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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1178649.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深度学习之基于YoloV5交通信号标志识别系统

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 基于YoloV5交通信号标志识别系统介绍 基于YoloV5的交通信号标志识别系统是一种深度学习应用,旨在通过使…

《国产服务器操作系统发展报告(2023)》重磅发布

11月1日,《国产服务器操作系统发展报告(2023)》(以下简称“报告”)在 2023 云栖大会上正式发布,开放原子开源基金会理事长孙文龙、中国信息通信研究院副总工程师石友康、阿里云基础软件部副总裁马涛、浪潮信…

明御安全网关任意文件上传漏洞复现

简介 安恒信息明御安全网关(NGFW) 秉持安全可视、简单有效的理念,以资产为视角的全流程防御的下一代安全防护体系,并融合传统防火墙、入侵防御系统、防病毒网关、上网行为管控、VPN网关、威胁情报等安全模块于一体的智慧化安全网关。 较低版本的系统存…

享搭低代码平台:快速构建符合需求的会议室管理系统应用

本文介绍了享搭低代码平台如何赋予用户快速构建会议室管理系统应用的能力。通过在应用商店安装费用会议室管理模板,并通过拖拽方式对模板进行自定义扩充,用户可以快速搭建符合自身需求的会议室管理系统,从而提高会议室预订和管理的效率。 介绍…

华为eNSP实验-三层交换机的不同网段通信(通过OSPF路由方式)

1.拓扑图 2.过程如下 2.1 首先PC1和PC2配置好IP地址 2.2 在SW1上配置虚拟网关及VLAN <Huawei>system-view [Huawei]sysname SW1 [SW1]undo info-center enable [SW1] [SW1]vlan batch 10 20 [SW1]interface GigabitEthernet 0/0/1 [SW1-GigabitEthernet0/0/1]port li…

maven项目子类项目版本与父类版本不一致

项目的依赖关系 A项目的父pom是spring boot&#xff0c;A依赖pom B&#xff0c;B依赖hibernate B引用的hibernate版本为8.0.1 A引用的hibernate版本为6.2.0 maven helper插件显示无依赖冲突 这就很奇怪&#xff0c;为何依赖版本有问题呢&#xff1f;是在看不出来问题&#xff…

在线实用计算工具大全

在线实用计算工具大全 在线计算工具的实用&#xff0c;可以有效提高学习或工作效率&#xff0c;本博文介绍一个在线的实用计算工具大全&#xff08;https://tool.520101.com&#xff09;&#xff0c;作为一种辅助学习工具。 1. 在线排列组合计算 https://tool.520101.com/cal…

JS定时器实现页面N秒后跳转 实现每隔 1s 自动刷新页面并格式化的显示当前时间

1. 通过 setInterval 函数&#xff0c;来周期性的更新倒计时间&#xff0c;同时更新到页面。即通过设置页面可以显示 3 2 1&#xff0c;然后跳转。1000指的是每隔1秒执行一次。 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF…

LightDB23.4 GBK和UTF8转码失败的字符替换成空格

背景介绍 用户使用迁移工具从Oracle数据库迁移数据到LightDB的过程中发现&#xff0c;某些GBK编码转成UTF8编码后&#xff0c;在插入到LightDB中会报错。以GBK编码AAA1为例&#xff0c;LightDB的GBK和UTF8映射表中不支持AAA1这个GBK编码的转换。不支持的GBK编码都是处于GBK编码…

ifream标签中的子页面,操作父页面的元素

问题描述&#xff1a;子页面内容发生变化时&#xff0c;导航栏不会跟切换 解决办法&#xff1a; window.parent.document.getElementById demo html1 <html> <head><meta charset"UTF-8"><!-- import CSS --><link rel"stylesh…

使用VSCODE链接Anaconda

打代码还是在VSCODE里得劲 所以得想个办法在VSCODE里运行py文件 一开始在插件商店寻找插件 但是没有发现什么有效果的 幸运的是VSCODE支持自己选择Python的编译器 打开VSCODE 按住CtrlShiftP 输入Select Interpreter 如果电脑已经安装上了Python的环境 VSCODE会默认选择普通…

R语言实操记录——导出高清图片(矢量图)

R语言 R语言实操记录——导出高清图片&#xff08;矢量图&#xff09; 文章目录 R语言一、起因&#xff08;废话&#xff0c;可跳过&#xff09;二、如何在R中导出高清图片&#xff08;矢量图&#xff09;2.1、保存为EPS图片格式后转AI编辑2.2、保存为PDF格式&#xff08;推荐…

在直播系统中使用SRT协议传输视频

目录 1、简述 2、NDI、RTSP协议的优缺点 3、SRT协议简介 4、SRT协议链接地址URL格式 &#xff08;1&#xff09;listener&#xff1a; &#xff08;2&#xff09;caller&#xff1a; 5、手机发送SRT实时音视频 6、OBS中的设置 7、在vMix中的设置 8、写在最后 1、简述 …

财报解读:抢滩“睡眠经济”,麒盛科技如何制胜市场?

现代市场经济理论的鼻祖亚当斯密曾说&#xff0c;有需求就有市场&#xff0c;有市场才有发展。 调查研究显示&#xff0c;我国超3亿人存在睡眠障碍&#xff0c;其中超3/4的人晚11点以后入睡&#xff0c;近1/3的人熬到凌晨1点以后才能入睡。针对“睡个好觉”需求的“睡眠经济”…

GB28181学习(十五)——流传输方式

前言 基于GB/T28181-2022版本&#xff0c;实时流的传输方式包括3种&#xff1a; UDPTCP被动TCP主动 UDP 流程 注意&#xff1a; m字段指定传输方式为RTP/AVP&#xff1b; 抓包 SIP服务器发送INVITE请求&#xff1b; INVITE sip:xxx192.168.0.111:5060 SIP/2.0 Via: SIP…

Spring:常见的面试题和答案

1、什么是 Spring 框架&#xff1f;Spring 框架有哪些主要模块&#xff1f; Spring 框架是一个为 Java 应用程序的开发提供了综合、广泛的基础性支持的 Java 平台。 Spring 帮助开发者解决了开发中基础性的问题&#xff0c;使得开发人员可以专注于应用程序的开发。 Spring 框架…

掌动智能:UI自动化测试工具的五大功能

在现代软件开发中&#xff0c;保证应用程序的质量和性能至关重要。UI自动化测试工具是一种关键的资源&#xff0c;它们能够有效地检查应用程序的用户界面&#xff0c;确保它们在各种情况下都能正常运行。本文将探讨UI自动化测试工具的功能有哪些! UI自动化测试工具的五大功能&a…

科技云报道:不卷自研大模型,金山办公如何创新生成式AI?

科技云报道原创。 过去大半年里&#xff0c;很多人对大模型的前景寄予厚望。主流观点认为&#xff0c;每个行业、每款产品都可以通过大模型“重做一遍”。 “重做一遍”听起来想象空间很大&#xff0c;但实际上多数大模型产品需要漫长的训练周期和海量资源投入&#xff0c;落…

特斯拉的利润率已陷入恶性循环

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 总结&#xff1a; &#xff08;1&#xff09;特斯拉(TSLA)第三季度疲弱的财务业绩表明&#xff0c;在当前环境下&#xff0c;投资特斯拉股票已不再是一项有保障的投资。 &#xff08;2&#xff09;正在进行的价格战可能会进…

软件设计模式的意义

软件设计模式的意义 所有开发人员都应该接触过软件设计模式这个概念&#xff0c;看过《设计模式-可复用的对象软件的基础》这本书&#xff0c;在面试中都被问过&#xff1a; 你用过哪些设计模式这种问题。但很大可能也就仅此而已了。 为什么好像只能从框架中找到设计模式的应用…