Unbundling Multimodal Vision Encoding

Meta FAIR New York University

*Equal contribution, ordered randomly †Equal advising

§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

RecipePriorCapacityPre-fusion
Pretrained encoder✓✓✓
Scratch encoder✗✓✓
Encoder-free✗✗✗
In-fusion✗✓✗
A vision encoder bundles three design choices, and each recipe keeps a different subset. Hover a recipe to see which. In-fusion keeps dedicated vision capacity without the prior or pre-fusion placement.

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

Published models differ in everything at once. We hold everything but the vision encoding fixed.

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 .

§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

One budget, split between pretraining and multimodal training
Scratch MetaCLIP WebSSL Cap CapPa
Avg. VQA (%)
Longer pretraining, not charged to the budget
MetaCLIP pretraining Multimodal training
Encoder pretraining is not beneficial at matched lifetime compute. Longer pretraining, even for free, improves recognition but not VQA. Left: a 1.7B backbone with a fixed 1.04×1022-FLOP lifetime budget. Right: MetaCLIP pretraining that is not charged to the budget, followed by the same multimodal training stage.

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

Encoder-free Scratch encoder
Avg. VQA (%)
Encoder-free trails the encoder on Avg. VQA, while Avg. Text stays comparable. Each point is a learning-rate-decayed run. Arrows mark how much more compute encoder-free needs to match the encoder's Avg. VQA.

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

Matching total parameters doesn't close the gap to a scratch encoder. The added parameters improve Avg. Text, since text tokens use them too, but move Avg. VQA by at most 0.4 points.

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

all tokens text tokens only vision tokens only Nnorm
In-fusion vision modules add to one shared stream
MoT separate streams, joint attention
In-fusion vision capacity adds to the shared backbone instead of replacing it. Hover any part to see what it does, or a token to follow its path. Every token passes through the shared modules. Vision tokens also pass through vision-only attention projections and an FFN branch whose outputs add to the shared ones, so attention stays joint and text-only inputs are processed exactly as by the shared backbone alone. The in-fusion (FFN-only) variant omits the dashed modules. MoT instead gives each modality its own modules, so the two modality streams meet only in attention.

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

Added capacity helps most when reserved for vision tokens and placed early. Every row adds 0.4B parameters to the 1.7B encoder-free backbone (2.6×1021 FLOPs). The vision-only FFN branch in the first eight layers is in-fusion (FFN-only). Strips show the 28 layers. Gray is used by all tokens, blue by vision tokens only, and taller means wider.

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

Encoder-free Scratch encoder In-fusion
Avg. VQA (%)
In-fusion is comparable to the pre-fusion encoder over training. It also stays within one Avg. Text point of the encoder. Encoder-free is shown for reference.

§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

Encoder-free Scratch encoder In-fusion
Encoder-free trails the encoder at every size, while in-fusion tracks it. Points are runs and curves are each recipe's fitted law. Arrows give the factor of compute encoder-free needs to match the encoder.

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

In-fusion, early-layer MoT, and the scratch encoder perform comparably in midtraining, and all lead encoder-free. Every recipe stays within a point of a text-only control on Avg. Text (57.3). MetaCLIP's pretraining is not counted.

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

Scratch encoder MoT (first k layers) In-fusion In-fusion (FFN-only)
In-fusion serves images faster than the encoder at every vision-only budget. Designs are parameter-matched at each budget on the 1.7B backbone, to MoT copies of the first k layers (numbers beside MoT's points).

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}
}