commit 76d40f8f874787de4861e71cb5f9b0ed97305776 Author: ModelHub XC Date: Thu Oct 22 10:23:14 2026 +0800 初始化项目,由ModelHub XC社区提供模型 Model: RedHatAI/Qwen2.5-VL-3B-Instruct-FP8-Dynamic Source: Original Platform diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..52373fe --- /dev/null +++ b/.gitattributes @@ -0,0 +1,36 @@ +*.7z filter=lfs diff=lfs merge=lfs -text +*.arrow filter=lfs diff=lfs merge=lfs -text +*.bin filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.ckpt filter=lfs diff=lfs merge=lfs -text +*.ftz filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.h5 filter=lfs diff=lfs merge=lfs -text +*.joblib filter=lfs diff=lfs merge=lfs -text +*.lfs.* filter=lfs diff=lfs merge=lfs -text +*.mlmodel filter=lfs diff=lfs merge=lfs -text +*.model filter=lfs diff=lfs merge=lfs -text +*.msgpack filter=lfs diff=lfs merge=lfs -text +*.npy filter=lfs diff=lfs merge=lfs -text +*.npz filter=lfs diff=lfs merge=lfs -text +*.onnx filter=lfs diff=lfs merge=lfs -text +*.ot filter=lfs diff=lfs merge=lfs -text +*.parquet filter=lfs diff=lfs merge=lfs -text +*.pb filter=lfs diff=lfs merge=lfs -text +*.pickle filter=lfs diff=lfs merge=lfs -text +*.pkl filter=lfs diff=lfs merge=lfs -text +*.pt filter=lfs diff=lfs merge=lfs -text +*.pth filter=lfs diff=lfs merge=lfs -text +*.rar filter=lfs diff=lfs merge=lfs -text +*.safetensors filter=lfs diff=lfs merge=lfs -text +saved_model/**/* filter=lfs diff=lfs merge=lfs -text +*.tar.* filter=lfs diff=lfs merge=lfs -text +*.tar filter=lfs diff=lfs merge=lfs -text +*.tflite filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.wasm filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text +*tfevents* filter=lfs diff=lfs merge=lfs -text +tokenizer.json filter=lfs diff=lfs merge=lfs -text diff --git a/README.md b/README.md new file mode 100644 index 0000000..76ea0d6 --- /dev/null +++ b/README.md @@ -0,0 +1,503 @@ +--- +tags: +- vllm +- vision +- fp8 +license: apache-2.0 +license_link: >- + https://huggingface.co/datasets/choosealicense/licenses/blob/main/markdown/apache-2.0.md +language: +- en +base_model: Qwen/Qwen2.5-VL-3B-Instruct +library_name: transformers +--- + +# Qwen2.5-VL-3B-Instruct-FP8-Dynamic + +## Model Overview +- **Model Architecture:** Qwen2.5-VL-3B-Instruct + - **Input:** Vision-Text + - **Output:** Text +- **Model Optimizations:** + - **Weight quantization:** FP8 + - **Activation quantization:** FP8 +- **Release Date:** 2/24/2025 +- **Version:** 1.0 +- **Model Developers:** Neural Magic + +Quantized version of [Qwen/Qwen2.5-VL-3B-Instruct](https://huggingface.co/Qwen/Qwen2.5-VL-3B-Instruct). + +### Model Optimizations + +This model was obtained by quantizing the weights of [Qwen/Qwen2.5-VL-3B-Instruct](https://huggingface.co/Qwen/Qwen2.5-VL-3B-Instruct) to FP8 data type, ready for inference with vLLM >= 0.5.2. + +## Deployment + +### Use with vLLM + +This model can be deployed efficiently using the [vLLM](https://docs.vllm.ai/en/latest/) backend, as shown in the example below. + +```python +from vllm.assets.image import ImageAsset +from vllm import LLM, SamplingParams + +# prepare model +llm = LLM( + model="neuralmagic/Qwen2.5-VL-3B-Instruct-FP8-Dynamic", + trust_remote_code=True, + max_model_len=4096, + max_num_seqs=2, +) + +# prepare inputs +question = "What is the content of this image?" +inputs = { + "prompt": f"<|user|>\n<|image_1|>\n{question}<|end|>\n<|assistant|>\n", + "multi_modal_data": { + "image": ImageAsset("cherry_blossom").pil_image.convert("RGB") + }, +} + +# generate response +print("========== SAMPLE GENERATION ==============") +outputs = llm.generate(inputs, SamplingParams(temperature=0.2, max_tokens=64)) +print(f"PROMPT : {outputs[0].prompt}") +print(f"RESPONSE: {outputs[0].outputs[0].text}") +print("==========================================") +``` + +vLLM also supports OpenAI-compatible serving. See the [documentation](https://docs.vllm.ai/en/latest/) for more details. + +## Creation + +This model was created with [llm-compressor](https://github.com/vllm-project/llm-compressor) by running the code snippet below as part a multimodal announcement blog. + +
+ Model Creation Code + +```python +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 + +# Load model. +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 +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" + +# Perform oneshot +oneshot( + model=model, + recipe=recipe, + trust_remote_code_model=True, + output_dir=SAVE_DIR +) + + +``` +
+ +## Evaluation + +The model was evaluated using [mistral-evals](https://github.com/neuralmagic/mistral-evals) for vision-related tasks and using [lm_evaluation_harness](https://github.com/neuralmagic/lm-evaluation-harness) for select text-based benchmarks. The evaluations were conducted using the following commands: + +
+Evaluation Commands + +### Vision Tasks +- 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 +``` + +### Text-based Tasks +#### MMLU + +``` +lm_eval \ + --model vllm \ + --model_args pretrained="",dtype=auto,add_bos_token=True,max_model_len=4096,tensor_parallel_size=,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="",dtype=auto,max_model_len=4096,max_gen_toks=2048,max_num_seqs=128,tensor_parallel_size=,gpu_memory_utilization=0.9 \ + --tasks mgsm_cot_native \ + --apply_chat_template \ + --num_fewshot 0 \ + --batch_size auto \ + --output_path output_dir + +``` +
+ + +### Accuracy + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CategoryMetricQwen/Qwen2.5-VL-3B-Instructnm-testing/Qwen2.5-VL-3B-Instruct-FP8-DynamicRecovery (%)
VisionMMMU (val, CoT)
explicit_prompt_relaxed_correctness
44.5645.78102.74%
VQAv2 (val)
vqa_match
75.9476.22100.37%
DocVQA (val)
anls
92.5392.4099.86%
ChartQA (test, CoT)
anywhere_in_answer_relaxed_correctness
81.2080.7299.41%
Mathvista (testmini, CoT)
explicit_prompt_relaxed_correctness
54.1553.2598.34%
Average Score69.2869.67100.56%
TextMGSM (CoT)43.6943.1498.74%
MMLU (5-shot)65.3265.0399.56%
+ + +## Inference Performance + + +This model achieves up to 1.10x speedup in single-stream deployment and up to 1.32x speedup in multi-stream asynchronous deployment, depending on hardware and use-case scenario. +The following performance benchmarks were conducted with [vLLM](https://docs.vllm.ai/en/latest/) version 0.7.2, and [GuideLLM](https://github.com/neuralmagic/guidellm). + +
+Benchmarking Command +``` + guidellm --model neuralmagic/Qwen2.5-VL-3B-Instruct-FP8-Dynamic --target "http://localhost:8000/v1" --data-type emulated --data prompt_tokens=,generated_tokens=,images=,width=,height= --max seconds 120 --backend aiohttp_server +``` + +
+ +### Single-stream performance (measured with vLLM version 0.7.2) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Document Visual Question Answering
1680W x 2240H
64/128
Visual Reasoning
640W x 480H
128/128
Image Captioning
480W x 360H
0/128
HardwareModelAverage Cost ReductionLatency (s)Queries Per DollarLatency (s) + Queries Per DollarLatency (s)Queries Per Dollar
A6000x1Qwen/Qwen2.5-VL-3B-Instruct3.114541.825461.72610
neuralmagic/Qwen2.5-VL-3B-Instruct-quantized.w8a81.272.617081.333401.33459
neuralmagic/Qwen2.5-VL-3B-Instruct-quantized.w4a161.572.418861.044091.04409
A100x1Qwen/Qwen2.5-VL-3B-Instruct2.29201.316031.21636
neuralmagic/Qwen2.5-VL-3B-Instruct-quantized.w8a81.092.19751.217431.11814
neuralmagic/Qwen2.5-VL-3B-Instruct-quantized.w4a161.202.010111.020151.02012
H100x1Qwen/Qwen2.5-VL-3B-Instruct1.57400.912210.91276
neuralmagic/Qwen2.5-VL-3B-Instruct-FP8-Dynamic1.061.47680.912760.81399
neuralmagic/Qwen2.5-VL-3B-Instruct-quantized.w4a161.240.912190.912700.81304
+ +**Use case profiles: Image Size (WxH) / prompt tokens / generation tokens + +**QPD: Queries per dollar, based on on-demand cost at [Lambda Labs](https://lambdalabs.com/service/gpu-cloud) (observed on 2/18/2025). + +### Multi-stream asynchronous performance (measured with vLLM version 0.7.2) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Document Visual Question Answering
1680W x 2240H
64/128
Visual Reasoning
640W x 480H
128/128
Image Captioning
480W x 360H
0/128
HardwareModelAverage Cost ReductionMaximum throughput (QPS)Queries Per DollarvMaximum throughput (QPS)Queries Per DollarMaximum throughput (QPS)Queries Per Dollar
A6000x1Qwen/Qwen2.5-VL-3B-Instruct0.524052.6118892.912909
neuralmagic/Qwen2.5-VL-3B-Instruct-quantized.w8a81.260.627253.4151623.917673
neuralmagic/Qwen2.5-VL-3B-Instruct-quantized.w4a161.390.625483.9174374.721223
A100x1Qwen/Qwen2.5-VL-3B-Instruct0.816633.978994.48924
neuralmagic/Qwen2.5-VL-3B-Instruct-quantized.w8a81.060.917344.284884.79548
neuralmagic/Qwen2.5-VL-3B-Instruct-quantized.w4a161.100.917754.285405.110318
H100x1Qwen/Qwen2.5-VL-3B-Instruct1.111884.346564.34676
neuralmagic/Qwen2.5-VL-3B-Instruct-FP8-Dynamic1.151.415704.346764.85220
neuralmagic/Qwen2.5-VL-3B-Instruct-quantized.w4a161.964.245984.145054.44838
+ +**Use case profiles: Image Size (WxH) / prompt tokens / generation tokens + +**QPS: Queries per second. + +**QPD: Queries per dollar, based on on-demand cost at [Lambda Labs](https://lambdalabs.com/service/gpu-cloud) (observed on 2/18/2025). \ No newline at end of file diff --git a/added_tokens.json b/added_tokens.json new file mode 100644 index 0000000..482ced4 --- /dev/null +++ b/added_tokens.json @@ -0,0 +1,24 @@ +{ + "": 151658, + "": 151657, + "<|box_end|>": 151649, + "<|box_start|>": 151648, + "<|endoftext|>": 151643, + "<|file_sep|>": 151664, + "<|fim_middle|>": 151660, + "<|fim_pad|>": 151662, + "<|fim_prefix|>": 151659, + "<|fim_suffix|>": 151661, + "<|im_end|>": 151645, + "<|im_start|>": 151644, + "<|image_pad|>": 151655, + "<|object_ref_end|>": 151647, + "<|object_ref_start|>": 151646, + "<|quad_end|>": 151651, + "<|quad_start|>": 151650, + "<|repo_name|>": 151663, + "<|video_pad|>": 151656, + "<|vision_end|>": 151653, + "<|vision_pad|>": 151654, + "<|vision_start|>": 151652 +} diff --git a/chat_template.json b/chat_template.json new file mode 100644 index 0000000..544d96d --- /dev/null +++ b/chat_template.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:94174d7176c52a7192f96fc34eb2cf23c7c2059d63cdbfadca1586ba89731fb7 +size 1049 diff --git a/config.json b/config.json new file mode 100644 index 0000000..201eea8 --- /dev/null +++ b/config.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7e997555a6cd82af3ff707f8057ea62d4fa3b7f8a293c63f1072f42cfce2bc22 +size 8344 diff --git a/configuration.json b/configuration.json new file mode 100644 index 0000000..273dbe0 --- /dev/null +++ b/configuration.json @@ -0,0 +1 @@ +{"framework": "pytorch", "task": "image-to-text", "allow_remote": true} \ No newline at end of file diff --git a/generation_config.json b/generation_config.json new file mode 100644 index 0000000..e70c840 --- /dev/null +++ b/generation_config.json @@ -0,0 +1,14 @@ +{ + "bos_token_id": 151643, + "do_sample": true, + "eos_token_id": [ + 151645, + 151643 + ], + "pad_token_id": 151643, + "repetition_penalty": 1.05, + "temperature": 0.1, + "top_k": 1, + "top_p": 0.001, + "transformers_version": "4.49.0.dev0" +} diff --git a/merges.txt b/merges.txt new file mode 100644 index 0000000..80c1a19 --- /dev/null +++ b/merges.txt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8831e4f1a044471340f7c0a83d7bd71306a5b867e95fd870f74d0c5308a904d5 +size 1671853 diff --git a/model-00001-of-00002.safetensors b/model-00001-of-00002.safetensors new file mode 100644 index 0000000..c6d70fc --- /dev/null +++ b/model-00001-of-00002.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d498f08b42d64e9bcedb2e2a3b5ce2e1d523fc0dfae56c72c6c8d60cd5c07706 +size 4736900104 diff --git a/model-00002-of-00002.safetensors b/model-00002-of-00002.safetensors new file mode 100644 index 0000000..4331f10 --- /dev/null +++ b/model-00002-of-00002.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f939d272ee1b8b2b48b26ee2f8aca7b320f91d442323b5548c53efe900ec0d18 +size 622329984 diff --git a/model.safetensors.index.json b/model.safetensors.index.json new file mode 100644 index 0000000..ec5b6fe --- /dev/null +++ b/model.safetensors.index.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bdf73c2a8f80a7527108d1f8368000f13fff9e89918ae94e3ee80340e93a6b56 +size 87468 diff --git a/preprocessor_config.json b/preprocessor_config.json new file mode 100644 index 0000000..ee08cdd --- /dev/null +++ b/preprocessor_config.json @@ -0,0 +1,29 @@ +{ + "do_convert_rgb": true, + "do_normalize": true, + "do_rescale": true, + "do_resize": true, + "image_mean": [ + 0.48145466, + 0.4578275, + 0.40821073 + ], + "image_processor_type": "Qwen2VLImageProcessor", + "image_std": [ + 0.26862954, + 0.26130258, + 0.27577711 + ], + "max_pixels": 12845056, + "merge_size": 2, + "min_pixels": 3136, + "patch_size": 14, + "processor_class": "Qwen2_5_VLProcessor", + "resample": 3, + "rescale_factor": 0.00392156862745098, + "size": { + "longest_edge": 12845056, + "shortest_edge": 3136 + }, + "temporal_patch_size": 2 +} diff --git a/recipe.yaml b/recipe.yaml new file mode 100644 index 0000000..612675f --- /dev/null +++ b/recipe.yaml @@ -0,0 +1,6 @@ +DEFAULT_stage: + DEFAULT_modifiers: + QuantizationModifier: + ignore: ['re:.*lm_head', 're:visual.*'] + targets: [Linear] + scheme: FP8_DYNAMIC diff --git a/special_tokens_map.json b/special_tokens_map.json new file mode 100644 index 0000000..ac23c0a --- /dev/null +++ b/special_tokens_map.json @@ -0,0 +1,31 @@ +{ + "additional_special_tokens": [ + "<|im_start|>", + "<|im_end|>", + "<|object_ref_start|>", + "<|object_ref_end|>", + "<|box_start|>", + "<|box_end|>", + "<|quad_start|>", + "<|quad_end|>", + "<|vision_start|>", + "<|vision_end|>", + "<|vision_pad|>", + "<|image_pad|>", + "<|video_pad|>" + ], + "eos_token": { + "content": "<|im_end|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false + }, + "pad_token": { + "content": "<|endoftext|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false + } +} diff --git a/tokenizer.json b/tokenizer.json new file mode 100644 index 0000000..51ebb3b --- /dev/null +++ b/tokenizer.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9c5ae00e602b8860cbd784ba82a8aa14e8feecec692e7076590d014d7b7fdafa +size 11421896 diff --git a/tokenizer_config.json b/tokenizer_config.json new file mode 100644 index 0000000..bb4ec6b --- /dev/null +++ b/tokenizer_config.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c182cc5f590489eba7c5435864b0814fcd9256ef72933f8ccc142116974dbb01 +size 7300 diff --git a/vocab.json b/vocab.json new file mode 100644 index 0000000..6c49fc6 --- /dev/null +++ b/vocab.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ca10d7e9fb3ed18575dd1e277a2579c16d108e32f27439684afa0e10b1440910 +size 2776833