dinov3-vitb16-pretrain-lvd1689m
by facebook
Self-supervised visual features with no text tower, distilled to 86M parameters
facebook/dinov3-vitb16-pretrain-lvd1689mOverview
DINOv3 learns image representations from images alone. There is no paired caption anywhere in training, which is the whole point: the features come from the visual structure of the data rather than from what someone happened to write underneath it.
That produces a different tool from CLIP or SigLIP. A contrastive image-text encoder is what you want when the query is words. A self-supervised encoder is what you want when the query is another image, because it was never asked to collapse visual detail into whatever a caption could describe. For deduplication, near-duplicate detection, visual clustering and image-to-image retrieval, that distinction usually shows up as better separation between things that look almost alike.
This is the ViT-B/16 checkpoint at 85.7M parameters, distilled from the 7B ViT-7B/16 teacher trained on LVD-1689M. It is the size most people can actually afford to run over a whole archive.
Architecture
Vision transformer, patch size 16, DINOv3ViTModel with 85,660,416 parameters. Self-supervised training on the LVD-1689M dataset, distilled from facebook/dinov3-vit7b16-pretrain-lvd1689m. Image-feature-extraction only: there is no text encoder, so it cannot answer a text query on its own.
Mixpeek SDK Integration
// No extractor parameter takes a Hugging Face model id (checked against
// GET /v1/discovery/extractors, which returns 13), so dinov3-vitb16-pretrain-lvd1689m runs
// on your side and the output is upserted through POST
// /v1/namespaces/{namespace_id}/documents/upsert. On Enterprise the other
// path is to upload the weights instead: POST /v1/namespaces/{id}/models
// accepts the huggingface format and a custom plugin loads them.
const res = await fetch(
"https://api.mixpeek.com/v1/namespaces/ns_your_namespace/documents/upsert",
{
method: "POST",
headers: {
Authorization: "Bearer API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
collection_id: "col_your_collection",
documents: [
{
document_id: "asset-00412",
// The vector name has to match a vector index on the collection.
vectors: { "image-embedding": yourVector },
payload: { source_key: "archive/2026/asset-00412" },
},
],
}),
},
);
// Managed alternative, if this exact model is not the requirement:
// image_extractor@v1 runs google/siglip-base-patch16-224
// (768-d) over a bucket, with no inference of your own.Capabilities
- Dense visual features for image-to-image retrieval
- Near-duplicate and near-miss detection without labels
- Frame-level features for clustering an unlabelled archive
- A backbone for downstream heads trained on your own labels
Use Cases on Mixpeek
Specification
Research Paper
DINOv3
arxiv.orgBuild a pipeline with dinov3-vitb16-pretrain-lvd1689m
Add this model to a processing pipeline alongside other extractors. Combine with retrieval stages for end-to-end search.
Run it on your own data, free