Model reference · open weights
jina-embeddings-omni-nano-classification is an open-weight embedding model from jinaai. jina-embeddings-v5-omni-nano-classification-GGUF (GGUF) weighs 157 MB; the smallest configuration that runs it is RTX 3060 12 GB.
Summary of the jinaai/jina-embeddings-v5-omni-nano-classification-GGUF model card, 2026-10-01
What it is
| Released by | jinaai |
|---|---|
| Released | 2026-05-03 |
| VRAM | 157 MB 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 |
Builds
| Build | Params | Precision | Weights | Smallest setup |
|---|---|---|---|---|
| jina-embeddings-v5-omni-nano-classification-GGUF (above) ↗ 14 builds: IQ1_S 99 MB … F16 431 MB |
— | GGUF | 157 MB | RTX 3060 12 GB |
| jina-embeddings-v5-omni-nano-classification-mlx ↗ | 948M | MLX | 1.9 GB | RTX 3060 12 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).
GGUF + multimodal-projector build of
jinaai/jina-embeddings-v5-omni-nano-classification for
llama.cpp. Accepts text,
images, video, and audio and produces 768-dim embeddings in the
same vector space as the torch reference and as
jinaai/jina-embeddings-v5-text-nano-classification at the same task —
index with text and query with any modality, no reindexing. For higher performance at a larger size, see jinaai/jina-embeddings-v5-omni-small-classification-GGUF.
This is the classification-targeted variant of the jina-embeddings-v5-omni-nano GGUF family. The umbrella with all GGUF variants and cross-repo benchmarks is jina-ai/jina-embeddings-v5-omni-gguf.
| Feature | Value |
|---|---|
| Parameters | ~0.95B (text + vision + audio towers) |
| Embedding Dimension | 768 |
| Supported Tasks | classification |
| Max Sequence Length | 8192 |
| 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 |
| Quantization | text: F16 + 13 imatrix-calibrated int-quant levels; mmprojs: F16 |
Cross-repo docs: benchmarks (NDCG@5 on NanoBEIR, tokens/sec, peak VRAM, file size), the full per-variant numerical-parity tables, and runtime caveats live in the v5-omni-gguf umbrella.
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-nano inference endpoint
GET /_inference/embedding/.jina-embeddings-v5-omni-nano
# Generate an embedding for a single piece of text using the predefined endpoint
POST _inference/embedding/.jina-embeddings-v5-omni-nano
{
"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-nano
{
"input": [
{
"content": [
{ "type": "text", "value": "A small blue square" },
{ "type": "image", "format": "base64", "value": "" }
]
}
]
}
# Create a custom endpoint that truncates omni-nano embeddings to 32 dimensions
PUT _inference/embedding/jina-omni-nano-32d
{
"service": "elastic",
"service_settings": {
"model_id": "jina-embeddings-v5-omni-nano",
"dimensions": 32
}
}
See the Elastic Inference Service documentation for setup details.
| File | Purpose |
|---|---|
jina-embeddings-v5-omni-nano-classification-F16.gguf (and 13 *-Q*.gguf quants) | text-tower GGUF (with vocab + tokenizer) |
jina-embeddings-v5-omni-nano-classification-vision-mmproj-F16.gguf | vision multimodal projector (Qwen3-VL ViT + merger) |
jina-embeddings-v5-omni-nano-classification-audio-mmproj-F16.gguf | audio multimodal projector (Qwen2.5-Omni audio encoder + Linear) |
llama.cpp loads --mmproj to enable image / video / audio inputs on top
of the text GGUF. The two mmprojs are independent — load whichever
modality you need, or pass --mmproj twice to serve both from one
process (see "Selective modality loading" below).
This model relies on the Jina v5 omni patches (audio chunked attention,
qwen3vl video temporal-pair, encoder combined-decode, etc.) — they are
not yet upstream. Build from the feat-v5-omni fork:
git clone https://github.com/jina-ai/llama.cpp.git
cd llama.cpp
git checkout feat-v5-omni
cmake -B build && cmake --build build --config Release -j
For CUDA: pass -DGGML_CUDA=ON to the configure step.
H100 / Hopper note. On Hopper GPUs (H100, H200), set
GGML_CUDA_DISABLE_GRAPHS=1before launchingllama-server. Without it, the CUDA-graph capture/replay path crashes withcudaMemcpyAsync … illegal instructionduring embedding extraction. CPU, Metal, Vulkan, and pre-Hopper CUDA (e.g. L4, A100) are unaffected.
llama-embedding./build/bin/llama-embedding \
-hf jinaai/jina-embeddings-v5-omni-nano-classification-GGUF:Q4_K_M \
--pooling last --embd-normalize 2 \
-p "A cute cat sitting on a mat."
The -hf shortcut downloads + caches the requested quant from this repo
on first use. Q5_K_M is the recommended default for nano; Q8_0 for highest
fidelity; IQ2_*/IQ1_* for very tight memory budgets.
No prefix convention. Classification text is embedded verbatim — no Query: / Document: prefixes are needed (unlike the retrieval variant). Both sides of any text pair go in unprefixed.
No custom pooling or padd
Quoted from the model card on Hugging Face. The full card is behind the Hugging Face link above.
How it works