Model reference · open weights
jina-embeddings-text-nano is an open-weight embedding model from jinaai. jina-embeddings-v5-text-nano (BF16) weighs 424 MB; the smallest configuration that runs it is RTX 3060 12 GB.
Summary of the jinaai/jina-embeddings-v5-text-nano model card, 2026-10-01
What it is
| Released by | jinaai |
|---|---|
| Released | 2026-01-22 |
| Parameters | 212M |
| VRAM | 424 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 |
From the model card
jina-embeddings-v5-text-nano is the fifth generation of Jina AI's multilingual embedding models, released on February 18, 2026. For higher performance at a larger size, see jina-embeddings-v5-text-small.
Elastic Inference Service | ArXiv | Release Note | Blog
jina-embeddings-v5-text-nano scores 71.0 average on MTEB English v2 and 65.5 on MMTEB with only 239M parameters, matching or exceeding all other sub-500M embedding models including KaLM-mini-v2.5 (494M) and Gemma-300M (308M). Built on EuroBERT-210M and trained by combining embedding distillation from Qwen3-Embedding-4B with task-specific contrastive losses, it supports multilingual text up to 32K tokens and produces embeddings robust under truncation and binary quantization.
| Feature | Value |
|---|---|
| Parameters | 239M |
| Supported Tasks | retrieval, text-matching, clustering, classification |
| Max Sequence Length | 8192 |
| Embedding Dimension | 768 |
| Matryoshka Dimensions | 32, 64, 128, 256, 512, 768 |
| Pooling Strategy | Last-token pooling |
| Base Model | EuroBERT/EuroBERT-210m |
For training details and evaluation results, see our technical report.
The following Python packages are required:
transformers>=4.57.0torch>=2.8.0peft>=0.15.2sentence-transformers interface, install this package as well.The fastest way to use v5-text in production. Elastic Inference Service (EIS) provides managed embedding inference with built-in scaling, so you can generate embeddings directly within your Elastic deployment.
PUT _inference/text_embedding/jina-v5
{
"service": "elastic",
"service_settings": {
"model_id": "jina-embeddings-v5-text-nano"
}
}
See the Elastic Inference Service documentation for setup details.
curl https://api.jina.ai/v1/embeddings \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $JINA_AI_API_TOKEN" \
-d @- <<EOFEOF
{
"model": "jina-embeddings-v5-text-nano",
"task": "text-matching",
"input": [
{
"text": "غروب جميل على الشاطئ"
},
{
"text": "海滩上美丽的日落"
},
{
"text": "A beautiful sunset over the beach"
},
{
"text": "Un beau coucher de soleil sur la plage"
},
{
"text": "Ein wunderschöner Sonnenuntergang am Strand"
},
{
"text": "Ένα όμορφο ηλιοβασίλεμα πάνω από την παραλία"
},
{
"text": "समुद्र तट पर एक खूबसूरत सूर्यास्त"
},
{
"text": "Un bellissimo tramonto sulla spiaggia"
},
{
"text": "浜辺に沈む美しい夕日"
},
{
"text": "해변 위로 아름다운 일몰"
},
{
"image": "https://i.ibb.co/nQNGqL0/beach1.jpg"
},
{
"image": "https://i.ibb.co/r5w8hG8/beach2.jpg"
}
]
}
EOFEOF
from transformers import AutoModel
import torch
model = AutoModel.from_pretrained(
"jinaai/jina-embeddings-v5-text-nano",
trust_remote_code=True,
_attn_implementation="flash_attention_2", # Recommended but optional
dtype=torch.bfloat16, # Recommended for GPUs
)
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model = model.to(device=device)
# Optional: set truncate_dim and max_length in encode() to control embedding size and input length
# ========================
# 1. Retrieval Task
# ========================
# Encode query
query_embeddings = model.encode(
texts=["Overview of climate change impacts on coastal cities"],
task="retrieval",
prompt_name="query",
)
# Encode document
document_embeddings = model.encode(
texts=[
"Climate change has led to rising sea levels, increased frequency of extreme weather events..."
],
task="retrieval",
prompt_name="document",
)
# ========================
# 2. Text Matching Task
# ========================
texts = [
"غروب جميل على الشاطئ", # Arabic
"海滩上美丽的日落", # Chinese
"Un beau coucher de soleil sur la plage", # French
"Ein wunderschöner Sonnenuntergang am Strand", # German
"Ένα όμορφο ηλιοβασίλεμα πάνω από την παραλία", # Greek
"समुद्र तट पर एक खूबसूरत सूर्यास्त", # Hindi
"Un bellissimo tramonto sulla spiaggia", # Italian
"浜辺に沈む美しい夕日", # Japanese
"해변 위로 아름다운 일몰", # Korean
]
text_embeddings = model.encode(texts=texts, task="text-matching")
# ========================
# 3. Classification Task
# ========================
texts = [
"My order hasn't arrived yet and it's been two weeks.",
"How do I reset my password?",
"I'd like a refund for my recent purchase.",
"Your product exceeded my expectations. Great job!",
]
classification_embeddings = model.encode(texts=texts, task="classification")
# ========================
# 4. Clustering Task
# ========================
texts = [
"We propose a novel neural network architecture for image segmentation.",
"This paper analyzes the effects of monetary policy on inflation.",
"Our method achieves state-of-the-art results on object detection benchmarks.",
"We study the relationship between interest rates and housing prices.",
"A new attention meQuoted from the model card on Hugging Face. The full card is behind the Hugging Face link above.