Model reference · open weights
jina-embeddings-omni-nano-text-matching 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
| Maker | jinaai |
|---|---|
| Type | Embedding models |
| Task | Embeddings |
| Runs with | llama.cpp |
| Based on | jinaai/jina-embeddings-v5-omni-nano-text-matching |
| Released | 2026-05-03 |
| Popularity | 140 downloads / month |
| Licence | Commercial licence needed |
About
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-text-matching 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-text-matching 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-text-matching-GGUF.
This is the text-matching-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 | text-matching |
| 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-text-matching-F16.gguf (and 13 *-Q*.gguf quants) | text-tower GGUF (with vocab + tokenizer) |
jina-embeddings-v5-omni-nano-text-matching-vision-mmproj-F16.gguf | vision multimodal projector (Qwen3-VL ViT + merger) |
jina-embeddings-v5-omni-nano-text-matching-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-text-matching-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. Inputs are 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 — `--pooli
From the published model card. Full card on the HuggingFace links in the sidebar.
How it works
Using it via the API
Once AxForge deploys jina-embeddings-omni-nano-text-matching for you, it answers on the OpenAI-compatible API — the same base URL and keys as every other model. (jina-embeddings-omni-nano-text-matching 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-text-matching","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.