【LLM之基座】qwen 14b-4int 部署踩坑

由于卡只有24G,qwen14b 原生需要 30GB,按照官方团队的说法,他们用的量化方案是基于AutoGPTQ的,而且根据评测,量化之后的模型效果在几乎没有损失的情况下,显存降低到13GB,妥妥穷狗福音,说干就干。

下载模型

现在huggingface只能通过科学的方式访问,而且如果一个个手动下载hin麻烦,还好阿里的魔搭做的不错,上面也有很多开源的中文模型,所以更推荐使用魔搭进行下载,速度杠杠的,最高可以达到73.6MB/s,等个几分钟就下完了:

pip install modelscope
from modelscope.hub.snapshot_download import snapshot_download
model_dir = snapshot_download('qwen/Qwen-14B-Chat-Int4', 
                              cache_dir='model', 
                              revision='master')

请添加图片描述

安装依赖包

比起原生的14b模型,这里需要安装相应的量化包auto-gptqoptimum,这两包安装不麻烦,但要版本对,不然就会报很多奇奇怪怪的错误,笔者在安装过程中就碰到过如下报错:

ModuleNotFoundError: No module named 'optimum.gptq'
exllama_kernels not installed.

其实就是包的版本要套上,笔者最终实验成功的版本答案如下:

torch                          2.0.1+cu117
auto-gptq                      0.4.2
transformers                   4.33.3
optimum                        1.12.0

如果想要推理更快一点,也可以安装flash_attn,不过这个安装也有挺多坑的,要看cuda驱动,torch版本,用pip安装容易报错,推荐直接去安装预编译的whl包,地址在GitHub上:https://github.com/Dao-AILab/flash-attention/releases

不过装完之后,还是报了个找不到包的警告,说明我们还没有完全安装成功:

import flash_attn rotary fail
import flash_attn rms_norm fail

去git上把源码clone下来,然后去对应的文件下安装好,这个编译过程有点长,特别是安装layer_norm的时候,笔者卡了大概个把小时,看issue上说cuda118会快很多,笔者环境是cuda117,真的3Q了,可以先去喝杯咖啡:

cd rotary/
pip install .

cd layer_norm
pip install .

请添加图片描述

成功安装之后,大概可以将推理速度缩短到原来的1/3,所以有耐心的还是推荐去安装一下。

推理

from transformers import AutoModelForCausalLM, AutoTokenizer

model_dir = "model/qwen/Qwen-14B-Chat-Int4"
# Note: The default behavior now has injection attack prevention off.
tokenizer = AutoTokenizer.from_pretrained(model_dir, trust_remote_code=True)

model = AutoModelForCausalLM.from_pretrained(
    model_dir,
    device_map="auto",
    trust_remote_code=True
).eval()

response, history = model.chat(tokenizer, "你是谁", history=None)
print(response)

请添加图片描述

以上,就搞定Qwen-14B-Chat-Int4的推理部署了。

flash_attn 未生效前:
请添加图片描述
flash_attn 生效后:
请添加图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

①Redis String 字符串类型【命令汇总】

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ Redis String ①Redis String 字符串类型【命令…

一文教会你SpringSecurity 自定义认证登录

目录 前言1-自定义用户对象2-自定义UserDetailsService3-自定义Authentication4-自定义AuthenticationProvider5-自定义AbstractAuthenticationProcessingFilter6-自定义认证成功和失败的处理类7-修改配置类8-测试 前言 现在登录方式越来越多,传统的账号密码登录已…

Audio PA 功能失败导致Android (A12)重启

1. 问题现象 做完一版os准备导入工厂生产,简称之位Ros(release),工厂有独立的用于验证其功能的os,简称Fos。出厂之前,需要做Fos到Ros的切换。然而,在切到Ros的时候,发现有低概率的设…

前端对用户名密码加密处理,后端解密

一. 正常表单提交如图&#xff0c;可以看见输入的用户名密码等 二. 使用crypto-js.min.js进行前端加密处理 js资源地址链接&#xff1a;https://pan.baidu.com/s/1kfQZ1SzP6DUz50D–g_ziQ 提取码&#xff1a;1234 前端代码 <script type"text/javascript" src&q…

Python基础入门---conda 如何管理依赖包以及复制相同环境的

文章目录 创建虚拟环境:创建虚拟环境并指定Python版本:安装依赖包:从环境导出依赖包清单:从依赖包清单创建环境:复制环境:移植环境:在Conda中,你可以使用conda create命令来创建和管理虚拟环境,而使用conda install命令来安装和管理依赖包。以下是一些基本的命令和步骤…

基于SpringBoot的SSMP整合案例(业务层基础开发与快速开发)

业务层基础开发 接口类public interface BookService {boolean save(Book book);boolean update(Book book);boolean delete(Integer id);Book getById(Integer id);List<Book> getAll();IPage<Book> getByPage(int currentPage,int pageSize);IPage<Book> …

C语言判断素数(ZZULIOJ1057:素数判定)

题目描述 输入一个正整数n&#xff0c;判断n是否是素数&#xff0c;若n是素数&#xff0c;输出”Yes”,否则输出”No”。 注意&#xff1a;1不是素数。 输入&#xff1a;输入一个正整数n(n<1000) 输出&#xff1a;如果n是素数输出"Yes"&#xff0c;否则输出"…

07.智慧商城——商品详情页、加入购物车、拦截器封装token

01. 商品详情 - 静态布局 静态结构 和 样式 <template><div class"prodetail"><van-nav-bar fixed title"商品详情页" left-arrow click-left"$router.go(-1)" /><van-swipe :autoplay"3000" change"onCha…

内网信息收集

目录 本机信息收集 查看系统配置信息 查看系统服务信息 查看系统登录信息 自动信息收集 域内信息收集 判断是否存在域 探测域内存主机&端口 powershell arp扫描 小工具 telnet 查看用户&机器&会话相关信息 查看机器相关信息 查看用户相关信息 免费领…

LoRa模块空中唤醒功能原理和物联网应用

LoRa模块是一种广泛应用于物联网领域的无线通信模块&#xff0c;支持低功耗、远距离和低成本的无线通信。 其空中唤醒功能是一项重要的应用&#xff0c;可以实现设备的自动唤醒&#xff0c;从而在没有人工干预的情况下实现设备的远程监控和控制。 LoRa模块空中唤醒功能的原理…

GFS 分布式文件系统

gfd glusterFS开源的分布式的文件系统 存储服务器 客户端 以及网络&#xff08;NFS/samba&#xff09;网关 传统方式的分布式系统元服务器&#xff0c;元服务器保存存储节点的目录树信息 一旦元服务器故障&#xff0c;所有的存储节点全部消失 现在GFS取消了元服务器机制&am…

波卡三季度报告:已实现白皮书目标,异步支持与应用链技术推进

作者&#xff1a;Nicholas Garcia&#xff0c;Messari 研究分析师 编译&#xff1a;OneBlock 来源&#xff1a;https://messari.io/report/state-of-polkadot-q3-2023 知名分析平台 Messari 发布了 Polkadot 2023 年第三季度报告&#xff0c;分析了波卡的关键数据指标以及网…

双向链表的知识点+例题

1.链表的种类 题中常考查以下两种&#xff1a; 上一讲我们学了无头单向非循环链表&#xff0c;这节&#xff0c;让我们看一下双向链表的操作吧~ 2基本操作 1&#xff0c;定义双向链表 2&#xff0c;创建一个节点 3&#xff0c;初始化双链表 4&#xff0c;尾插一个节点 5打印…

CRM系统怎么选 企业CRM系统选型需要注意什么

如何为企业挑选CRM系统&#xff0c;随着市场经济的发展&#xff0c;越来越多的CRM系统出现&#xff0c;功能也是越来越强大&#xff0c;但是&#xff0c;其实很多人对CRM系统了解的并不多&#xff0c;不知道应该如何选择CRM系统&#xff0c;今天白码小编就来介绍一下CRM系统选型…

什么是日志分析?为什么IT管理员需要日志分析?

在现在大数据时代&#xff0c;大量的数据被生成和记录&#xff0c;无论是企业还是个人&#xff0c;都在不断产生各种日志。日志记录了系统、应用程序、网络等多个领域的活动和事件信息&#xff0c;它们对于解决问题、监控和优化系统、还原事件等都非常重要。而这些海量的日志数…

近期局势较多变化 适合黄金代理入场吗?

进入本年的四季度后&#xff0c;中东局势出现了比较大的变化。首先&#xff0c;巴以冲突不断的加剧&#xff0c;而且马来西亚的林吉特出现大幅贬值&#xff0c;甚至有市场论调认为&#xff0c;亚洲金融危机可能会重新点燃。从这个角度来说&#xff0c;整体的市场环境是很动荡的…

PP-YOLOE: An evolved version of YOLO(2022.12)

文章目录 Abstract1. Introduction2. Method2.1. A Brief Review of PP-YOLOv22.2. Improvement of PP-YOLOEAnchor-freeBackbone and NeckTask Alignment Learning (TAL)Efficient Task-aligned Head (ET-head) 3.Experiment4. Conclusion 原文链接 源代码 Abstract 在本报告…

基于plc的柔性制造系统供料检测单元的设计(论文+源码)

1.系统设计 本次基于plc的柔性制造系统供料检测单元的设计&#xff0c;其系统结构框图如图2.1所示&#xff0c;系统采用西门子S7-200 型号的PLC作为主控制器&#xff0c;并结合温度传感器&#xff0c;重量传感器&#xff0c;限位开关&#xff0c;变频器等器件来构成整个系统&a…

Android Proguard混淆

关于作者&#xff1a;CSDN内容合伙人、技术专家&#xff0c; 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 &#xff0c;擅长java后端、移动开发、人工智能等&#xff0c;希望大家多多支持。 目录 一、导读二、概览三、语法规则3.1 输入/输出选项3.2 保留选项3.3 缩…

十大热门骨传导蓝牙耳机排行榜,精选最佳的五款骨传导蓝牙耳机

排行榜十大热门骨传导耳机&#xff0c;哪些才是综合实力最强的骨传导耳机&#xff1f; 近年来&#xff0c;骨传导耳机越来越受欢迎。由于骨传导耳机不需要插入耳朵&#xff0c;用户能够同时感知周围环境的声音&#xff0c;不会完全隔绝外界&#xff0c;增加了使用时的安全性。…