North Micro Vision 2.4B

Click a block to read its description, or select it with Tab and Enter.

North Micro Vision 2.4BDetect. P = image patches; L = combined tokens (runtime axes). Model widths below are resolved.LibreYOLONorth Micro Vision 2.4BDetect. P = image patches; L = combined tokens (runtime axes). Model widths below are resolved.Image encoderImage processorNominal runner size 1024; native tiling/resizeConv3d patch embeddingpatch=16; output P × 1152Learned/interpolated 2D positionsP × 1152Vision blocks 0 to 8n=9; width 1152V0Vision blocks 9 to 16n=8; width 1152V1Vision blocks 17 to 24n=8; width 1152V2Vision blocks 25 to 26n=2; width 1152VV carries final visual features to the projector.Patch counts vary with processor output, not model size.V0/V1/V2 are the three intermediate visual taps.Projection and multimodal sequenceVVisual projector1152 channels become 2048 channelsVisual token sequencePatch grouping factor 2 per axisPrompt and image placeholdersOne query per classTokenizerRuntime text lengthToken embeddingVocabulary 262144; width 2048Replace image-token placeholdersL × 2048; image and text in one sequenceSV0Intermediate patch mergerPost-shuffle LayerNorm; output width 2048D0V1Intermediate patch mergerPost-shuffle LayerNorm; output width 2048D1V2Intermediate patch mergerPost-shuffle LayerNorm; output width 2048D2D0/D1/D2 add to visual positions in text layers 0/1/2.S denotes the multimodal token sequence.Language model and generated outputSText decoder layer 0Width 2048+D0Text decoder layer 1Width 2048+D1Text decoder layer 2Width 2048+D2Remaining text decoder layersn=25Final LayerNorm2048 channelsLanguage head Linear2048 to 262144; logits × 0.25Greedy token generationmax_new_tokens=1024; do_sample=FalseONorth: sliding window4096; every fourth layer uses full attention.O is the generated reply; prompt tokens are removed.Generation is repeated per vocabulary class.Vision transformer layerInputS × 1152LayerNorm1152 channelsVision attention+LayerNorm1152 channelsVision MLP+OutputS × 1152S is the token count of this sublayer.Text decoder layerInputS × 2048LayerNorm2048 channelsCausal attentionGated MLP++Attention and MLP use the same normalized input.One shared LayerNorm, parallel sublayers.OutputS × 2048S is the token count of this sublayer.Vision attentionInput width 1152; Q heads 16; K/V heads 16.Q Linear1152 to 1152Split heads72 per headK Linear1152 to 1152Split heads72 per headV Linear1152 to 1152Split heads72 per headRotary positioncos/sin half rotationRotary positioncos/sin half rotationQ × transpose(K)Scale by 1/sqrt(72)Softmax over keysWithin the image; padding maskAttention weights × V16 query heads, weighted valuesConcat headsOutput Linear1152 to 1152RoPE: x*cos + rotate_half(x)*sin.Distinct projections share the same normalized input.Text attentionInput width 2048; Q heads 16; K/V heads 8.Q Linear2048 to 2048Split heads128 per headK Linear2048 to 1024Split heads128 per headV Linear2048 to 1024Split heads128 per headRotary positionSliding layers onlyRotary positionSliding layers onlyAlign K heads8 to 16Align V heads8 to 16Q × transpose(K)Scale by 1/sqrt(128)Softmax over keysCausal mask; cached K/V optionalAttention weights × V16 query heads, weighted valuesConcat headsOutput Linear2048 to 2048RoPE: x*cos + rotate_half(x)*sin.Full layers skip RoPE.Vision MLPInputS × 1152Linear1152 to 4304gelu_pytorch_tanhDown Linear4304 to 1152OutputS × 1152Residual addition is in the enclosing layer diagram.S is the token count of this sublayer.Text MLPInputS × 2048Gate Linear2048 to 6144Up Linear2048 to 6144SiLUElementwise multiplyS × 6144Down Linear6144 to 2048OutputS × 2048Residual addition is in the enclosing layer diagram.S is the token count of this sublayer.Visual projectorLayerNorm1152 channels (main merger)Group spatial neighbors2 × 2; packed width 4608Linear4608 to 4608GELULinear4608 to 2048Deep-tap mergers normalize after grouping.Output width equals the language-model embedding.LibreYOLO output adapterODecode generated tokensRetain reply textParse bare boxesAssign the queried classNormalize coordinatesDivide by 1000; xyxy cornersValidate / class / confidenceSynthetic per-box score1; clamp valid boxesSame-class deduplicationRounded boxes and IoU filter before max_detResults.boxesScale xyxy to original W,H; cap max_detScores are adapter placeholders, not calibrated confidence.Scope: native backend architecture from pinned config metadata; no pretrained execution. The image path is shown.Source: libreyolo/models/vlm/northmicro.py; Transformers 5.16.1. Revision a4d0ecc9e17f.libreyolo.com