【vllm】Qwen2.5-VL-72B-AWQ 部署记录

版本:0.7.2
注意事项:

export LD_LIBRARY_PATH=/home/xxxxx/anaconda3/envs/xxxxx/lib/python3.10/site-packages/nvidia/nvjitlink/lib:$LD_LIBRARY_PATH # 如果报错可能需要

Also pip install --force-reinstall git+https://github.com/huggingface/transformers.git@9985d06add07a4cc691dc54a7e34f54205c04d40  # 需要安装特定版本的transformer

服务端

PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True python -m vllm.entrypoints.openai.api_server \
  --model hf_models/Qwen/Qwen2.5-VL-72B-Instruct-AWQ \
  --tensor-parallel-size 4 \
  --gpu-memory-utilization 0.8 \
  --max-model-len 8192 \
  --quantization awq \
  --dtype float16 \
  --enforce-eager \
  --trust-remote-code \
  --host 0.0.0.0 \
  --port 8678 \
--api-key olllllama

客户端


import base64
from openai import OpenAI

use_vision = True 

if use_vision:
    # 读取图片文件并转换为base64
    with open("./vision_test_50x50_enlarged.png", "rb") as image_file:
        base64_image = base64.b64encode(image_file.read()).decode('utf-8')
    
    messages = [
        {
            "role": "user",
            "content": [
                {
                    "type": "text",
                    "text": "这图片里面有什么?"
                },
                {
                    "type": "image_url",
                    "image_url": {"url": f"data:image/png;base64,{base64_image}"}
                }
            ]
        }
    ]
else:
    messages = [
        {"role": "user", "content": "你是谁"}
    ]


client = OpenAI(
    base_url="http://localhost:8678/v1",
    api_key="olllllama",
)

completion = client.chat.completions.create(
  model="hf_models/Qwen/Qwen2.5-VL-72B-Instruct-AWQ",
  messages=messages
)

print('='*40)
print(completion.choices[0].message.content)
print('='*40)
print(completion.choices[0].message)
print('='*40)

输出

========================================
这张图片展示了一个简单的图形设计。图片的背景是白色的,中间有一条黑色的十字线,将图片分成四个相等的部分。在每个部分的中心位置,分别有一个不同颜色的小正方形:

- 左上角是一个红色的正方形。
- 右上角是一个绿色的正方形。
- 左下角是一个蓝色的正方形。
- 右下角是一个灰色的正方形。

这些正方形看起来是对称放置的,整个设计简洁明了。
========================================
ChatCompletionMessage(content='这张图片展示了一个简单的图形设计。图片的背景是白色的,中间有一条黑色的十字线,将图片分成四个相等的部分。在每个部分的中心位置,分别有一个不同颜色的小正方形:\n\n- 左上角是一个红色的正方形。\n- 右上角是一个绿色的正方形。\n- 左下角是一个蓝色的正方形。\n- 右下角是一个灰色的正方形。\n\n这些正方形看起来是对称放置的,整个设计简洁明了。', refusal=None, role='assistant', audio=None, function_call=None, tool_calls=[], reasoning_content=None)
========================================
### Qwen2.5-VL-72B-AWQ 模型参数和特性 #### 模型规模与架构特点 Qwen2.5-VL-72B-AWQ 是一款大规模多模态预训练模型,具有720亿个参数。该模型基于Transformer架构构建,在图像理解和生成方面表现出卓越的能力。通过动态分辨率适配和窗口注意力机制的应用,使得这一大型模型能够在资源有限的情况下依然保持高效的性能表现[^2]。 #### 显著技术改进 为了提高计算效率并减少内存消耗,此版本引入了多项技术创新: - **动态分辨率调整**:根据不同输入自动匹配最合适的处理精度,从而优化整体运算流程。 - **窗口化自注意层设计**:采用局部感知区域的方式代替传统全局范围内的特征交互方法,进一步降低了复杂度的同时增强了空间位置敏感性。 这些改动不仅让72B参数级别的超大体量得以顺利运行于单一GPU之上,而且相比前代产品实现了至少30%以上的推理加速效果。 #### AWQ量化方案优势 AWQ(Adaptive Weight Quantization)是一种先进的权重压缩算法,它允许神经网络以较低位宽表示而不会明显损失准确性。对于Qwen2.5-VL-72B而言,应用AWQ可以大幅削减存储需求以及跨设备传输所需带宽,特别适合边缘端部署场景下的轻量化改造需求[^1]。 ```python import torch from transformers import AutoModelForVision2Seq, AutoProcessor model_name = "qwen/Qwen2.5-VL-72B-AWQ" processor = AutoProcessor.from_pretrained(model_name) model = AutoModelForVision2Seq.from_pretrained(model_name) image_path = "./example_image.png" text_input = "What does this image contain?" inputs = processor(image=image_path, text=text_input, return_tensors="pt") with torch.no_grad(): outputs = model.generate(**inputs) result = processor.decode(outputs[0], skip_special_tokens=True) print(result) ```
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值