Qwen2.5-VL-3B-Instruct的FP8量化版本,支持视觉-文本输入和文本输出,优化了推理效率。
下载量 112
发布时间 : 2/6/2025
模型介绍
内容详情
替代品
模型简介
该模型是基于Qwen2.5-VL-3B-Instruct的量化版本,通过FP8权重量化和激活量化优化,支持使用vLLM进行高效推理。适用于多模态理解和生成任务。
模型特点
FP8量化
权重量化和激活量化均为FP8,显著提升推理效率。
多模态支持
支持视觉-文本输入和文本输出,适用于复杂的多模态任务。
高效推理
优化后支持使用vLLM进行高效部署,提升推理速度。
模型能力
视觉问答
图像描述生成
多模态推理
文档理解
图表分析
使用案例
教育
教育内容理解
解析教育材料中的图像和文本内容,辅助学习。
在MMMU验证集上达到45.78%的准确率。
商业
文档分析
自动解析商业文档中的图像和文本信息。
在DocVQA验证集上达到92.40%的ANLS分数。
研究
科学图表理解
解析科学论文中的图表和数据。
在ChartQA测试集上达到80.72%的宽松正确率。
标签:
- vllm
- 视觉
- fp8 许可证: apache-2.0 许可证链接: >- https://huggingface.co/datasets/choosealicense/licenses/blob/main/markdown/apache-2.0.md 语言:
- 英文 基础模型: Qwen/Qwen2.5-VL-3B-Instruct 库名称: transformers
Qwen2.5-VL-3B-Instruct-FP8-Dynamic
模型概述
- 模型架构: Qwen2.5-VL-3B-Instruct
- 输入: 视觉-文本
- 输出: 文本
- 模型优化:
- 权重量化: FP8
- 激活量化: FP8
- 发布日期: 2025年2月24日
- 版本: 1.0
- 模型开发者: Neural Magic
Qwen/Qwen2.5-VL-3B-Instruct的量化版本。
模型优化
该模型通过将Qwen/Qwen2.5-VL-3B-Instruct的权重量化为FP8数据类型获得,支持使用vLLM >= 0.5.2进行推理。
部署
使用vLLM
该模型可以使用vLLM后端高效部署,如下例所示。
from vllm.assets.image import ImageAsset
from vllm import LLM, SamplingParams
# 准备模型
llm = LLM(
model="neuralmagic/Qwen2.5-VL-3B-Instruct-FP8-Dynamic",
trust_remote_code=True,
max_model_len=4096,
max_num_seqs=2,
)
# 准备输入
question = "这张图片的内容是什么?"
inputs = {
"prompt": f"<|user|>\n<|image_1|>\n{question}<|end|>\n<|assistant|>\n",
"multi_modal_data": {
"image": ImageAsset("cherry_blossom").pil_image.convert("RGB")
},
}
# 生成响应
print("========== 示例生成 ==============")
outputs = llm.generate(inputs, SamplingParams(temperature=0.2, max_tokens=64))
print(f"提示 : {outputs[0].prompt}")
print(f"响应: {outputs[0].outputs[0].text}")
print("==================================")
vLLM还支持与OpenAI兼容的服务。更多详情请参阅文档。
创建
该模型是通过llm-compressor创建的,作为多模态公告博客的一部分运行以下代码片段。
模型创建代码
import requests
import torch
from PIL import Image
from transformers import AutoProcessor
from llmcompressor.transformers import oneshot
from llmcompressor.transformers.tracing import (
TraceableQwen2_5_VLForConditionalGeneration,
)
from llmcompressor.modifiers.quantization import QuantizationModifier
# 加载模型
model_id = Qwen/Qwen2.5-VL-3B-Instruct
model = TraceableQwen2_5_VLForConditionalGeneration.from_pretrained(
model_id, device_map="auto", torch_dtype="auto"
)
processor = AutoProcessor.from_pretrained(model_id, trust_remote_code=True)
# 配方
recipe = [
QuantizationModifier(
targets="Linear",
scheme="FP8_DYNAMIC",
sequential_targets=["MistralDecoderLayer"],
ignore=["re:.*lm_head", "re:vision_tower.*", "re:multi_modal_projector.*"],
),
]
SAVE_DIR=f"{model_id.split('/')[1]}-FP8-Dynamic"
# 执行一次性量化
oneshot(
model=model,
recipe=recipe,
trust_remote_code_model=True,
output_dir=SAVE_DIR
)
评估
该模型使用mistral-evals进行视觉相关任务的评估,并使用lm_evaluation_harness进行部分基于文本的基准测试。评估通过以下命令进行:
评估命令
视觉任务
- vqav2
- docvqa
- mathvista
- mmmu
- chartqa
vllm serve neuralmagic/pixtral-12b-quantized.w8a8 --tensor_parallel_size 1 --max_model_len 25000 --trust_remote_code --max_num_seqs 8 --gpu_memory_utilization 0.9 --dtype float16 --limit_mm_per_prompt image=7
python -m eval.run eval_vllm \
--model_name neuralmagic/pixtral-12b-quantized.w8a8 \
--url http://0.0.0.0:8000 \
--output_dir ~/tmp \
--eval_name <vision_task_name>
基于文本的任务
MMLU
lm_eval \
--model vllm \
--model_args pretrained="<model_name>",dtype=auto,add_bos_token=True,max_model_len=4096,tensor_parallel_size=<n>,gpu_memory_utilization=0.8,enable_chunked_prefill=True,trust_remote_code=True \
--tasks mmlu \
--num_fewshot 5 \
--batch_size auto \
--output_path output_dir
MGSM
lm_eval \
--model vllm \
--model_args pretrained="<model_name>",dtype=auto,max_model_len=4096,max_gen_toks=2048,max_num_seqs=128,tensor_parallel_size=<n>,gpu_memory_utilization=0.9 \
--tasks mgsm_cot_native \
--apply_chat_template \
--num_fewshot 0 \
--batch_size auto \
--output_path output_dir
准确率
类别 | 指标 | Qwen/Qwen2.5-VL-3B-Instruct | nm-testing/Qwen2.5-VL-3B-Instruct-FP8-Dynamic | 恢复率 (%) |
---|---|---|---|---|
视觉 | MMMU (验证, CoT) 显式提示宽松正确性 |
44.56 | 45.78 | 102.74% |
VQAv2 (验证) vqa匹配 |
75.94 | 76.22 | 100.37% | |
DocVQA (验证) anls |
92.53 | 92.40 | 99.86% | |
ChartQA (测试, CoT) 答案中任意位置宽松正确性 |
81.20 | 80.72 | 99.41% | |
Mathvista (测试mini, CoT) 显式提示宽松正确性 |
54.15 | 53.25 | 98.34% | |
平均分数 | 69.28 | 69.67 | 100.56% | |
文本 | MGSM (CoT) | 43.69 | 43.14 | 98.74% |
MMLU (5-shot) | 65.32 | 65.03 | 99.56% |
推理性能
该模型在单流部署中实现了高达1.10倍的加速,在多流异步部署中实现了高达1.32倍的加速,具体取决于硬件和使用场景。 以下性能基准测试使用vLLM版本0.7.2和GuideLLM进行。