Skip to content
ModelListedExternal
Download

Nomic Embed Vision v1.5

Blog | Technical Report | AWS SageMaker | Atlas Embedding and Unstructured Data Analytics Platform

KindOtherVersionRevision e3a725b

Model source

Kind
Other
File size
53.6–357 MB
Version
vRevision e3a725b
Updated
Sep 16, 2026
Downloads
95K
Source
Hugging Face

Source description

nomic-embed-vision-v1.5: Expanding the Latent Space

Quick Start

Blog | Technical Report | AWS SageMaker | Atlas Embedding and Unstructured Data Analytics Platform

nomic-embed-vision-v1.5 is a high performing vision embedding model that shares the same embedding space as nomic-embed-text-v1.5.

All Nomic Embed Text models are now multimodal!

NameImagenet 0-shotDatacomp (Avg. 38)MTEB
nomic-embed-vision-v1.571.056.862.28
nomic-embed-vision-v170.756.762.39
OpenAI CLIP ViT B/1668.356.343.82
Jina CLIP v159.152.260.1

Hosted Inference API

The easiest way to get started with Nomic Embed is through the Nomic Embedding API.

Generating embeddings with the nomic Python client is as easy as

from nomic import embed
import numpy as np

output = embed.image(
    images=[
        "image_path_1.jpeg",
        "image_path_2.png",
    ],
    model='nomic-embed-vision-v1.5',
)

print(output['usage'])
embeddings = np.array(output['embeddings'])
print(embeddings.shape)

For more information, see the API reference

Data Visualization

Click the Nomic Atlas map below to visualize a 100,000 sample CC3M comparing the Vision and Text Embedding Space!

image/webp

Training Details

We align our vision embedder to the text embedding by employing a technique similar to LiT but instead lock the text embedder!

For more details, see the Nomic Embed Vision Technical Report (soon to be released!) and corresponding blog post

Training code is released in the contrastors repository

Usage

Remember nomic-embed-text requires prefixes and so, when using Nomic Embed in multimodal RAG scenarios (e.g. text to image retrieval), you should use the search_query: prefix.

Transformers

import torch
import torch.nn.functional as F
from transformers import AutoTokenizer, AutoModel, AutoImageProcessor
from PIL import Image
import requests

processor = AutoImageProcessor.from_pretrained("nomic-ai/nomic-embed-vision-v1.5")
vision_model = AutoModel.from_pretrained("nomic-ai/nomic-embed-vision-v1.5", trust_remote_code=True)

url = 'http://images.cocodataset.org/val2017/000000039769.jpg'
image = Image.open(requests.get(url, stream=True).raw)

inputs = processor(image, return_tensors="pt")

img_emb = vision_model(**inputs).last_hidden_state
img_embeddings = F.normalize(img_emb[:, 0], p=2, dim=1)

Additionally, you can perform multimodal retrieval!


def mean_pooling(model_output, attention_mask):
    token_embeddings = model_output[0]
    input_mask_expanded = attention_mask.unsqueeze(-1).expand(token_embeddings.size()).float()
    return torch.sum(token_embeddings * input_mask_expanded, 1) / torch.clamp(input_mask_expanded.sum(1), min=1e-9)

sentences = ['search_query: What are cute animals to cuddle with?', 'search_query: What do cats look like?']

tokenizer = AutoTokenizer.from_pretrained('nomic-ai/nomic-embed-text-v1.5')
text_model = AutoModel.from_pretrained('nomic-ai/nomic-embed-text-v1.5', trust_remote_code=True)
text_model.eval()

encoded_input = tokenizer(sentences, padding=True, truncation=True, return_tensors='pt')

with torch.no_grad():
    model_output = text_model(**encoded_input)

text_embeddings = mean_pooling(model_output, encoded_input['attention_mask'])
text_embeddings = F.layer_norm(text_embeddings, normalized_shape=(text_embeddings.shape[1],))
text_embeddings = F.normalize(text_embeddings, p=2, dim=1)

print(torch.matmul(img_embeddings, text_embeddings.T))

Join the Nomic Community

Sources

1 source
Hugging FacePrimaryVersion e3a725bce72db07ca4adb1d83da08903f3ee02f8
huggingface.co/nomic-ai/nomic-embed-vision-v1.5/tree/e3a725bce72db07ca4adb1d83da08903f3ee02f8

Verified Sep 16

Model artifacts

8 artifacts

model.safetensors

safetensors · 355 MB · SHA-256 4616912a7cc9…35d6 · Hugging Face

Download

onnx/model_bnb4.onnx

onnx · 53.6 MB · SHA-256 a89db8df53e6…53e5 · Hugging Face

Download

onnx/model_fp16.onnx

onnx · 179 MB · SHA-256 6adad2d74c1d…ca3d · Hugging Face

Download

onnx/model_int8.onnx

onnx · 92.3 MB · SHA-256 ba9107df6e41…50c3 · Hugging Face

Download

onnx/model_q4.onnx

onnx · 59.1 MB · SHA-256 32b16e7949df…cb9e · Hugging Face

Download

onnx/model_quantized.onnx

onnx · 92.3 MB · SHA-256 ba9107df6e41…50c3 · Hugging Face

Download

onnx/model_uint8.onnx

onnx · 92.3 MB · SHA-256 524db1d9227f…0c8b · Hugging Face

Download

onnx/model.onnx

onnx · 357 MB · SHA-256 53b4287e4591…d750 · Hugging Face

Download

Source excerpts

2 excerpts

--- library_name: transformers language: - en pipeline_tag: image-feature-extraction license: apache-2.0 inference: false --- # nomic-embed-vision-v1.5: Expanding the Latent Space ## Quick Start [Blog](https://www.nomic.ai/blog/posts/nomic-embed-vision) | [Technical Report](https://arxiv.org/abs/2406.18587) | [AWS SageMaker](https://aws.amazon.com/marketplace/seller-profile?id=seller-tpqidcj54zawi) | [Atlas Embedding and Unstructured Data Analytics Platform](https://atlas.nomic.ai) `nomic-embed-vision-v1.5` is a high performing vision embedding model that shares the same embedding space as [nomic-embed-text-v1.5](https://huggingface.co/nomic-ai/nomic-embed-text-v1.5). All Nomic Embed Text models are now **multimodal**! | Name | Imagenet 0-shot | Datacomp (Avg. 38) | MTEB | | :-------------------------------:| :-------------- | :----------------- | :------: | | `nomic-embed-vision-v1.5` | **71.0** | **56.8** | 62.28 | | `nomic-embed-vision-v1` | 70.7 | 56.7 | **62.39** | | OpenAI CLIP ViT B/16 | 68.3 | 56.3 | 43.82 | | Jina CLIP v1 | 59.1 | 52.2 | 60.1 | ## Hosted Inference API The easiest way to get started with Nomic Embed is through the Nomic Embedding API. Generating embeddings with the `nomic` Python client is as easy as ```python from nomic import embed import numpy as np output = embed.image( images=[ "image_path_1.jpeg", "image_path_2.png", ], model='nomic-embed-vision-v1.5', ) print(output['usage']) embeddings = np.array(output['embeddings']) print(embeddings.shape) ``` For more information, see the [API reference](https://docs.nomic.ai/reference/endpoints/nomic-embed-vision) ## Data Visualization Click the Nomic Atlas map below to visualize a 100,000 sample CC3M comparing the Vision and Text Embedding Space! [![image/webp](https://cdn-uploads.huggingface.co/production/uploads/607997c83a565c15675055b3/aKJogjDQ4BBiYGRIIrFMa.webp)](https://atlas.nomic.ai/data/nomic-multimodal-series/cc3m-100k-image-bytes-v15/map) ## Training Details We align our vision embedder to the text embedding by employing a technique similar to [LiT](https://arxiv.org/abs/2111.07991) but instead lock the text embedder! For more details, see the Nomic Embed Vision Technical Report (soon to be released!) and corresponding [blog post](https://blog.nomic.ai/posts/nomic-embed-vision) Training code is released in the `contrastors` [repository](https://github.c...

Source context: 95013 downloads · 230 likes · Pipeline image-feature-extraction · Library transformers · Repo nomic-ai/nomic-embed-vision-v1.5