昇腾910b部署Chatglm3-6b进行流式输出【pytorch框架】NPU推理

文章目录

    • 准备阶段
    • 避坑阶段
    • 添加代码
    • 结果展示

准备阶段

  • 配套软件包Ascend-cann-toolkit和Ascend-cann-nnae
  • 适配昇腾的Pytorch
  • 适配昇腾的Torchvision Adapter
  • 下载ChatGLM3代码
  • 下载chatglm3-6b模型,或在modelscope里下载

避坑阶段

  • 每个人的服务器都不一样,在ChatGLM3/issues中别人只需要修改指定驱动,但是我的不行
    在这里插入图片描述
  • 删除模型文件包中的model.safetensors.index.json,否则加载模型时会自动加载safetensors文件,而不加载bin文件
/home/anaconda3/envs/sakura/lib/python3.9/site-packages/torch_npu/contrib/transfer_to_npu.py:124: RuntimeWarning: torch.jit.script will be disabled by transfer_to_npu, which currently does not support it, if you need to enable torch.jit.script, please do not use transfer_to_npu.warnings.warn(msg, RuntimeWarning)
Loading checkpoint shards:   0%|                                                                                                                                     | 0/7 [00:00<?, ?it/s]
Traceback (most recent call last):File "/home/HwHiAiUser/work/ChatGLM3/basic_demo/cli_demo.py", line 22, in <module>model = AutoModel.from_pretrained(MODEL_PATH, trust_remote_code=True).npu().eval()File "/home/anaconda3/envs/sakura/lib/python3.9/site-packages/transformers/models/auto/auto_factory.py", line 558, in from_pretrainedreturn model_class.from_pretrained(File "/home/anaconda3/envs/sakura/lib/python3.9/site-packages/transformers/modeling_utils.py", line 3187, in from_pretrained) = cls._load_pretrained_model(File "/home/anaconda3/envs/sakura/lib/python3.9/site-packages/transformers/modeling_utils.py", line 3560, in _load_pretrained_modelstate_dict = load_state_dict(shard_file)File "/home/anaconda3/envs/sakura/lib/python3.9/site-packages/transformers/modeling_utils.py", line 467, in load_state_dictwith safe_open(checkpoint_file, framework="pt") as f:
FileNotFoundError: No such file or directory: "/home/HwHiAiUser/models/chatglm3-6b/model-00001-of-00007.safetensors"
/home/anaconda3/envs/sakura/lib/python3.9/tempfile.py:817: ResourceWarning: Implicitly cleaning up <TemporaryDirectory '/tmp/tmp1ygjyx3i'>_warnings.warn(warn_message, ResourceWarning)

在这里插入图片描述

添加代码

找到ChatGLM3/basic_demo/cli_demo.py
添加以下代码:

import torch
import torch_npu
import torchvision 
import torchvision_npu
from torch_npu.contrib import transfer_to_npu
import os
import platform
import time
torch_device = "npu:3" # 0~7
torch.npu.set_device(torch.device(torch_device))
torch.npu.set_compile_mode(jit_compile=False)
option = {}
option["NPU_FUZZY_COMPILE_BLACKLIST"] = "Tril"
torch.npu.set_option(option)
print("torch && torch_npu import successfully")

模型加载部分修改为:

model = AutoModel.from_pretrained(MODEL_PATH, trust_remote_code=True).npu().eval()

结果展示

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++(9)——内存管理

1. 内存分类&#xff1a; 在前面的文章中&#xff0c;通常会涉及到几个名词&#xff0c;例如&#xff1a;栈、堆。这两个词所代表的便是计算机内存的一部分 。在计算机中&#xff0c;对系统的内存按照不同的使用需求进行了区分&#xff0c;大致可以分为&#xff1a;栈 、堆、数…

解决uni-app小程序获取路由及路由参数

代码: this.id = this.$route.query.id;错误信息: 解决方案: // 获取query对象// #ifdef H5this.id = this.$route

OpenGl 19高级GLSL

一.GLSL的内建变量 在着色器中&#xff0c;需要当前着色器以外地方的数据的话&#xff0c;必须把数据传进来。之前我们是通过uniform类型和采样器来完成的。之外&#xff0c;GLSL还支持另外几个以gl为前缀的变量&#xff0c;提供更多读写数据的方式&#xff0c;比如说顶点着色…

第一次在RUST官方论坛上留言发布我的Rust板箱

第一次在RUST官方论坛上发帖子&#xff0c;有点紧张~地址在这里&#xff1a; 【My Rust Crate】obtains linux local information - The Rust Programming Language Forum (rust-lang.org)

C++——STL标准模板库——容器详解——list

一、基本概念 &#xff08;一&#xff09;定义 list&#xff1a;双向链表。list是一种分布式存储的线性表&#xff0c;每个节点分为数据域和指针域&#xff0c;其中指针域中包含一个指向前驱节点的指针和一个指向后续节点的指针&#xff0c;基本模型如下&#xff1a; &#…

Python学习从0到1 day2 python注释

那就祝我们 all is well ——24.1.12 一、python中的注释 1.注释的作用 注释代码与非注释代码对比&#xff0c;可以发现&#xff0c;添加了注释的代码更加易于程序的阅读 2.注释的分类及方法 注释在python中有两种形式&#xff1a;单行注释和多行注释。 单行注释只能注释一行…

日常工作中,软件测试人员如何避免“背锅”

作为一名软件测试工程师&#xff0c;日常工作中最常打交道的肯定就是开发和产品经理。有沟通就会问题&#xff0c;有问题难免会有争执。那么你肯定听过这些话&#xff1a; “这么弱智的bug你都测不出来吗&#xff1f;” “为啥这个功能还没测完就上线了&#xff1f;” “研发…

c++类程序设计题1

#include<iostream> #include<string> using namespace std;class cube{public ://设置长void setM(int m){M_l m;}int getl(){return M_l;}//设置宽void setr(int r){M_r r;}int get(){return M_r;}//设置高void setm(int m){M_m m;}int getm(){return M_m;}//…

Pycharm close project 速度缓慢解决办法

解决Pycharm close project缓慢现象 1.问题描述 close project后需要等待很长的时间。 2.解决办法 在Help -> Find Action -> 输入 Registry -> 禁用ide.await.scope.completion 问题解决&#xff01;&#xff01;&#xff01; &#x1f603;&#x1f603;&#x…

spring Security源码讲解-Sevlet过滤器调用springSecurty过滤器的流程

承接上文 上一节 http://t.csdnimg.cn/ueSAl 最后讲到了过滤器收集完成注入容器&#xff0c;这节我们来讲Security的Filter是怎么被Spring调用的。 我们先看webSecurity的performBuild方法(), 也就是说&#xff0c;最终返回的过滤器对象实例有两种情况当我们配置debugEnabl…

便捷特惠的快递寄件快递物流折扣平台 ,通常都有什么常见问题?

首先&#xff0c;最重要的一点是怎么寄快递更便宜&#xff1f; 我们在寄快递时&#xff0c;尽量把包裹压缩空间大一点&#xff0c;这样在体积上面就会减少一部分的费用呢&#xff0c;另外就是选择有优惠的平台下单。例如在闪侠惠递平台下单&#xff0c;单单打折&#xff0c;单…

深入理解 Flink(八)Flink Task 部署初始化和启动详解

JobMaster 部署 Task 核心入口&#xff1a; JobMaster.onStart();部署 Task 链条&#xff1a;JobMaster --> DefaultScheduler --> SchedulingStrategy --> ExecutionVertex --> Execution --> RPC请求 --> TaskExecutor TaskExecutor 处理 JobMaster 的 …