Model reference · open weights

jina-embeddings-omni-nano-clustering

Available as managed deployment Licence fee Embeddings jinaai Embeddings 2 variants 189 dl/mo

jina-embeddings-omni-nano-clustering is an open-weight embedding model from jinaai. AxForge deploys and operates it for you on dedicated EU-owned hardware — with the licence handled where one is required.

Available as managed deployment — configured and operated for you on dedicated EU hardware, quoted per deployment.

What it is

Makerjinaai
TypeEmbedding models
TaskEmbeddings
Runs withllama.cpp
Based onjinaai/jina-embeddings-v5-omni-nano-clustering
Released2026-05-03
Popularity189 downloads / month
LicenceCommercial licence needed

About

What jina-embeddings-omni-nano-clustering is

jina-embeddings-v5-omni-nano-clustering-GGUF: Clustering-Targeted Omni Embedding (Nano) — GGUF

ArXiv | Blog

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).

Model Overview

GGUF + multimodal-projector build of jinaai/jina-embeddings-v5-omni-nano-clustering 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-clustering 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-clustering-GGUF.

This is the clustering-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.

FeatureValue
Parameters~0.95B (text + vision + audio towers)
Embedding Dimension768
Supported Tasksclustering
Max Sequence Length8192
Pooling StrategyLast-token
Supported Inputstext, image, video, audio
Supported File Typesimages: .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 Dimensions32, 64, 128, 256, 512, 768
Quantizationtext: 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.

Via Elastic Inference Service

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.

Files in this repo

FilePurpose
jina-embeddings-v5-omni-nano-clustering-F16.gguf (and 13 *-Q*.gguf quants)text-tower GGUF (with vocab + tokenizer)
jina-embeddings-v5-omni-nano-clustering-vision-mmproj-F16.ggufvision multimodal projector (Qwen3-VL ViT + merger)
jina-embeddings-v5-omni-nano-clustering-audio-mmproj-F16.ggufaudio 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).

Install llama.cpp (with multimodal patches)

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=1 before launching llama-server. Without it, the CUDA-graph capture/replay path crashes with cudaMemcpyAsync … illegal instruction during embedding extraction. CPU, Metal, Vulkan, and pre-Hopper CUDA (e.g. L4, A100) are unaffected.

Quickstart — text via llama-embedding

./build/bin/llama-embedding \
    -hf jinaai/jina-embeddings-v5-omni-nano-clustering-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. Clustering 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 padding code needed — --pooling last and --embedding are the

From the published model card. Full card on the HuggingFace links in the sidebar.

How it works

How embedding models work

Your textsentence / documentEncodermaps meaningVectorlist of numbersAn embedding model turns text into a vector, so similar meanings sit close together — the basis of search and RAG.

Using it via the API

Call it like any OpenAI endpoint

Once AxForge deploys jina-embeddings-omni-nano-clustering for you, it answers on the OpenAI-compatible API — the same base URL and keys as every other model. (jina-embeddings-omni-nano-clustering below is illustrative; you get the exact model name on deployment.)

$ curl -sS https://api.axforge.ai/v1/embeddings \
  -H "Authorization: Bearer $AXFORGE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"jina-embeddings-omni-nano-clustering","input":"text to embed"}'

Create an account — your API key is available in the console. 5M tokens/month currently included with every new account at launch.

© 2026 AxForge · EU-hosted AI infrastructure Pricing Docs Trust Privacy Terms