Model reference · open weights

vit_small_patch16_224.dino-mlxim

Available as managed deployment Licence fee Embeddings mlx-vision Image embed 1 variants 666 dl/mo

vit_small_patch16_224.dino-mlxim is an open-weight embedding model from mlx-vision. AxForge deploys and operates it for you on dedicated EU-owned hardware — with the licence handled where one is required.

Available as managed deployment — configured and operated for you on dedicated EU hardware, quoted per deployment.

What it is

Released bymlx-vision
TypeEmbedding models
TaskImage embed
Parameters (lead)22M
Runs withmlx-image
Released2026-03-11
Popularity666 downloads / month
LicenceCommercial licence needed

About

What vit_small_patch16_224.dino-mlxim is

A Vision Transformer feature extraction model trained on the LVD-1689M web dataset with DINOv3.

The model was trained in self-supervised fashion. No classification head was trained, only the backbone. This is the ViT-S/16 variant (21M parameters), distilled from the DINOv3 ViT-7B teacher model.

Disclaimer: This is a porting of the Meta AI DINOv3 model weights to Apple MLX Framework.

Read the full model card

How to use

pip install mlx-image

Here is how to use this model for feature extraction:

import mlx.core as mx
from mlxim.model import create_model
from mlxim.io import read_rgb
from mlxim.transform import ImageNetTransform

transform = ImageNetTransform(train=False, img_size=224)
x = transform(read_rgb("image.png"))
x = mx.expand_dims(x, 0)

model = create_model("vit_small_patch16_224.dinov3")
model.eval()

embeds = model(x, is_training=False)

You can also use the embeddings from the layer before the head:

import mlx.core as mx
from mlxim.model import create_model
from mlxim.io import read_rgb
from mlxim.transform import ImageNetTransform

transform = ImageNetTransform(train=False, img_size=224)
x = transform(read_rgb("image.png"))
x = mx.expand_dims(x, 0)

model = create_model("vit_small_patch16_224.dinov3", num_classes=0)
model.eval()

embeds = model(x, is_training=False)

Architecture

This model follows the ViT architecture with a patch size of 16. For a 224×224 image this results in 1 class token + 4 register tokens + 196 patch tokens = 201 tokens.

The model can accept larger images provided the image shapes are multiples of the patch size (16). If this condition is not met, the model will crop to the closest smaller multiple.

Key architectural features over DINOv2:

  • RoPE: Rotary Position Embeddings for 2D images
  • SwiGLU: Efficient SwiGLU feed-forward networks
  • LayerScale: For improved training stability in deep transformers
  • Register tokens: 4 additional register/storage tokens

Available model variants (mlx-image)

Model nameParamsEmbed dimHeadsFFN
vit_small_patch16_224.dinov321M3846MLP + RoPE
vit_base_patch16_224.dinov386M76812MLP + RoPE
vit_large_patch16_224.dinov3300M102416MLP + RoPE

Evaluation results

Results on global and dense tasks (LVD-1689M pretraining)

ModelIN-ReaLIN-RObj.NetADE20kNYU↓DAVIS
DINOv3 ViT-S/1687.060.450.947.00.40372.7
DINOv3 ViT-B/1689.376.764.151.80.37377.2
DINOv3 ViT-L/1690.288.174.854.90.35279.9

Refer to the DINOv3 paper for full evaluation details and protocols.

Training data

The model was distilled from DINOv3 ViT-7B, which was pretrained on LVD-1689M — a curated dataset of 1,689 million images from public web sources.

Bias and limitations

DINOv3 delivers generally consistent performance across income categories on geographical fairness benchmarks, though a performance gap between low-income and high-income buckets remains. A relative difference is also observed between European and African regions. Fine-tuning may amplify these biases depending on the fine-tuning labels used.

Acknowledgements

Original model developed by Meta AI. See the blog post and paper. Weights ported to MLX by etornam45.

From the published model card. Full card on the HuggingFace links in the sidebar.

How it works

How embedding models work

Your textsentence / documentEncodermaps meaningVectorlist of numbersAn embedding model turns text into a vector, so similar meanings sit close together — the basis of search and RAG.

Using it via the API

Call it like any OpenAI endpoint

Once AxForge deploys vit-small-patch16-224-dino-mlxim for you, it answers on the OpenAI-compatible API — the same base URL and keys as every other model. (vit-small-patch16-224-dino-mlxim below is illustrative; you get the exact model name on deployment.)

$ curl -sS https://api.axforge.ai/v1/embeddings \
  -H "Authorization: Bearer $AXFORGE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"vit-small-patch16-224-dino-mlxim","input":"text to embed"}'

Create an account — your API key is available in the console. 3M free tokens every 30 days with every new account.

© 2026 AxForge · EU-hosted AI infrastructure Pricing Docs Trust Privacy Terms