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

本文介绍了如何在内存受限的设备上部署Qwen-14B模型,通过量化技术将其内存需求从30GB降低到13GB,并推荐使用阿里魔搭下载模型和安装必要的依赖包,包括AutoGPTQ和FlashAttention以提升推理速度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于卡只有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 生效后:
请添加图片描述

### Qwen2.5-14B 模型本地部署方法 #### 下载并安装模型资源 为了在本地环境中成功部署 Qwen2.5-14B-Instruct 模型,需先通过 Python 的包管理工具 `pip` 来获取该模型的相关文件。具体操作如下所示: ```bash pip install git+https://huggingface.co/Qwen/Qwen2.5-14B-Instruct ``` 此命令会自动处理依赖关系并将所需库安装到当前环境之中[^1]。 #### 配置 API 服务器启动参数 当准备就绪之后,可以通过 VLLM 提供的服务端口来运行这个大型语言模型实例。下面是一组推荐配置选项用于启动服务进程: ```bash python -m vllm.entrypoints.openai.api_server \ --model /path/to/local/model/Qwen2.5-14B-Instruct-GPTQ-Int8 \ --trust-remote-code \ --enforce-eager \ --max-model-len 256 \ --tensor-parallel-size 2 \ --dtype float16 \ --quantization gptq \ --port 8001 \ --host 0.0.0.0 ``` 这里需要注意的是 `/path/to/local/model/` 应替换为实际存储路径;而其他参数则可以根据硬件条件和个人需求适当调整[^3]。 #### 使用示例代码调用接口 完成上述设置后,即可编写简单的客户端脚本来测试新搭建好的 LLM 接口是否正常工作。Python 示例代码片段如下: ```python import requests url = "http://localhost:8001/v1/completions" headers = {"Content-Type": "application/json"} data = { "prompt": "你好", "max_tokens": 50, } response = requests.post(url, headers=headers, json=data) print(response.json()) ``` 这段程序将会向刚刚建立起来的服务发送 HTTP POST 请求,并打印出由 Qwen2.5-14B 所生成的回答内容。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值