Task-Adapted Vectors
π Reading Time: ~13 min read
π
Updated 2026-03
Jina Embeddings v3: Task-Specific LoRA Adapters, 8192 Context Length & Matryoshka Dimension Slicing
Analyzing Jina Embeddings v3's 5 task-specific LoRA adapters (retrieval, classification, clustering, code). Matryoshka representation learning for 75% vector storage savings.
π― Jina Embeddings v3 task adapter design
In the past, teams had to switch back and forth between different models (one for retrieval, another for classification). Jina Embeddings v3 supports calling the corresponding lightweight LoRA header immediately during inference through the task parameter:
retrieval.query: Optimized for short search queries to enhance intent capture.retrieval.passage: Specially optimized for long document paragraphs, supporting a maximum of 8192 Tokens.classification: semantic classification adaptation;separation: cluster analysis adaptation.
β‘ Image pulling and Python multi-task vector calculation
export HF_ENDPOINT="https://hf-mirror.net"
huggingface-cli download jinaai/jina-embeddings-v3 \
--local-dir /data/models/jina-embeddings-v3 \
--local-dir-use-symlinks False
from transformers import AutoModel
model = AutoModel.from_pretrained("/data/models/jina-embeddings-v3", trust_remote_code=True)
# Queries and documents use different dedicated task adapters
query_vec = model.encode(["How to achieve efficient quantification of large models?"], task="retrieval.query")
doc_vec = model.encode(["This is an in-depth technical article introducing the principles of AWQ and GGUF quantization algorithms..."], task="retrieval.passage")
print("Query vector dimensions:", query_vec.shape)
print("Document vector dimensions:", doc_vec.shape)