voyage-4-nano
by voyageai
Voyage AI's first open-weight embedding model: 340M params, Matryoshka dimensions down to 256, and a shared space with its larger siblings
voyageai/voyage-4-nanomixpeek://text_extractor@v1/voyageai_voyage4_nano_v1Overview
voyage-4-nano is the smallest member of Voyage AI's voyage-4 family and the first one released with open weights, under Apache 2.0 (the larger voyage-4, voyage-4-lite and voyage-4-large stay API-only). It embeds text at 2048 dimensions by default, with Matryoshka Representation Learning giving 1024, 512 and 256-dimension truncations from the same vector, over a 32,000-token context. The model card's headline feature is a shared embedding space across the whole voyage-4 family: a vector from voyage-4-nano and one from voyage-4-large are directly comparable, so a pipeline can start on the small open model and move to a larger hosted one later without re-embedding the corpus.
On Mixpeek it is a candidate text embedding model for pipelines that want to run locally or self-host rather than call an embedding API, with a lower-dimension option available at query time through the same Matryoshka truncation the model was trained with.
Architecture
Dense transformer, 340M parameters (180M non-embedding, 160M embedding), trained with quantization-aware training so it supports fp32, signed and unsigned int8, and binary output precisions directly. Multilingual. Default output is a 2048-dimension vector; Matryoshka Representation Learning lets a caller truncate to 1024, 512 or 256 dimensions from the same forward pass rather than running a separate model.
Mixpeek SDK Integration
// No extractor parameter takes a Hugging Face model id (checked against
// GET /v1/discovery/extractors), so voyage-4-nano runs on your side and the
// output is upserted through POST /v1/namespaces/{namespace_id}/documents/upsert.
// On Enterprise the other path is to upload the weights instead: POST
// /v1/namespaces/{id}/models accepts the huggingface format and a custom
// plugin loads them.
const res = await fetch(
"https://api.mixpeek.com/v1/namespaces/ns_your_namespace/documents/upsert",
{
method: "POST",
headers: {
Authorization: "Bearer API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
collection_id: "col_your_collection",
documents: [
{
document_id: "doc-00291",
// The vector name has to match a vector index on the collection.
// Pick the dimension (2048, 1024, 512 or 256) at embed time and
// declare that same size on the index.
vectors: { "text-embedding": yourVector },
payload: { source_key: "archive/2026/doc-00291" },
},
],
}),
},
);
// Managed alternative, if this exact model is not the requirement:
// text_extractor@v1 runs intfloat/multilingual-e5-large-instruct
// (1024-d) over a bucket, with no inference of your own.Capabilities
- Open weights (Apache 2.0) for a model in a family whose larger siblings are API-only
- Matryoshka dimensions: 2048 default, truncatable to 1024, 512 or 256 without re-embedding
- 32,000-token context window
- Shared embedding space with voyage-4, voyage-4-lite and voyage-4-large, so vectors are directly comparable across the family
- Native int8 and binary quantization from quantization-aware training, not a post-hoc cast
Use Cases on Mixpeek
Common Pipeline Companions
Explore on Mixpeek
Compare alternatives in this category
Hand-picked tools & platforms compared
Deep-dive technical guide
See how Mixpeek runs models as extractors
Store & search embeddings at scale
Usage-based pricing for pipelines
Compare models, APIs & infrastructure
Specification
Build a pipeline with voyage-4-nano
Add this model to a processing pipeline alongside other extractors. Combine with retrieval stages for end-to-end search.
Run it on your own data, free