本地部署千文2多模态大模型Qwen2-VL-7B-Instruct-GPTQ-Int4

本地部署千文2多模态大模型Qwen2-VL-7B-Instruct-GPTQ-Int4

第一部分 准备环境
1、创建环境
conda create --name qwen2vl python=3.9
2、激活环境
conda activate qwen2vl
3、安装modelscope(下载方式为魔塔社区命令行下载)
pip install modelscope
第二部 下载模型
1、下载命令
modelscope download --model qwen/Qwen2-VL-7B-Instruct-GPTQ-Int4 --cache_dir /home/ubuntu/ChatPro
第三部分 编写python代码加载模型并推理
1、编写代码

from PIL import Image
import requests
import torch
from torchvision import io
from transformers import Qwen2VLForConditionalGeneration, AutoTokenizer, AutoProcessor


model_dir = "qwen/Qwen2-VL-7B-Instruct-GPTQ-Int4"
model = Qwen2VLForConditionalGeneration.from_pretrained(
    model_dir, torch_dtype="auto", device_map="auto"
)
processor = AutoProcessor.from_pretrained(model_dir)
# Image
url = "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg"
image = Image.open(requests.get(url, stream=True).raw)

conversation = [
    {
        "role": "user",
        "content": [
            {
                "type": "image",
            },
            {"type": "text", "text": "Describe this image."},
        ],
    }
]


# Preprocess the inputs
text_prompt = processor.apply_chat_template(conversation, add_generation_prompt=True)
inputs = processor(
    text=[text_prompt], images=[image], padding=True, return_tensors="pt"
)
inputs = inputs.to("cuda")

# Inference: Generation of the output
output_ids = model.generate(**inputs, max_new_tokens=128)
generated_ids = [
    output_ids[len(input_ids) :]
    for input_ids, output_ids in zip(inputs.input_ids, output_ids)
]
output_text = processor.batch_decode(
    generated_ids, skip_special_tokens=True, clean_up_tokenization_spaces=True
)
print(output_text)

2、安装代码运行环境
pip install opencv-python
pip install uvicorn
pip install fastapi
pip install git+https://github.com/huggingface/transformers
pip install qwen-vl-utils
pip install torchvision
pip install python-multipart
pip install ‘accelerate>=0.26.0’
pip install optimum(安装这个模块的时候会卸载transformers,所以如果是先安装的transformers按完这个需要再次安装transformers,或者后安装transformers)
pip install git+https://github.com/huggingface/transformers
pip install auto-gptq

第四部分 可能出现的问题(有待补充)
1、报错信息:The checkpoint you are trying to load has model type starcoder2 but Transformers does not recognize this architecture. This could be because of an issue with the checkpoint, or because your version of Transformers is out of date.
解决办法:卸载了之前的transformer重新安装transformer(记得重新安装的时候一定要看官方文档推荐你怎么安或者推荐安装哪个版本,这一点很重要很重要很重要!!!,transformer的版本装不对,会进行不下去)
2、报错信息:ModuleNotFoundError: No module named ‘optimum’
解决办法:pip install optimum
3、报错信息:importlib.metadata.PackageNotFoundError: No package metadata was found for auto-gptq
解决办法:pip install auto-gptq
4、报错信息:torch.cuda.OutOfMemoryError: CUDA out of memory
解决办法:看你的显卡内存够不够

附:Qwen2-VL-7B-Instruct-GPTQ-Int4官方文档地址

### 使用 Qwen2-7B-Instruct-GPTQ-INT4 模型 #### 特点和应用场景 Qwen2-7B-Instruct-INT4 是阿里云推出的一个量化模型,拥有 70 亿个参数并经过指令微调,使其能更有效地理解与执行多种任务。此模型采用 GPTQ 方法进行了 INT4 的量化处理,在保持性能的同时显著降低了计算资源需求[^1]。 这种配置使得该模型特别适合于那些希望利用大型语言模型的强大功能而又受限于硬件条件的应用场景,比如小型服务器上的在线问答系统、移动设备端的文字辅助工具等。 #### 安装依赖库 为了能够在本地环境中顺利部署并使用上述提到的大规模多模态预训练模型——Qwen2-7B-Instruct-Int4,需按照如下命令依次安装所需的Python包: ```bash pip install opencv-python pip install uvicorn pip install fastapi pip install git+https://github.com/huggingface/transformers.git pip install qwen-vl-utils pip install torchvision pip install python-multipart pip install 'accelerate>=0.26.0' pip install optimum pip install auto-gptq ``` 注意:由于 `optimum` 库可能会覆盖之前已有的 `transformers` 版本,因此建议最后再单独更新一次 `transformers` 或者确保其版本是最新的稳定版[^2]。 如果遇到 CUDA 扩展未安装的问题,则可以通过指定特定版本来解决这个问题: ```bash pip install torch==2.2.1 pip install torchvision==0.17.1 pip install auto-gptq==0.7.1 ``` 这些操作可以有效避免因软件兼容性而导致的错误消息 "CUDA extension not installed."[^3]。 #### 推理过程示例 下面给出一段简单的 Python 脚本来展示如何加载已经准备好的 Qwen2-7B-Instruct-GPTQ-INT4 并进行基本的文本生成任务: ```python from transformers import AutoTokenizer, AutoModelForCausalLM import torch tokenizer = AutoTokenizer.from_pretrained("path_to_model") # 替换为实际路径 model = AutoModelForCausalLM.from_pretrained("path_to_model", device_map="auto") input_text = "你好" inputs = tokenizer(input_text, return_tensors='pt').to('cuda') with torch.no_grad(): outputs = model.generate(**inputs) print(tokenizer.decode(outputs[0], skip_special_tokens=True)) ``` 这段代码展示了从加载模型到输入提示词直至最终获得输出结果的一系列流程。需要注意的是,“path_to_model” 需要被替换为你所下载或克隆下来的 Qwen2-7B-Instruct-GPTQ-INT4 文件夹的具体位置。 对于更加详细的指导以及更多高级特性的介绍,推荐查阅 Hugging Face 上提供的官方文档或是 GitHub 项目页面内的 README.md 文件,那里包含了更为详尽的操作指南和技术细节说明。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值