Views
No views yet

| Benchmark | Dimple-7B (ours) | LLaVA-1.5-7B | LLaVA-NEXT-7B | Eagle-7B | Eagle2-9B | Qwen-VL-7B | Qwen2.5-VL-7B |
|---|---|---|---|---|---|---|---|
| Training Samples | 1.3M | 1.2M | 1.3M | 2.4M | 27.8M | 1.5B | - |
| Training Tokens | 0.8B | - | - | - | - | - | 2.6T |
| Base LLM | Dream (Qwen2.5) | Vicuna | Vicuna-1.5 | Vicuna | Qwen2.5 | Qwen | Qwen2.5 |
| GQA | 59.2 | 62.0 | 64.8 | 64.9 | - | 59.3 | - |
| MMBench (en test) | 74.6 | 64.3 | 68.7 | 68.4 | - | - | 83.5 |
| MME (Perception) | 1514 | 1510 | 1519 | 1528 | - | - | - |
| MME (Cognition) | 432 | - | 332 | - | - | - | - |
| MME (Total) | 1946 | - | 1851 | - | - | - | 2347 |
| POPE | 86.2 | 85.8 | 86.7 | 88.8 | - | - | - |
| MMMU (val) | 45.2 | - | 35.8 | 36.3 | 56.1 | - | 58.6 |
| SQA (img) | 77.1 | 66.8 | 72.8 | 70.0 | - | - | - |
| AI2D | 74.4 | - | 65.4 | - | 83.9 | 62.3 | 83.9 |
| ChartQA | 63.4 | - | 54.9 | 67.7 | 86.4 | 65.7 | 87.3 |
| TextVQA | 61.6 | - | 64.8 | - | 83.0 | - | - |
| OCRBench | 565 | - | 490 | 529 | - | - | - |
| MathVista (mini) | 42.3 | - | 33.0 | - | 63.8 | 37.0 | 68.2 |
| MMVet | 41.2 | 31.1 | 47.3 | - | 62.2 | - | 67.1 |
1transformers==4.46.2
2torch==2.5.1
3accelerate==1.6.01import torch
2from transformers import AutoProcessor, AutoModel
3import json, requests
4from PIL import Image
5
6model_name = "rp-yu/Dimple-7B"
7processor = AutoProcessor.from_pretrained(
8 model_name,
9 trust_remote_code=True
10)
11model = AutoModel.from_pretrained(
12 model_name,
13 torch_dtype=torch.bfloat16,
14 trust_remote_code=True,
15)
16
17image_url = "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg"
18messages = [
19 [{"role": "user", "content": [
20 {"type": "image", "image": image_url},
21 {"type": "text", "text": "Describe this image."}
22 ]}],
23]
24text = processor.apply_chat_template(
25 messages, tokenize=False, add_generation_prompt=True, add_vision_id=False
26)
27images = [
28 Image.open(requests.get(image_url, stream=True).raw).convert("RGB")
29]
30
31inputs = processor(
32 text=text,
33 images=images,
34 videos=None,
35 padding="longest",
36 return_tensors="pt",
37)
38
39input_ids = inputs.pop("input_ids")
40output = model.diffusion_generate(
41 input_ids,
42 max_new_tokens=64,
43 output_history=True,
44 return_dict_in_generate=True,
45 steps=64,
46 temperature=0.2,
47 top_p=0.95,
48 alg="origin",
49 use_cache=True,
50 alg_p_threshold=0.95,
51 use_original_confidence=True,
52 decoding_pipeline="dim",
53 **inputs
54)
55
56generations = [
57 processor.tokenizer.decode(g[len(p):].cpu().tolist())
58 for p, g in zip(input_ids, output.sequences)
59]
60
61for j in range(len(messages)):
62 print("output:", j, generations[j].split(processor.tokenizer.eos_token)[0])
63
64# output: 0 In the image, a woman wearing a shirt with a plaid and a dog are sitting together on a beach. The sun appears to be setting in the background, creating a warm and serene atmosphere.@misc{dimple,
title={Dimple: Discrete Diffusion Multimodal Large Language Model with Parallel Decoding},
author={Runpeng Yu and Xinyin Ma and Xinchao Wang},
year={2025},
eprint={2505.16990},
archivePrefix={arXiv},
primaryClass={cs.CV},
url={https://arxiv.org/abs/2505.16990},
}