Unbundling Multimodal Vision Encoding
*Equal contribution, ordered randomly †Equal advising
- Most multimodal models see through a pretrained vision encoder, which bundles three design choices: a visual prior from separate pretraining, dedicated vision capacity, and pre-fusion placement of that capacity. We test each one by training every model from scratch on common data and comparing recipes at matched lifetime compute. §2 Setup ↓
- The prior is optional. An encoder trained from scratch with the language model is on par with encoders pretrained on the same data. More encoder pretraining raises ImageNet accuracy but not VQA, even when it is free. §3 Visual prior ↓
- Dedicated capacity is key. Encoder-free models trail on visual understanding even when their backbone gets the encoder's parameters. From 1.7B to 6.4B backbones, they need about 3× the compute to match the encoder's Avg. VQA. §4 Dedicated capacity ↓
- That capacity can sit inside the backbone. Vision-only modules in the first backbone layers perform comparably to a pre-fusion encoder and can lower time to first token. §5 Placement ↓
§2Setup
What a vision encoder bundles
Most multimodal models acquire visual understanding from a vision encoder pretrained for a separate objective, such as image recognition or image–text alignment. Recent recipes discard parts of that setup. Kimi K3 trains its encoder from scratch with the multimodal backbone, and encoder-free models feed image patches straight into the backbone. Each recipe implies a different answer to what the encoder contributes, if anything at all.
Four recipes, three design choices
| Recipe | Prior | Capacity | Pre-fusion |
|---|---|---|---|
| Pretrained encoder | ✓ | ✓ | ✓ |
| Scratch encoder | ✗ | ✓ | ✓ |
| Encoder-free | ✗ | ✗ | ✗ |
| In-fusion | ✗ | ✓ | ✗ |
One controlled protocol
Published models differ in data, architecture, training stages, and compute, so comparing them cannot isolate any one choice. Controlled studies of pretrained encoders hold the multimodal stage fixed, but they vary which prior an encoder imports rather than whether it needs one. They also treat encoder pretraining as free, though SigLIP 2, for example, trains on 40B image–text samples. We instead run every training stage ourselves, from random initialization.
Only the vision encoding differs
Every recipe pretrains on the same , with images at 224×224. Avg. VQA averages four category means over , after instruction tuning on Cambrian-7M with 448×448 images. Avg. Text does the same over .








For an easy-to-grow and low-maintenance houseplant, Cobra Anthurium is one to consider. Grown for its foliage, the Cobra Anthurium is a strong plant with vigorous growth. It produces large, leathery green leaves that take on a shade of purple with age. This plant is a great choice for purifying the air and providing a focal interest indoors.
The text mentions a BBC program that focuses on four notable individuals: Georg Cantor, Ludwig Boltzmann, Kurt Gödel, and Alan Turing. The duration of the program is 1.5 hours. The text suggests that the program is highly recommended for those who have an interest in such topics ("if your nerd streak works that way").
§3Is separate pretraining needed?
Separate pretraining is optional
Under a fixed lifetime budget, encoder pretraining competes with multimodal training for compute. We pretrain the same encoder with four objectives (contrastive MetaCLIP, self-supervised WebSSL, and captioning with Cap and CapPa) on the same images, update it during multimodal training, and compare it with the encoder trained from scratch with the backbone.
Separate encoder pretraining
At 1.7B and 4B, MetaCLIP trails the scratch encoder at every budget, by 1.8 Avg. VQA points at the largest 4B budget.
§4Is vision capacity needed?
Dedicated vision capacity is key
Encoder-free models drop the encoder and map each image patch directly into the backbone with a linear embedding. Removing the encoder also removes its parameters and changes how raw patches enter the backbone, so a gap could reflect fewer parameters, a weak patch embedding, or missing dedicated capacity.
Encoder-free versus the scratch encoder
Across budgets, encoder-free trails by 4.1–6.4 Avg. VQA points at 1.7B and 2.8–6.8 at 4B. To test whether the gap is just the encoder's extra parameters, we give the encoder-free backbone the encoder's 0.4B parameters as extra width, depth, or both.
Giving encoder-free the encoder's parameters
A richer patch embedding doesn't close it either. Trained on the same 224×224 images, a two-layer projection inspired by Gemma 4 helps, scoring 40.5 Avg. VQA against 39.0 for the linear default, but stays well below the encoder's 44.4.
§5Must capacity precede fusion?
Vision capacity can move in-fusion
An encoder's parameters are dedicated, used only by vision tokens, and pre-fusion, run before vision and text interact. To separate the two, we move the encoder's 0.4B-parameter budget in-fusion, into vision-only modules inside the shared backbone.
Two block designs with vision-only modules
Holding the budget at 0.4B parameters, we vary where it goes and which tokens use it.
Who uses the added capacity, and where it sits
Placed in the first eight layers, the vision-only FFN branch matches the scratch encoder (45.0 vs. 44.4), while the other placements do no better than encoder-free. Early placement also helps most on OCR and chart questions (36.0 vs. 25.2 for encoder-free), which depend on fine visual detail. With the first eight layers as the default, in-fusion, which also adds vision-only attention projections, holds the same dedicated budget as the encoder on the other side of fusion.
In-fusion versus the pre-fusion encoder
§5.4Scale
The comparisons hold with scale
We also train the three recipes on a ladder of backbone sizes and token budgets, growing the vision module with the backbone, and fit one law per recipe in model size and training tokens. The figure shows the runs at 64 tokens per parameter.
Per-recipe scaling laws across backbone sizes
Caption loss shows the same pattern: encoder-free has higher (worse) loss than the encoder at every size, while in-fusion matches it. On text loss and Avg. Text, the three recipes are comparable.
§6Beyond lifetime compute
The findings carry over, and in-fusion can be faster to serve
Lifetime compute isolates each design choice, but teams often build on pretrained components and care about inference speed. As shown above, a pretrained encoder doesn't help even when its pretraining is free. We also test adding vision to a pretrained language model, and measure time to first token.
Midtraining: adding vision to a pretrained language model
We continue our own 1.7B text-only model from 1T to 1.33T token-equivalents, adding each recipe at equal compute, and include mixture-of-transformers (MoT) for comparison.
Midtraining from a pretrained 1.7B text model
MoT with vision-only copies of all 28 layers falls behind MoT on the first eight layers alone, despite 3.5× as many vision-only parameters, consistent with late placement not helping.
Time to first token
A separate encoder must finish each image before the backbone can start, which adds a serial step to inference. We measure time to first token for a 1.7B backbone on one H200 serving 16 concurrent requests, each with one 448-px image and 256 text tokens.
Time to first token across vision-only budgets
MoT, which copies whole backbone layers for vision tokens, is about as fast as in-fusion up to 0.4B vision-only parameters, but its added time grows faster with the budget, while staying below the encoder's. The encoder-free model is fastest, but at 1.7B and 2.6×1021 FLOPs it trails the encoder by 5.4 Avg. VQA points.
FAQ
Common questions
Why count lifetime compute?
A pretrained encoder brings compute and data of its own that comparisons usually leave out. SigLIP 2, for example, trains on 40B image–text samples. Counting only the multimodal stage lets a recipe look better just because it spent more in total. Lifetime compute counts every stage that produces the final model: encoder pretraining, any text-only training, and multimodal training. That is the question a team with a fixed budget faces: if a recipe spends 15% of its budget pretraining the encoder, that 15% is not spent on multimodal training. We compare recipes at matched lifetime compute, with budgets from 6.5×1020 to 2.9×1022 FLOPs. The findings don't rest on this accounting alone: a pretrained encoder doesn't help even when its pretraining is free.
How do your encoders compare to released ones like CLIP and SigLIP?
They have the size of a common released encoder but see much less data. Every encoder is a 27-layer, 0.4B-parameter ViT, about the size of SigLIP's So400m, and pretrained encoders see only our own training images, so every recipe learns from the same data. Pretrained four different ways, these encoders are on par with an encoder trained from scratch with the backbone at matched lifetime compute. Our MetaCLIP encoder reaches 80.4% ImageNet linear-probe accuracy after its default pretraining (1.4×1021 FLOPs) and 84.4% after 9.0×1021 FLOPs, yet after the same multimodal training every version stays below the scratch encoder's 43.5 Avg. VQA. Released encoders like SigLIP 2 train on far more data, so our results don't rule out a benefit from the new data they bring.
How is in-fusion different from mixture-of-transformers?
Mixture-of-transformers (MoT) gives each modality its own modules, so the two streams meet only in attention. In-fusion keeps every token on the shared weights and adds zero-initialized vision-only weights on top, sized to the encoder's 0.4B-parameter budget, in the first eight layers only. Added to a pretrained 1.7B language model, MoT copies of the first eight layers come close to in-fusion (48.5 vs. 50.1 Avg. VQA). Copying every layer scores 43.3 with 3.5× the vision-only parameters, and it adds 100 ms to the time to first token, against 37 ms for in-fusion and 64 ms for the encoder at 0.4B.
Why train from scratch instead of starting from a pretrained language model?
Training every stage ourselves lets us change one design choice at a time on common data and charge each recipe for all of its compute. We also test the common setup: we continue our own 1.7B text-only model from 1T to 1.33T token-equivalents, adding each recipe at equal compute. There, in-fusion (50.1 Avg. VQA) and the scratch encoder (48.6) stay comparable, and both lead encoder-free (39.8).
Why do other studies find encoder-free as good as an encoder, or better?
Most compare a pretrained encoder with an encoder-free model, as Tong et al. and Tuna-2 do. That removes separate pretraining, dedicated capacity, and pre-fusion placement at once, so it can't show which choice matters. Shukor et al. train both designs from scratch, as we do, and find that encoder-free matches or slightly beats the encoder, mainly at smaller sizes. Two choices in their setup work against the encoder. They train it at a reduced learning rate, which in our runs removes most or all of its lead. And they fit scaling laws to validation loss averaged over text, interleaved, and caption data, which barely responds to the encoder: in our runs that average separates the encoder and encoder-free by at most 0.05 nats up to 1.7B, while held-out caption loss separates them by up to 0.24 nats and tracks Avg. VQA.
Citation
BibTeX
@article{brown2026unbundling,
title = {Unbundling Multimodal Vision Encoding},
author = {Brown, Ellis and Hoang, Chris and Qian, Shengyi and
Li, Shang-Wen and Lewis, Mike and Ghazvininejad, Marjan and
Zettlemoyer, Luke and Beyer, Lucas and Ren, Mengye and
Verbeek, Jakob and Xie, Saining and Xu, Hu},
journal = {arXiv preprint arXiv:2611.XXXXX},
year = {2026}
}