﻿# Jina embeddings v4: dense and multi-vector outputs are different index contracts

Jina embeddings v4 can expose dense and multi-vector representations, but those outputs are different index contracts rather than interchangeable serialization options.

Author: Retrivium team
Updated: 2026-11-03
Canonical URL: https://retrivium.ai/journal/jina-v4-dense-multivector-task-contract/
Language: en

Jina embeddings v4 can expose dense and multi-vector representations, but those outputs are different index contracts rather than interchangeable serialization options. Choose the task and representation before ingesting a mixed text-and-image corpus.

## Separate the two output shapes

The [author model card](https://huggingface.co/jinaai/jina-embeddings-v4) distinguishes a single-vector representation from late-interaction multivectors. A dense index expects one vector for its declared item representation; a token matrix needs a compatible storage and scoring path. Flattening or averaging that matrix changes the method. Such a transformation can be studied as another baseline, but it must not be described as preserving the original multi-vector scorer automatically.

## Preserve the selected task adapter

The same model family supports different task-oriented settings. Record which task was selected when creating document and query embeddings. A retrieval configuration and a text-matching configuration should not be mixed solely because their outputs have compatible dimensions. The [technical report](https://arxiv.org/abs/2506.18902) provides context for the model's intended representations; local acceptance still needs the actual preprocessing and scorer used by the application.

## Keep text and page images auditable

For visual documents, preserve the source page and the image preprocessing that reached the encoder. For extracted text, retain the actual serialized content and its document identity. A page-image representation may contain evidence absent from OCR text, while the text representation can reflect parser mistakes. Comparing them without retaining these inputs can incorrectly attribute an extraction difference to the embedding model or the retrieval algorithm.

| Representation | Required downstream decision |
|---|---|
| Dense vector | Metric, dimensionality and one-vector item identity |
| Multi-vector matrix | Token retention and late-interaction scorer |
| Mixed modalities | Stable source IDs and preprocessing record |

## Build a cross-modal fixture

Use an illustrative document set with a chart label visible on the page, a prose answer and a table fact. Prepare questions for each evidence type. Compare only representations the selected pipeline genuinely supports. Save candidate IDs and final scores rather than expecting one shared threshold across dense and multi-vector search. Their numerical outputs need not carry the same scale or relevance interpretation.

## Distinguish API examples from local execution

The [official embedding API reference](https://jina.ai/embeddings/) documents task and output choices for its interface. A local checkpoint wrapper may expose them differently. Preserve the actual arguments and returned shape instead of assuming that copying an API field name configures another library. If the local route requires model-specific preprocessing, retain its version and input fixture. Successful JSON parsing alone is not a compatibility check for the index that receives the vectors.

## Version the representation contract

Store model revision, task, output type, metric and preprocessing with each index generation. A migration from dense to multi-vector retrieval needs another schema and quality comparison, not merely a new label on existing data. Keep an original small fixture for score and source-identity checks. The useful outcome explains which representation supports which evidence tasks, without inventing a universal quality, memory or speed advantage for either output form.

Related reading: [Embedding dimensions: calculating index memory](/journal/embedding-dimensions-memory/); [Embeddings and rerankers: other tasks for an idle GPU](/journal/embeddings-rerankers-gpu/).
