dinov3-vitb16-pretrain-lvd1689m
by facebook
Self-supervised visual features with no text tower, distilled to 86M parameters
facebook/dinov3-vitb16-pretrain-lvd1689mDeploy dinov3-vitb16-pretrain-lvd1689m
Single-tenantMixpeek has no managed extractor for this model. On a single-tenant deployment you upload the weights and a custom plugin serves them next to the rest of your pipeline.
Overview
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