门户网站属于新媒体吗查询网站流量的网址
vllm 部署 Qwen2.5-VL-7B-Instruct-AWQ
( 基于 docker )
作者项目不允许部署 Qwen2.5-VL-7B-Instruct 非量化版,因为作者目前是 4090 48G 魔改过的,
上面已经跑了一个ollama程序,导致显存只剩下了20G不到,
如果是 24 G 内存,可以跑 Qwen2.5-VL-7B-Instruct 非量化版,操作一样
目前作者环境如下:
驱动 | CUDA | 显卡型号 | 显卡块数 |
---|---|---|---|
560.35.03 | 12.6.1 | 4090 48G | 8 |
下载模型
modelscope download --model Qwen/Qwen2.5-VL-7B-Instruct-AWQ --local_dir /data/qwen2.5/Qwen2.5-VL-7B-Instruct-AWQ
开始配置
docker 配置
vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://docker.cloudmessage.top","https://kfp63jaj.mirror.aliyuncs.com","https://j47dskil.mirror.aliyuncs.com"],
"ipv6": false,
"max-concurrent-downloads": 10,
"log-driver": "json-file",
"log-level": "warn",
"log-opts": {
"max-size": "10m",
"max-file": "3"},"runtimes": {"nvidia": {"path": "/usr/bin/nvidia-container-runtime","runtimeArgs": []}},
"default-runtime": "nvidia",
"data-root": "/data/docker"
}
docker 安装 vllm
###镜像比较大16G多,还是先拉下来再运行
docker pull vllm/vllm-openai:latest
运行 程序
docker run --runtime nvidia --gpus "device=0" --name vllm-qwen2.5-vl-7b_AWQ \
-v /data/qwen2.5:/data/qwen2.5 \
-v /data/vllm_cache:/root/.cache/vllm \
-p 8110:8000 \
-e CUDA_VISIBLE_DEVICES=0 \
-d vllm/vllm-openai:latest \
--model /data/qwen2.5/Qwen2.5-VL-7B-Instruct-AWQ \
--dtype float16 \
--block-size 16 \
--use-v2-block-manager \
--max-num-batched-tokens 8192 \
--max-num-seqs 32--gpus "device=0" # 指定显卡,0是第一块,1是第二块
--name vllm-qwen2.5-vl-7b_AWQ \ # docker 容器名称
-v /data/qwen2.5:/data/qwen2.5 \ # 模型存放目录
-v /data/vllm_cache:/root/.cache/vllm \ # vllm 目录
-p 8110:8000 \ # 映射端口
-e CUDA_VISIBLE_DEVICES=0 \ #强制容器仅使用 GPU 设备 0,因为容器中只能看到一块显卡
-d vllm/vllm-openai:latest \ # 指定镜像
--model /data/qwen2.5/Qwen2.5-VL-7B-Instruct-AWQ \ # 指定模型
--dtype float16 \ # 混合精度推理
--block-size 16 \ # KV缓存块大小
--use-v2-block-manager \ # 新版显存管理器
--max-num-batched-tokens 8192 \ # 最大批处理tokens(4096-16384)
--max-num-seqs 32 最大并发请求数
测试程序
# 创建虚拟环境
conda create -n qwenvl python=3.11 -y
conda activate qwenvl
vim vllm_ocr.py
import base64
import time # 导入time模块
from openai import OpenAIdef encode_image(image_path):with open(image_path, "rb") as image_file:return base64.b64encode(image_file.read()).decode('utf-8')# 初始化 OpenAI 客户端
client = OpenAI(base_url="http://192.168.3.164:8110/v1",api_key="NOT_NEED"
)# 本地图片路径
image_path = "1744184033544.jpg"# 编码图片
base64_image = encode_image(image_path)# 记录开始时间
start_time = time.time()response = client.chat.completions.create(model="/data/qwen2.5/Qwen2.5-VL-7B-Instruct-AWQ",# 仔细分析图片中的内容后,请以HTML结构化(含所有非表格文字)完整输出。\n注意:不需要 <style>标签messages=[{"role": "user","content": [{"type": "text", "text": "完整输出图中所有相关文字"},{"type": "image_url","image_url": {"url": f"data:image/jpeg;base64,{base64_image}",},},],}],max_tokens=4096,
)# 计算耗时
elapsed_time = time.time() - start_timeprint(response.choices[0])
print(f"\n请求耗时: {elapsed_time:.2f}秒") # 打印耗时,保留两位小数
python vllm_ocr.py
docker ps -a
docker logs -f vllm-qwen2.5-vl-7b_AWQ
1744184033544.jpg 图片内容如下