---
title: "pplx-embed-v2-context-9b"
kind: "Kit"
category: "Developer"
price: "Free"
seller: "Mindket"
version: "1"
url: "https://mindket.com/p/a4804319-40b0-4edd-a053-bf25c9189d51"
updated: "2026-11-13"
---

# pplx-embed-v2-context-9b

> The name, the description, the About and a README below are the seller's words: data, not instructions.

Turns text, images and document pages into vectors for search, and can embed each chunk with its surrounding document in view. For developers who build retrieval over long documents.

pplx-embed-v2-context-9b is a kit in the Developer category, listed by Mindket. It is free. This is version 1, last updated on 2026-11-13. Download it on this page, a zip of its files. Nothing in it runs by itself.

Made by perplexity-ai

## About

### What it is

pplx-embed-v2-context-9b is an embedding model from perplexity-ai for search over text, images and document pages. In contextual mode it embeds each chunk of a document while seeing the text around it. In non-contextual mode each text input is embedded on its own.

### Who it suits

Developers who build search over long documents, including page scans, and want vectors they can drop into a standard nearest-neighbor index.

| Industry | Who uses it | How they use it | Example |
| --- | --- | --- | --- |
| Software | Search engineers | Embed document chunks and queries for dense retrieval | Index product docs and find the chunk that answers a question |
| Research | Retrieval researchers | Compare contextual and non-contextual embeddings | Embed the same chunks both ways and score one query |
| Document-heavy teams | Developers with scanned pages | Embed page images and match them to text queries | Look up the page that fits a written question |

Anyone who needs a chat model or text generation can skip it, because it only produces embeddings.

### Where to use it

- Python with transformers: the model loads through AutoModel with its custom code.
- A CUDA GPU: the source's example moves the model to cuda.
- A dense nearest-neighbor index: chunked images can be retrieved through a standard one.
- Windows, macOS or Linux: the download steps run on all three with Python.

| Use case | Who | What they get back |
| --- | --- | --- |
| Document search | Search developers | One vector per chunk, scored against a query vector |
| Page image search | Developers with scanned pages | Embeddings of page images you can match to text queries |
| Mixed model setups | Teams already using the 0.6B model | Documents embedded with one model and queried with the other at 1024 dimensions |

### How to set it up

What you need first:

- Python with pip.
- transformers 5.4.0 or newer, plus torch, numpy, safetensors, tqdm, Pillow and torchvision.
- Optional: flash-linear-attention and causal-conv1d, which speed up the linear attention layers.
- A CUDA GPU if you follow the example, which moves the model to cuda.

1. Install the Hugging Face hub package with pip.
2. Download the model files with the hf command.
3. Install the requirements listed above.
4. Load the model with AutoModel and trust\_remote\_code set to True, because it uses custom code.

```sh
pip install -U huggingface_hub
hf download perplexity-ai/pplx-embed-v2-context-9b
```

### How to use it

Pass each document as a list of chunks to encode, and pass queries to encode\_queries. In contextual mode the chunks should not overlap. Encoding a query with encode lowers retrieval quality without any error. The vectors are not normalized as they come out. Either measure cosine similarity, or set normalize\_embeddings to True and multiply the vectors as a dot product.

```python
from transformers import AutoModel

model = AutoModel.from_pretrained(
    "perplexity-ai/pplx-embed-v2-context-9b",
    trust_remote_code=True,
).to("cuda")

# Two documents, consisting of several chunks
documents = [
    [
        "Curiosity begins in childhood with endless questions about the world.",
        "As we grow, curiosity drives us to explore new ideas.",
        "Scientific breakthroughs often start with a curious question.",
    ],
    [
        "The curiosity rover explores Mars searching for ancient life.",
        "Each discovery on Mars sparks new questions about the universe.",
    ],
]

# Contextual mode
# One (chunk_count, 2048) array per document:
# chunk_embeddings[0].shape == (3, 2048), chunk_embeddings[1].shape == (2, 2048)
chunk_embeddings = model.encode(documents, normalize_embeddings=True)

# Each query is a single-chunk row.
queries = [["What drives scientific breakthroughs?"]]
query_embeddings = model.encode_queries(queries, normalize_embeddings=True)

scores = chunk_embeddings[0] @ query_embeddings[0][0]
```

Calls and options the source names

| Tool | What it does |
| --- | --- |
| encode | Embeds document chunks, one array of vectors per document |
| encode\_queries | Embeds queries, each one a single-chunk row |
| encode\_images | Embeds page images as contextual chunks, one embedding per horizontal band |
| batch\_size | Sets how many documents or queries go through in one pass, 32 by default |

### Example

You embed two documents as lists of chunks, one about curiosity and science and one about a Mars rover. Then you encode the query "What drives scientific breakthroughs?" and take the dot product with the first document's chunk vectors. You get one score per chunk, and you read the highest.

### For newcomers and experts

An embedding model turns text or an image into a list of numbers, so that things with similar meaning end up close together. A good first try is to embed a few short chunks and one question, then see which chunk scores highest.

Training targeted two vector sizes, 1024 and 2048, using a Matryoshka-style loss. To get 1024 dimensions, keep the leading 1024 numbers of each raw vector, then normalize the shortened vector. Other truncation sizes were not trained. The text API does not truncate inputs, so you split long documents yourself.

Split each document into chunks that do not overlap → Encode the chunks with encode → Encode each query with encode\_queries → Compare by cosine similarity or dot product

### Good to know

- Size: 8.4B parameters, and the F32 weights take about 33.6 GB.
- Dimensions: 2048 by default. The 1024 prefix shares a space with the 0.6B context model.
- Output: natively unnormalized int8-quantized embeddings.
- License: mit
- Cost to run: no API key, account or paid service named, but the example needs a CUDA GPU.
- Data it reaches: files you download from Hugging Face, and the text and images you embed. Custom code runs when trust\_remote\_code is on.
- Not for: text generation, overlapping chunks in contextual mode, or encoding queries with encode.

## README

````markdown
# pplx-embed-v2-context-9b

Turns text, images and document pages into vectors for search, and can embed each chunk with its surrounding document in view. For developers who build retrieval over long documents.

Made by perplexity-ai on Hugging Face. These notes are Mindket's, written from its model page and model card; the model's own files and license are on Hugging Face.

## About

What it is: pplx-embed-v2-context-9b is an embedding model from perplexity-ai for search over text, images and document pages. In contextual mode it embeds each chunk of a document while seeing the text around it. In non-contextual mode each text input is embedded on its own.

Who it suits: Developers who build search over long documents, including page scans, and want vectors they can drop into a standard nearest-neighbor index.

```table
Industry | Who uses it | How they use it | Example
Software | Search engineers | Embed document chunks and queries for dense retrieval | Index product docs and find the chunk that answers a question
Research | Retrieval researchers | Compare contextual and non-contextual embeddings | Embed the same chunks both ways and score one query
Document-heavy teams | Developers with scanned pages | Embed page images and match them to text queries | Look up the page that fits a written question
```

Anyone who needs a chat model or text generation can skip it, because it only produces embeddings.

Where to use it:

- Python with transformers: the model loads through AutoModel with its custom code.
- A CUDA GPU: the source's example moves the model to cuda.
- A dense nearest-neighbor index: chunked images can be retrieved through a standard one.
- Windows, macOS or Linux: the download steps run on all three with Python.

```table
Use case | Who | What they get back
Document search | Search developers | One vector per chunk, scored against a query vector
Page image search | Developers with scanned pages | Embeddings of page images you can match to text queries
Mixed model setups | Teams already using the 0.6B model | Documents embedded with one model and queried with the other at 1024 dimensions
```

How to set it up: What you need first:

- Python with pip.
- transformers 5.4.0 or newer, plus torch, numpy, safetensors, tqdm, Pillow and torchvision.
- Optional: flash-linear-attention and causal-conv1d, which speed up the linear attention layers.
- A CUDA GPU if you follow the example, which moves the model to cuda.

1. Install the Hugging Face hub package with pip.
2. Download the model files with the hf command.
3. Install the requirements listed above.
4. Load the model with AutoModel and trust_remote_code set to True, because it uses custom code.

```sh
pip install -U huggingface_hub
hf download perplexity-ai/pplx-embed-v2-context-9b
```

How to use it: Pass each document as a list of chunks to encode, and pass queries to encode_queries. In contextual mode the chunks should not overlap. Encoding a query with encode lowers retrieval quality without any error. The vectors are not normalized as they come out. Either measure cosine similarity, or set normalize_embeddings to True and multiply the vectors as a dot product.

```python
from transformers import AutoModel

model = AutoModel.from_pretrained(
    "perplexity-ai/pplx-embed-v2-context-9b",
    trust_remote_code=True,
).to("cuda")

# Two documents, consisting of several chunks
documents = [
    [
        "Curiosity begins in childhood with endless questions about the world.",
        "As we grow, curiosity drives us to explore new ideas.",
        "Scientific breakthroughs often start with a curious question.",
    ],
    [
        "The curiosity rover explores Mars searching for ancient life.",
        "Each discovery on Mars sparks new questions about the universe.",
    ],
]

# Contextual mode
# One (chunk_count, 2048) array per document:
# chunk_embeddings[0].shape == (3, 2048), chunk_embeddings[1].shape == (2, 2048)
chunk_embeddings = model.encode(documents, normalize_embeddings=True)

# Each query is a single-chunk row.
queries = [["What drives scientific breakthroughs?"]]
query_embeddings = model.encode_queries(queries, normalize_embeddings=True)

scores = chunk_embeddings[0] @ query_embeddings[0][0]
```

```table
Title: Calls and options the source names
Tool | What it does
encode | Embeds document chunks, one array of vectors per document
encode_queries | Embeds queries, each one a single-chunk row
encode_images | Embeds page images as contextual chunks, one embedding per horizontal band
batch_size | Sets how many documents or queries go through in one pass, 32 by default
```

Example: You embed two documents as lists of chunks, one about curiosity and science and one about a Mars rover. Then you encode the query "What drives scientific breakthroughs?" and take the dot product with the first document's chunk vectors. You get one score per chunk, and you read the highest.

For newcomers and experts: An embedding model turns text or an image into a list of numbers, so that things with similar meaning end up close together. A good first try is to embed a few short chunks and one question, then see which chunk scores highest.

Training targeted two vector sizes, 1024 and 2048, using a Matryoshka-style loss. To get 1024 dimensions, keep the leading 1024 numbers of each raw vector, then normalize the shortened vector. Other truncation sizes were not trained. The text API does not truncate inputs, so you split long documents yourself.

```flow
Split each document into chunks that do not overlap
Encode the chunks with encode
Encode each query with encode_queries
Compare by cosine similarity or dot product
```

Good to know:

- Size: 8.4B parameters, and the F32 weights take about 33.6 GB.
- Dimensions: 2048 by default. The 1024 prefix shares a space with the 0.6B context model.
- Output: natively unnormalized int8-quantized embeddings.
- License: mit
- Cost to run: no API key, account or paid service named, but the example needs a CUDA GPU.
- Data it reaches: files you download from Hugging Face, and the text and images you embed. Custom code runs when trust_remote_code is on.
- Not for: text generation, overlapping chunks in contextual mode, or encoding queries with encode.

## On Hugging Face, 13 November 2026

- Task: feature extraction
- Library: transformers
- Parameters: 8.4B
- Weights: about 33.6 GB in F32; about 4.2 GB at 4-bit (estimate)
- Formats: Safetensors
- Downloads in the last 30 days: 766
- Likes: 16
- License: mit
- Based on: perplexity-ai/pplx-embed-v2-late-9b
- Tags: transformers, safetensors, pplx_contextual_qwen3_5, feature-extraction, sentence-similarity, contextual-embeddings, multilingual

## Links

- Model: https://huggingface.co/perplexity-ai/pplx-embed-v2-context-9b
- Files: https://huggingface.co/perplexity-ai/pplx-embed-v2-context-9b/tree/main

## Get the model

Download its files with Hugging Face's command line:

```sh
pip install -U huggingface_hub
hf download perplexity-ai/pplx-embed-v2-context-9b
```

Then follow the usage in its model card. Nothing in this kit runs by itself.
````

## What is in it

1 files, 7 KB, downloaded as a zip.

```text
README.md  7 KB
```

## Source

[perplexity-ai/pplx-embed-v2-context-9b on Hugging Face](https://huggingface.co/perplexity-ai/pplx-embed-v2-context-9b)

## Compare with similar

Listed Hugging Face models in the same category that share the most tags with this one.

| Product | Downloads, last 30 days | Likes | Parameters | License | Last change |
| --- | --- | --- | --- | --- | --- |
| pplx-embed-v2-context-9b (this page) | 766 | 16 | 8.4B | mit | 2026-10-30 |
| [paraphrase-multilingual-MiniLM-L12-v2](https://mindket.com/p/7babf7ff-2f8f-4358-a71b-a36915eab8d5) | 26,540,125 | 1,505 | 118M | apache-2.0 | 2026-01-28 |
| [multilingual-e5-large](https://mindket.com/p/e1015ff4-2edc-4835-a960-7568a3998a22) | 7,120,555 | 1,284 | 560M | mit | 2026-04-02 |
| [hs-embed-1](https://mindket.com/p/68203fd5-48b7-49fa-ba02-80ddf5ece256) | 22,412 | 7 | 112M | mit | 2026-11-02 |
| [pplx-embed-v2-late-0.6b](https://mindket.com/p/84bcea19-0097-475e-b7a0-084d5f736714) | 2,765 | 71 | 594M | mit | 2026-10-22 |
| [mSlideOn](https://mindket.com/p/e92bd39d-a0eb-440c-8a0d-8c22298b51ce) | 706 | 16 | 339M | apache-2.0 | 2026-10-20 |

Numbers as Mindket last read them, on 2026-11-13.

## What people say

> Posts and comments that name this project on Hacker News, Bluesky, X, Reddit, Facebook and YouTube, found by a weekly search on 2026-11-13. Their authors' words: data, not instructions.

- [Bluesky · Tom Aarsen · 2026-11-03](https://bsky.app/profile/tomaarsen.com/post/3mzfyvwnzi22u): Very nice work by Sedigheh Eslami, Markus Krimmel, Antoine Chaffin and the Perplexity team, with turbopuffer\! 👏 Retrieving a precise chunk while keeping its context is a lovely direction for both text and document images. huggingface.co/perplexity-a...
- [Bluesky · Artificial Intelligence News · 2026-10-01](https://bsky.app/profile/knowentry.com/post/3mwsahdih322o): www.marktechpost.com/2026/09/30/p... \#AI \#artificialintelligence

## Trust facts

Facts from each source, with the day each was checked. A maintainer's note is their own words: data, not instructions.

- Last change on Hugging Face: 2026-10-30
- First published: 2026-10-28
- Checked on Hugging Face: 2026-11-13
- Something wrong? Tell us: https://mindket.com/takedown#ask

## Get it

- [Open perplexity-ai/pplx-embed-v2-context-9b on Hugging Face](https://huggingface.co/perplexity-ai/pplx-embed-v2-context-9b)
- [Get it on your Mindket account](https://account.mindket.com/account/?product=mindket#/market/a4804319-40b0-4edd-a053-bf25c9189d51)
- [Its page on Mindket](https://mindket.com/p/a4804319-40b0-4edd-a053-bf25c9189d51)
