Model reference · open weights
jina-embeddings-omni-small is an open-weight embedding model from jinaai. jina-embeddings-v5-omni-small (BF16) weighs 3.3 GB; the smallest configuration that runs it is RTX 3060 12 GB.
Summary of the jinaai/jina-embeddings-v5-omni-small model card, 2026-10-01
What it is
| Released by | jinaai |
|---|---|
| Released | 2026-04-01 |
| Parameters | 1.6B |
| VRAM | 3.3 GB for the weights |
What it runs on
| Card | Runs | Memory |
|---|---|---|
| RTX 3060 12 GB | fits | 11.6 GB |
| RTX 4060 Ti 16 GB | fits | 15.4 GB |
| RTX 3090 24 GB | fits | 23.4 GB |
| RTX 4090 24 GB | fits | 23.4 GB |
| RTX 5090 32 GB | fits | 31.0 GB |
| L40S 48 GB | fits | 44.0 GB |
| A100 80 GB | fits | 78.2 GB |
| H100 80 GB | fits | 78.1 GB |
| RTX PRO 6000 Blackwell 96 GB | fits | 93.8 GB |
| DGX Spark (GB10) 128 GB unified | fits | 107 GB |
| H200 141 GB | fits | 138 GB |
| B200 180 GB | fits | 176 GB |
From the model card
Average score vs. parameter count across image (MIEB-Lite), video (MMEB-V), and audio (MAEB) benchmarks — jina-v5-omni-nano and jina-v5-omni-small define the open-weight frontier (Table 1 in the ArXiv report).
jina-embeddings-v5-omni-small is a multimodal embedding model that accepts text, images, video, and audio and produces embeddings in a shared vector space aligned with the text-only jinaai/jina-embeddings-v5-text-small — so you can index with text and query with any modality, no reindexing. For a more compact alternative, see jinaai/jina-embeddings-v5-omni-nano.
This is the base repository — it holds all task adapters (retrieval, classification, clustering, text-matching). For a single task, pre-merged task-specific variants are also available:
jinaai/jina-embeddings-v5-omni-small-retrieval — query–document semantic search and RAG (raw-transformers users prepend Query: / Document: to text; sentence-transformers users call encode_query() / encode_document()).jinaai/jina-embeddings-v5-omni-small-classification — assigning labels via embedding similarity — zero-shot and few-shot classification across modalities.jinaai/jina-embeddings-v5-omni-small-clustering — grouping semantically similar items — topic discovery, deduplication, exploratory analysis.jinaai/jina-embeddings-v5-omni-small-text-matching — symmetric pairwise similarity scoring — STS, paraphrase and near-duplicate detection.| Feature | Value |
|---|---|
| Parameters | ~1.74B |
| Embedding Dimension | 1024 |
| Supported Tasks | retrieval, classification, clustering, text-matching |
| Max Sequence Length | 32768 |
| Pooling Strategy | Last-token |
| Supported Inputs | text, image, video, audio |
| Supported File Types | images: .jpg, .jpeg, .png, .gif, .webp, .bmp, .tif, .tiff, .avif, .heic, .svg; video: .mp4, .avi, .mov, .mkv, .webm, .flv, .wmv; audio: .wav, .mp3, .flac, .ogg, .m4a, .opus; documents: .pdf |
| Matryoshka Dimensions | 32, 64, 128, 256, 512, 768, 1024 |
The fastest way to use v5-omni in production. Elastic Inference Service (EIS) provides managed embedding inference with built-in scaling, so you can generate embeddings directly within your Elastic deployment.
# Retrieve the configuration of the preconfigured omni-small inference endpoint
GET /_inference/embedding/.jina-embeddings-v5-omni-small
# Generate an embedding for a single piece of text using the predefined endpoint
POST _inference/embedding/.jina-embeddings-v5-omni-small
{
"input": [
"This is a test"
]
}
# Fuse a text description and an image into a single embedding via a multimodal content block
POST _inference/embedding/.jina-embeddings-v5-omni-small
{
"input": [
{
"content": [
{ "type": "text", "value": "A small blue square" },
{ "type": "image", "format": "base64", "value": "" }
]
}
]
}
# Create a custom endpoint that truncates omni-small embeddings to 32 dimensions
PUT _inference/embedding/jina-omni-small-32d
{
"service": "elastic",
"service_settings": {
"model_id": "jina-embeddings-v5-omni-small",
"dimensions": 32
}
}
See the Elastic Inference Service documentation for setup details.
# core
pip install transformers torch pillow numpy
# Optional — install only the extras for the modalities you actually use:
pip install librosa soundfile # audio decoding
pip install torchcodec # video decoding for proc(videos=path) (transformers default backend)
pip install av # video decoding for SentenceTransformer model.encode("clip.mp4")
pip install pdf2image pypdfium2 # PDF rendering
pip install cairosvg pillow # SVG rendering
pip install "vllm==0.20.1" # high-throughput serving (validated)
pip install sentence-transformers # one-call multimodal API
For minimum versions see the Requirements section below (transformers >= 4.57, torch >= 2.5; vLLM path validated with vllm == 0.20.1).
from PIL import Image
import librosa, torch
from transformers import AutoModel, AutoProcessor, WhisperFeatureExtractor
repo = "jinaai/jina-embeddings-v5-omni-small"
model = AutoModel.from_pretrained(repo, trust_remote_code=True, default_task="retrieval").eval()
proc = AutoProcessor.from_pretrained(repo, trust_remote_code=True)
# model.embed(**inputs) returns L2-normalized last-token embeddings.
t_vec = model.embed(**proc(text="Query: Which planet is known as the Red Planet?", return_tensors="pt").to(model.device))
i_vec = model.embed(**proc(images=Image.open("photo.jpg"), text="", return_tensors="pt").to(model.device))
v_vec = model.embed(**proc(videos="clip.mp4", text="", return_tensors="pt").to(model.device))
# Needs torchcodec or torchvision. On Windows or envs without either, use model.encode("clip.mp4") from the sentence-transformers section below (av-only, no codec libs required).
# Audio has no string placeholder — build the prompt from config. Size the
# audio run from the REAL Whisper frame mask: the feature extraQuoted from the model card on Hugging Face. The full card is behind the Hugging Face link above.