File size: 3,189 Bytes
c8bdc84
 
 
4d85ce8
 
 
 
 
 
 
c8bdc84
 
 
e4f1887
 
 
 
 
4de8675
 
 
efc7c0f
 
 
e824453
4de8675
 
 
1acb734
 
 
 
 
 
fed698c
bff32d3
fed698c
bff32d3
4de8675
1d1c179
4de8675
 
1d5d683
4de8675
 
 
 
 
 
1d1c179
1f53f00
 
 
 
 
1d1c179
b7a4175
4de8675
 
 
 
 
 
 
 
 
 
 
 
 
15dc846
4de8675
 
 
1d1c179
1f53f00
 
 
 
 
1d1c179
54c8107
1d5d683
 
4de8675
 
 
 
1d1c179
4de8675
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
---
license: apache-2.0
pipeline_tag: feature-extraction
tags:
- feature-extraction
- sentence-similarity
- mteb
- sentence-transformers
language:
  - multilingual
---


<p align="center">
  <img src="assets/logo.svg" alt="Perplexity Logo" width="400">
</p>

<p align="center">pplx-embed-1: Diffusion-LM for Dense and Contextual Retrieval</p>

`pplx-embed-1` and `pplx-embed-1-context` are state-of-the-art text embedding models optimized for real-world, web-scale retrieval tasks.

- Use **`pplx-embed-1`** for independent text embedding (queries, documents, semantic search)
- Use **`pplx-embed-1-context`** for document chunks in RAG systems where surrounding context matters

![diag.png](assets/diag.png)

## Models

| Model | Dimensions | Context | MRL | Quantization | Instruction | Pooling |
|:-----:|:----------:|:-------:|:---:|:------------:|:-----------:|:-------:|
| `pplx-embed-1-0.6B` | 1024 | 32K | Yes | INT8/BINARY | No | Mean |
| `pplx-embed-1-4B` | 2560 | 32K | Yes | INT8/BINARY | No | Mean |
| `pplx-embed-1-context-0.6B` | 1024 | 32K | Yes | INT8/BINARY | No | Mean |
| `pplx-embed-1-context-4B` | 2560 | 32K | Yes | INT8/BINARY | No | Mean |

<sub>All models are built on diffusion continued pre-trained Qwen3 at Perplexity AI.</sub>

<sub>Many modern embedding models rely on instruction tuning, where users prepend an instruction string to the text being embedded. This can yield a 2%-3% lift on benchmarks, but it also introduces prompt-selection overhead and can make indexing pipelines brittle (small instruction changes can shift embedding space). We deliberately **avoid** this requirement: you can embed the text you want to index directly, without having to choose or maintain an instruction prefix.</sub>

## Usage

<details>
<summary>Via API</summary>

```bash
curl -X POST https://api.perplexity.ai/v1/embeddings \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "texts": [
      "Scientists explore the universe driven by curiosity.",
      "Children learn through curious exploration.",
      "Historical discoveries began with curious questions.",
      "Animals use curiosity to adapt and survive.",
      "Philosophy examines the nature of curiosity.",
    ],
    "model": "pplx-embed-1-0.6B"
  }'
```

</details>


<details>
<summary>Using SentenceTransformers</summary>

```python
from sentence_transformers import SentenceTransformer

model = SentenceTransformer(
    "perplexity-ai/pplx-embed-1-0.6B",
    trust_remote_code=True
)

texts = [
    "Scientists explore the universe driven by curiosity.",
    "Children learn through curious exploration.",
    "Historical discoveries began with curious questions.",
    "Animals use curiosity to adapt and survive.",
    "Philosophy examines the nature of curiosity.",
]

embeddings = model.encode(texts) # Shape: (5, 1024), quantized to int8
embeddings = model.encode(texts, quantization="binary") # Shape: (5, 1024), quantized to binary
```

</details>


## Technical Details

For comprehensive technical details and evaluation results, see our paper on arXiv.

## Contact

- Website: https://perplexity.ai
- API Support: api-support@perplexity.ai