开源模型应用落地-Qwen2-7B-Instruct-GPTQ-Int4与vllm-单机多卡-RTX 4090双卡(十二)

一、前言

    在应对业务访问量级提升的过程中,我们通过从单机单卡部署升级到单机多卡部署的方式,成功实现了VLLM模型的性能提升。在此过程中,我们遇到了一些问题和挑战,现在我将深入剖析这些经验教训,希望能够帮助大家快速上手部署可投入生产运行的环境。

    本次部署采用了入门级的4090双卡 24GB显存的配置,为大家提供了一种可参考的方案。


二、术语

2.1. vLLM

    vLLM是一个开源的大模型推理加速框架,通过PagedAttention高效地管理attention中缓存的张量,实现了比HuggingFace Transformers高14-24倍的吞吐量。

2.2. qwen2

    Qwen是阿里巴巴集团Qwen团队研发的大语言模型和大型多模态模型系列。目前,大语言模型已升级至Qwen2版本。无论是语言模型还是多模态模型,均在大规模多语言和多模态数据上进行预训练,并通过高质量数据进行后期微调以贴近人类偏好。Qwen具备自然语言理解、文本生成、视觉理解、音频理解、工具使用、角色扮演、作为AI Agent进行互动等多种能力。

最新版本Qwen2有以下特点:

  • 5种模型规模,包括0.5B、1.5B、7B、57B-A14B和72B;</

<think>嗯,用户在使用vLLM时遇到了ValueError: Unrecognized model的问题,模型Qwen/Qwen2.5-7B-Instruct-GPTQ-Int4。我需要先了解vLLM是否支持这个模型。根据之前的回答,用户可能需要检查模型名称是否正确,升级vLLM,或者手动添加支持。 首先,用户提到他们使用的模型是Hugging Face上的Qwen2.5的GPTQ量化版本。vLLM可能还没有原生支持这个特定模型,尤其是GPTQ的版本。因为vLLM主要支持AWQ量化,而GPTQ可能需要额外配置。 接下来,用户引用了之前的解决方案,比如检查模型名称是否正确,升级vLLM,或者自定义模型配置。但用户可能已经尝试过这些步骤,仍然遇到问题。需要确认模型是否在vLLM的支持列表里,或者是否需要用不同的方式加载。 然后,用户提到之前通过回退transformers版本来解决问题,但这次可能不想回退,而是希望用vLLM。这时候可能需要检查vLLM的版本是否足够新,或者是否有社区支持的分支。例如,用户可能需要使用vLLM的特定分支,比如支持Exllama的版本,来处理GPTQ模型。 另外,用户可能需要指定正确的模型架构,比如Qwen2.5可能基于类似Llama的结构,但需要正确的model_type。如果Hugging Face的模型配置中没有正确设置model_type,vLLM可能无法识别。这时候可能需要手动添加模型配置文件,或者修改vLLM的代码来注册这个模型。 最后,如果所有方法都失败,可能需要建议用户使用兼容的推理框架,比如AutoGPTQ或Exllamav2,或者等待vLLM的官方支持更新。同时,检查环境依赖是否正确,比如CUDA版本、PyTorch版本是否vLLM兼容。</think>关于使用vLLM加载`Qwen/Qwen2.5-7B-Instruct-GPTQ-Int4`模型报错`ValueError: Unrecognized model`的解决方案,请按以下优先级排查: --- ### **核心问题定位** 该错误表明vLLM尚未原生支持该模型的架构或量化格式(GPTQ-Int4)。当前vLLM主分支(0.4.1)主要支持**AWQ量化格式**的模型[^1],而GPTQ格式需要额外处理。 --- ### **解决方案1:使用社区支持分支** #### 步骤1:安装修改版vLLM ```bash pip uninstall vllm -y git clone https://github.com/your-username/vllm-gptq-support.git # 替换为实际支持GPTQ的分支 cd vllm-gptq-support pip install -e .[gptq] ``` > 注意:需寻找已实现GPTQ支持的社区分支(如`vllm-gptq`实验分支) #### 步骤2:指定量化方法 ```python from vllm import LLM llm = LLM(model="Qwen/Qwen2.5-7B-Instruct-GPTQ-Int4", quantization="gptq", dtype="float16") ``` --- ### **解决方案2:显式指定模型架构** #### 步骤1:检查模型配置文件 在Hugging Face模型仓库的`config.json`中确认`model_type`字段值: ```json { "model_type": "qwen2", "auto_map": { "AutoModelForCausalLM": "modeling_qwen2.Qwen2ForCausalLM" } } ``` #### 步骤2:强制注册模型vLLM未自动识别,手动扩展模型注册: ```python # custom_model.py from vllm.model_executor.models.qwen import QWenLMHeadModel from vllm.model_executor.models import register_model @register_model("qwen2") class Qwen2ForCausalLM(QWenLMHeadModel): pass # 启动时加载 LLM(model="Qwen/Qwen2.5-7B-Instruct-GPTQ-Int4", model_class="custom_model.Qwen2ForCausalLM") ``` --- ### **解决方案3:使用兼容推理框架(备用方案)** 若vLLM兼容性困难,可改用原生AutoGPTQ: ```python from transformers import AutoModelForCausalLM model = AutoModelForCausalLM.from_pretrained( "Qwen/Qwen2.5-7B-Instruct-GPTQ-Int4", device_map="auto", use_safetensors=True, quantization_config={"use_exllama": True}) ``` --- ### **关键验证步骤** 1. 确保模型文件完整: ```bash ls ~/.cache/huggingface/hub/models--Qwen--Qwen2.5-7B-Instruct-GPTQ-Int4/snapshots/ ``` 2. 检查CUDAPyTorch兼容性: ```bash nvcc --version # 需>=11.8 python -c "import torch; print(torch.__version__)" # 需>=2.1.1 ``` --- ### **补充说明** 若仍报错,请提供以下信息: 1. 完整的错误堆栈 2. `pip list`输出 3. 使用的vLLM分支commit hash ---
评论 34
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

开源技术探险家

以微薄之力温暖这个世界

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值