Cohere just dropped North Micro Vision Instruct, a 2.4B-parameter vision-language model (VLM) built specifically for document-heavy workloads. It is open-weight, free to use commercially, and available right now under an Apache 2.0 license. The headline feature is native-resolution image processing: instead of squashing every image into a fixed square before feeding it to the model, North Micro Vision processes images at their actual dimensions and aspect ratios.
Why native resolution matters
Most small VLMs resize inputs to a fixed resolution (say, 224x224 or 336x336 pixels) before encoding them. That is fast, but it destroys fine-grained detail: small text in a scanned PDF becomes illegible, table borders blur together, and chart labels vanish. North Micro Vision preserves the aspect ratio and fine detail of documents, tables, charts, screenshots, and forms instead of first reducing every input to a small square image.
The model supports native-resolution inputs up to 1654 x 2339 pixels, corresponding to an A4 page at 200 dpi. That is enough resolution to read dense legal text, financial tables, or handwritten forms without any preprocessing tricks on your end.
Under the hood: a three-part architecture
North Micro Vision combines a custom-trained 400M-parameter native-resolution vision encoder with an in-house 2B-parameter language model called North Micro LLM. The language model follows Cohere's Command A+ architecture, interleaving three sliding-window attention layers that use rotary positional embeddings with one global attention layer without positional embeddings. Sliding-window attention (SWA) lets each token attend only to a local neighborhood, keeping memory costs low on long sequences, while the periodic global layer lets information flow across the full context.
The glue between vision and language is a projector that maps visual features into the language model's token space. Following the DeepStack approach, patch embeddings from multiple vision-encoder layers are injected into corresponding early LLM layers, giving the language model access to visual representations at different levels of abstraction. Think of it as giving the language model a multi-scale view of the image rather than a single flattened summary.