The Free Lunch Hiding in Your Vision Encoder: What SigLIP-HD Gets Right
Based on: SigLIP-HD by Fine-to-Coarse Supervision — Lihe Yang, Zhen Zhao, Hengshuang Zhao
A runner jogs past a banner mid-race. The banner reads "HOKA TIME TO FLY," advertising the running shoe brand. Feed that photo to a state-of-the-art vision-language model and ask what the banner says, and you get back: "HOOKA TIME TO FLY." Not a typo in the image. A typo invented by the model, because at the resolution it was looking at, the letters blurred just enough to turn a real brand name into a word that doesn't exist.
That's the failure mode a new paper called SigLIP-HD is built to fix, and the fix is almost suspiciously simple. No bigger images. No extra compute at inference time. No new architecture. Just a different way of training the same vision encoder that's already inside a huge chunk of today's multimodal models. The authors, from the University of Hong Kong and Shanghai AI Lab, get meaningfully better OCR and document understanding out of SigLIP 2 (a widely used image encoder) without asking it to look at a single extra pixel at inference time.

The instinct everyone has, and why it's more expensive than it looks
When a multimodal LLM (MLLM, a model that takes in images and text and outputs text, like GPT-4V or LLaVA) misreads small text, the obvious fix is to feed it a bigger image. More pixels in, more fine-grained visual tokens out, better odds of catching every character. This is exactly the direction the field has moved: early systems like LLaVA resized everything down to a fixed 336×336 image, and newer ones like Qwen2.5-VL or InternVL try to preserve native resolution, sometimes cutting a document into a grid of tiles and running the vision encoder on each tile separately.
It works, but it isn't free. Slicing an image into tiles means multiple forward passes through the encoder for a single input. More tiles means more visual tokens flowing into the language model, which gets expensive fast since transformer cost scales with sequence length. So systems add resamplers or pixel-unshuffle tricks to compress those tokens back down, and that adds engineering surface and failure modes of its own. Every step up in resolution is a step up in latency and cost, the kind of thing that shows up as timeouts in production long before anyone updates a benchmark number.
The authors ask a sharper question before signing up for any of that: have we actually gotten everything out of the resolution we're already using? Their illustration is a good one. Take a tall infographic, something like a stat-heavy sports poster, natively 1722 pixels tall. Downsample it to a standard "medium" resolution of 512 pixels. The text gets blurry. A human squinting at the smaller version can still read most of it. We're good at reconstructing degraded text from context and rough letterforms. Is a vision model doing the same reconstruction, or is it just... not looking hard enough at what it already has? If the answer is the latter, you don't need a bigger image. You need to teach the model to extract more out of the one it's already paying for.
Teaching a cheap image to see like an expensive one
The method is called fine-to-coarse supervision, and once you see the diagram it takes about thirty seconds to understand. Start with a frozen, pretrained SigLIP 2 encoder. "Frozen" means its weights are locked and untouched during this step. Feed it the same image at two scales: a cheap base version at 512×512 pixels, and a pricier zoomed-in version at 1024×1024. Both passes produce a grid of feature vectors (think of these as the model's internal summary of what's in each small patch of the image). The high-resolution pass obviously captures more fine detail, smaller text, finer edges, but it produces a bigger grid, one that doesn't match the shape of the cheap version.
So the authors downsample the high-res feature grid with simple bilinear interpolation until it's the same shape as the base-res grid, then just average the two together, patch by patch. That averaged result is the "teacher" feature: something that has genuinely seen the fine detail from the expensive pass, but is packaged in the same shape as the cheap output.
Now for the actual training step. Take a second copy of the same pretrained encoder. This one is trainable, not frozen, and only ever shown the cheap 512×512 image. Fine-tune it so that the features it produces from that one cheap image match the teacher feature, patch by patch, using a plain L1 loss (in short: minimize the absolute difference between the two feature grids). No text labels, no synthetic captions, nothing hand-annotated. The "supervision" here is the model teaching itself using nothing but raw images at different sizes.
After training, you throw away the expensive multi-scale teacher setup entirely. What's left is a single encoder that takes the exact same 512×512 input, produces the exact same number of tokens, and slots into an MLLM as a drop-in checkpoint swap, but it now encodes, in its weights, some notion of what the finer-detail version of that image would have looked like. Same input, same cost, better output. That's the whole trick: distillation not from a bigger, separate teacher model (the usual setup in knowledge distillation), but from the same model looking at more pixels of the same picture.
It's also cheap to produce. The authors trained it on 4.5 million images for 90,000 steps, and the whole run took 34 hours on 32 A100 GPUs. Compare that to pretraining a vision encoder from scratch, which the paper notes can burn through "million GPU hours" and datasets with a billion images. This is a lightweight polish pass bolted onto an existing encoder, not a new model built from the ground up.

Paris - Métro Map 1973 — by roger4336 via flickr, BY-SA 2.0.
What the tinkering with scales and losses actually revealed
Before landing on the final recipe, the authors ran a set of pilot studies worth dwelling on, because the answers are more interesting than "bigger is better."
Testing single-scale versus multi-scale inputs for the teacher signal, they found that combining a base 512² view with a 1024² zoomed view helped on 10 of 12 benchmarks over using either alone. But stacking on a third scale (1536²) or a fourth (2048²) mostly stopped helping and sometimes made things worse. A single high-resolution view by itself, with no base-scale companion, actually underperformed the combination. The model seems to need the coarse, global view alongside the fine, local one, not just more fine detail piled on.
They also tested how to process a high-resolution image when the encoder was only trained on a fixed smaller size. The intuitive move, borrowed from dense-prediction tasks like segmentation, is to slide overlapping windows across the image so nothing important sits awkwardly on a tile boundary. Here it backfired: non-overlapping windows won instead. Their best guess is that overlapping regions get inconsistent treatment (some patches effectively get "counted twice") or that positional embeddings conflict when the same content shows up in more than one window. Either way, a bit of prior wisdom from a different corner of computer vision didn't transfer.
And when it came to combining the multi-scale features, the simplest option won again: bilinear interpolation to align shapes, then a plain unweighted average, beat both channel-wise concatenation and pixel-unshuffle downsampling. They even tried tipping the average toward the high-resolution features specifically for detail-heavy benchmarks like document VQA, on the theory that more fine detail should help more where fine detail matters most. It didn't. A straight 1:1 average stayed best throughout.
The actual numbers, and a couple of real misreads fixed
Plugged into the standard LLaVA training pipeline with a 7-billion-parameter Vicuna LLM, using LLaVA-NeXT's more OCR-heavy instruction-tuning data, SigLIP-HD lifted DocVQA (a benchmark for reading text in scanned documents) from 56.0 to 59.6, ChartQA (reading data out of charts and graphs) from 61.6 to 65.2, and HRBench (a benchmark specifically built around fine-grained visual details) from 43.5 to 48.3, all against the SigLIP 2 baseline, at identical inference cost. Averaged across every benchmark tested, that training configuration went from 62.8 to 64.4.
The gains weren't specific to one LLM either. Swap in a smaller Llama-3.2-3B and ChartQA jumps 45.2 to 49.8; swap in Qwen2.5-7B and DocVQA goes 62.5 to 64.2. And it isn't just a SigLIP 2 story: bolted onto the much older OpenAI CLIP encoder from 2021, the same self-distillation trick pushed DocVQA from 22.4 to 33.2. Whatever this method is doing, it isn't tied to one specific encoder's quirks.
Two results stand out as more than leaderboard noise. First, the method stacks with the "just use native resolution" approach (AnyRes tiling) rather than competing with it. Applied on top of AnyRes, SigLIP-HD still pushed ChartQA up another 3.5 points. Second, and this is where the paper's abstract claim shows up in practice: the qualitative examples in the paper include the exact HOKA/HOOKA misread from the opening of this piece, plus a whiteboard photo where the baseline model reads a handwritten name as "Brian Owens" and the fine-tuned version correctly gets "Bryan Owens." Small, specific, the kind of error that actually shows up when you point a camera at handwriting or a blurry banner in the wild rather than a clean scanned page.
Why it matters if you're building or buying an OCR pipeline
The headline lesson isn't really about SigLIP specifically. It's that "resolution" and "token budget," the numbers vendors quote when describing an OCR or document-AI engine, don't tell you everything about how much of the image the model is actually extracting. Two encoders can take an identical 512×512 image, produce an identical number of tokens, cost identically at inference time, and still differ by several points on document and chart benchmarks purely because of how the training was done. If you're evaluating engines by resolution specs and token counts alone, you're missing a variable that matters just as much.
Practically, this is also good news for anyone deploying OCR at real volume rather than benchmarking it in a lab. Higher-resolution tiling pipelines are a legitimate way to catch small text, but they multiply forward passes and token counts, which multiplies latency and cost per document, a real number when you're processing thousands of pages a day. A one-time, 34-hour, self-supervised fine-tuning pass that improves accuracy without touching the serving cost is the kind of change that's easy to justify, and notably easy to undo if it doesn't help, since it's a checkpoint swap rather than a rearchitecture.
The honest caveat, which the authors state plainly rather than burying: this doesn't make native high resolution obsolete. Some detail really is destroyed once you downsample an image; no amount of clever training recovers pixels that were averaged away before the model ever saw them. What this buys you is squeezing more accuracy out of whatever resolution budget you've already committed to, which, for teams that can't afford to run every document through an expensive multi-tile pipeline, might be the more useful lever to pull first.