Views
No views yet

| Category | Benchmark | Metric | Skywork-38B | QVQ-72B | InternVL-78B | QwenVL-72B | Claude 3.7 | GPT-4o |
|---|---|---|---|---|---|---|---|---|
| General | MMMU (val) | Acc. | 🏆 76.0 | 70.3 | 72.2 | 70.3 | 75.0 | 70.7 |
| EMMA (mini-cot) | Acc. | 40.3 | 32.0 | 38.3 | 39.3 | 56.5 | 36.0 | |
| MMMU-pro | Acc. | 🏆 55.4 | 46.9* | 48.6 | 51.1 | 50.0 | 54.5 | |
| MMK12 | Acc. | 🏆 78.5 | 62.7* | 67.4* | 70.5* | 55.3 | 49.9 | |
| MMstar | Acc. | 70.6 | 60.8 | 72.5 | 70.8 | 68.8 | 65.1 | |
| MMBench-en-1.1 | Acc. | 85.7 | 72.6* | 87.7 | 88.0 | 82.0 | 84.3 | |
| HallusionBench | Acc. | 🏆 61.3 | 55.3* | 59.1 | 55.2 | 58.3 | 56.2 | |
| Mathematics | MathVista (mini) | Acc. | 🏆 77.1 | 71.4 | 72.2 | 74.8 | 66.8 | 62.9 |
| MathVerse (vision-only) | Acc. | 🏆 59.6 | 45.1 | 51.0 | 57.6 | 49.9* | 49.9 | |
| MathVision | Acc. | 52.6 | 35.9 | 43.1 | 38.1 | 58.6 | 31.2 | |
| WeMath (strict) | Acc. | 🏆 56.5 | 37.7 | 46.1 | 50.6 | 48.9* | 50.6 | |
| Logic | Visulogic | Acc. | 🏆 28.5 | 23.5* | 27.7 | 26.2 | 25.9 | 26.3 |
| LogicVista | Acc. | 59.7 | 53.8 | 55.9 | 57.1 | 60.6* | 64.4 | |
| MME-reasoning | Acc. | 🏆 42.8 | 35.2 | 32.1 | 34.1 | 34.1 | 30.2 | |
| Physics | PhyX (mc-text-minimal) | Acc. | 🏆 52.8 | 35.2* | 40.5 | 44.8 | 41.6 | 43.8 |
| SeePhys | Acc. | 31.5 | 22.5 | 19.0* | 24.2 | 34.6 | 21.9 |
1import torch
2from transformers import AutoModel, AutoTokenizer
3from utils import load_image, split_model
4import argparse
5
6def main():
7 parser = argparse.ArgumentParser(description="Run inference with Skywork-R1V model.")
8 parser.add_argument('--model_path', type=str, default='Skywork/Skywork-R1V3-38B', help="Path to the model.")
9 parser.add_argument('--image_paths', type=str, nargs='+', required=True, help="Path(s) to the image(s).")
10 parser.add_argument('--question', type=str, required=True, help="Question to ask the model.")
11 args = parser.parse_args()
12
13 device_map = split_model(args.model_path)
14 model = AutoModel.from_pretrained(
15 args.model_path,
16 torch_dtype=torch.bfloat16,
17 load_in_8bit=False,
18 low_cpu_mem_usage=True,
19 use_flash_attn=True,
20 trust_remote_code=True,
21 device_map=device_map
22 ).eval()
23 tokenizer = AutoTokenizer.from_pretrained(args.model_path, trust_remote_code=True, use_fast=False)
24
25 pixel_values = [load_image(img_path, max_num=12).to(torch.bfloat16).cuda() for img_path in args.image_paths]
26 if len(pixel_values) > 1:
27 num_patches_list = [img.size(0) for img in pixel_values]
28 pixel_values = torch.cat(pixel_values, dim=0)
29 else:
30 pixel_values = pixel_values[0]
31 num_patches_list = None
32
33 prompt = "<image>
34"*len(args.image_paths) + args.question
35 generation_config = dict(max_new_tokens=64000, do_sample=True, temperature=0.6, top_p=0.95, repetition_penalty=1.05)
36 response = model.chat(tokenizer, pixel_values, prompt, generation_config, num_patches_list=num_patches_list)
37
38 print(f'User: {args.question}
39Assistant: {response}')
40
41if __name__ == '__main__':
42 main()
431python -m vllm.entrypoints.openai.api_server --model $MODEL_PATH --max_model_len 32768 --limit-mm-per-prompt "image=20" --tensor-parallel-size $N_GPU --dtype auto --trust-remote-code
2@misc{shen2025skyworkr1v3technicalreport,
title={Skywork-R1V3 Technical Report},
author={Wei Shen and Jiangbo Pei and Yi Peng and Xuchen Song and Yang Liu and Jian Peng and Haofeng Sun and Yunzhuo Hao and Peiyu Wang and Jianhao Zhang and Yahui Zhou},
year={2025},
eprint={2507.06167},
archivePrefix={arXiv},
primaryClass={cs.CL},
url={https://arxiv.org/abs/2507.06167},
}