TokenSwap: Benchmarking and Reducing the Modality Gap in Multimodal LLMs
Organizations: University of California, Santa Barbara · Google DeepMind
Abstract
Multimodal large language models (MLLMs) should exhibit cross-modal consistency, generating consistent responses given semantically equivalent inputs across modalities. However, we observe a systematic discrepancy in model predictions under such cross-modal variations. Specifically, we define the modality gap as the difference in model performance under semantically equivalent textual and multimodal inputs. We introduce TokenSwap, a method that constructs such inputs by replacing textual concepts with semantically aligned images, resulting in sequences where visual tokens are interleaved with text tokens. Based on TokenSwap, we transform existing text-based benchmarks (e.g., MMLU) into image-interleaved counterparts, resulting in TokenSwap-Bench. Across 42 MLLMs, we observe a pervasive modality gap, with performance decreasing by 4.2% to 47.4% when moving from text-only to image-interleaved inputs, averaging 19.6% +/- 3.3% across models. Notably, reasoning models exhibit consistently smaller gaps, achieving an average gap of 10.1% compared to 25.5% for non-reasoning models, suggesting greater robustness in multimodal reasoning across equivalent textual and visual representations. In contrast, neither prompting strategies nor scaling training compute alone reliably reduces the modality gap. Finally, we demonstrate that incorporating TokenSwap during training effectively mitigates this gap, improving cross-modal alignment while preserving strong text-only and vision-language model performance. The project page is available at https://dongxzz.github.io/TokenSwap/.
Figures & tables
| Method | Accuracy |
|---|---|
| Baseline | 0.9003 |
| Text Training | 0.8947 |
| TokenSwap Training | 0.9270 |
Appendix figures & tables19 assets
Supplementary material from the paper’s appendix.
Appendix
| Model | Text | Image | GPT Proxy Gap | Gemini Proxy Gap |
|---|---|---|---|---|
| Gemini-3-Flash | 0.983 | 0.906 | 0.077 | 0.042 |
| Claude-Opus-4.6 | 0.982 | 0.901 | 0.081 | 0.057 |
| GPT-5.1 | 0.982 | 0.897 | 0.085 | 0.077 |
| Qwen3-VL-4B-Thinking | 0.859 | 0.729 | 0.130 | 0.109 |
| GPT-4.1 | 0.886 | 0.726 | 0.160 | 0.164 |
| Qwen3-VL-4B | 0.704 | 0.509 | 0.195 | 0.184 |
| Model | Text | Image | GSM8K Gap | MMLU Gap |
|---|---|---|---|---|
| Gemini-3-Flash | 1.000 | 0.945 | 0.055 | 0.042 |
| Claude-Opus-4.6 | 1.000 | 0.959 | 0.041 | 0.057 |
| GPT-5.1 | 1.000 | 0.945 | 0.055 | 0.077 |
| Qwen3-VL-4B-Thinking | 0.973 | 0.753 | 0.220 | 0.109 |
| GPT-4.1 | 0.986 | 0.795 | 0.191 | 0.164 |
| Qwen3-VL-4B | 0.904 | 0.575 | 0.329 | 0.184 |
| Model | Text | White Image | Image | Text White Image | Text Image (Modality Gap) |
|---|---|---|---|---|---|
| Gemini-3-Flash | 0.925 | 0.935 | 0.884 | 0.041 | |
| Claude-Opus-4.6 | 0.984 | 0.983 | 0.926 | 0.001 | 0.058 |
| GPT-5.1 | 0.980 | 0.981 | 0.903 | 0.077 | |
| Qwen3-VL-4B-Thinking | 0.889 | 0.890 | 0.780 | 0.109 | |
| GPT-4.1 | 0.925 | 0.923 | 0.761 | 0.002 | 0.164 |
| Qwen3-VL-4B | 0.707 | 0.714 | 0.523 | 0.184 |
| Model | Text | Rendered | Image | Text Rendered | Rendered Image |
|---|---|---|---|---|---|
| Gemini-3-Flash | 0.925 | 0.917 | 0.884 | 19.5% | 80.5% |
| Claude-Opus-4.6 | 0.984 | 0.976 | 0.926 | 13.8% | 86.2% |
| GPT-5.1 | 0.980 | 0.976 | 0.903 | 5.2% | 94.8% |
| Qwen3-VL-4B-Thinking | 0.889 | 0.876 | 0.780 | 11.9% | 88.1% |
| GPT-4.1 | 0.925 | 0.906 | 0.761 | 11.6% | 88.4% |
| Qwen3-VL-4B | 0.707 | 0.690 | 0.523 | 9.2% | 90.8% |
| Model | Text | Image | Gap |
|---|---|---|---|
| GPT-4.1 | 0.925 | 0.761 | +0.164 |
| GPT-4.1-mini | 0.892 | 0.686 | +0.206 |
| GPT-4o | 0.913 | 0.693 | +0.220 |
| GPT-4o-mini | 0.832 | 0.545 | +0.288 |
| GPT-5 | 0.952 | 0.856 | +0.096 |
| GPT-5.1 | 0.980 | 0.903 | +0.077 |
| Model | SEAM | Ours | Gap | |||
|---|---|---|---|---|---|---|
| Text | Image | Text | Image | SEAM | Ours | |
| GPT-4o | 0.635 | 0.482 | 0.913 | 0.693 | +0.153 | +0.220 |
| GPT-4o-mini | 0.555 | 0.411 | 0.832 | 0.545 | +0.144 | +0.288 |
| InternVL2.5-78B | 0.448 | 0.414 | 0.920 | 0.600 | +0.034 | +0.320 |
| InternVL2.5-8B | 0.324 | 0.337 | 0.756 | 0.382 | -0.013 | +0.374 |
| InternVL3-78B | 0.525 | 0.427 | 0.943 | 0.685 | +0.098 | +0.258 |
| Training Data | Text | Image | Gap |
|---|---|---|---|
| Baseline | 0.741 | 0.438 | 0.303 |
| Text Training | 0.753 | 0.429 | 0.324 |
| TokenSwap Training | 0.748 | 0.518 | 0.230 |
| GQA [ 19 ] | TextVQA [ 35 ] | MME [ 14 ] | |
|---|---|---|---|
| Baseline | 63.8 | 62.5 | 1542.4 |
| pre-train + Generate | 63.5 | 61.7 | 1535.9 |
| pre-train + Retrieval | 63.7 | 61.9 | 1587.0 |
| post-train + Generate | 63.9 | 62.3 | 1560.0 |
| post-train + Retrieval | 63.8 | 62.0 | 1544.1 |
| Training Domain | Natural Image-Interleaved Accuracy | OCR Accuracy |
|---|---|---|
| No Train | 0.4466 | 0.9003 |
| Natural Image | 0.5132 | 0.9196 |
| OCR Image | 0.4393 | 0.9270 |