训练信号改为同时检索答案及验证该答案所需的上下文,而非单一黄金段落;每个 chunk 关联完整文档,可直接提升 RAG 管线质量。
Perplexity Research 和 turbopuffer 发布了 pplx-embed-v2-context-9b-preview,一个面向 RAG 流水线的上下文 embedding 模型。每个 chunk 在编码时都会将完整文档纳入视野。真正的变化在于训练信号——模型学习检索答案的同时也检索验证它所需的上下文,而不是某一个"黄金段落"。
可以,作为自托管预览版。权重已在 Hugging Face 上开源,采用 MIT 许可证。加载需要 transformers>=5.4.0 并设置 trust_remote_code=True。目前尚未上线 Perplexity API。模型卡注明权重和接口可能在不通知的情况下变更,暂无向后兼容保证。
RAG 系统会将长文档拆分成多个 chunk。但一个 chunk 通常依赖于文档其他地方提到的实体、标题或定义。上下文模型用延迟分块(late chunking)来解决这个问题——文档一次性编码,然后按 chunk 逐个池化。
然而训练时,通常为每个 query 标注一个黄金 chunk,其余所有 chunk 都变成负例,包括那些能够让答案可验证的句子。Perplexity 列出了另外 3 个问题:二元标签提供的是粗粒度信号;LLM 标注成本随数据集规模线性增长;标签还和某一种特定的分块策略绑定。
教师模型是 Perplexity 的查询感知上下文压缩模型。它将 query 和文档一起读取,并为每个 token 打分。
Chunk 相关性:取每个 chunk 内 top n token 分数的均值。
软目标:对正文档内所有 chunk 取温度缩放的 softmax。其他文档的 chunk 得分为零。
蒸馏损失:教师与学生分布之间的前向 KL 散度。
文档损失:InfoNCE,以最佳 chunk 的分数代表文档得分,灵感来自 ColBERT 的 MaxSim。
每个 batch 随机采样一种分块策略。Chunk 之间用学习到的 <|chunk_sep|> token 分隔,然后做 mean-pooling。教师模型仅在训练时使用,因此推理时不增加延迟或存储开销。
模型从内部 9B ColBERT 检索模型初始化,经线性投影输出 2048 维。Matryoshka 训练也支持 1024 维。量化感知训练支持原生 int8 embedding。本次发布是多个检查点的模型汤(model soup)。训练使用约 430 个数据集,覆盖 50 多种语言,未使用 ConTEB 数据。
Perplexity 上下文 embedding 预览版的交互式演示:孤立的 chunk 为何失效、教师蒸馏如何取代单一黄金段落,以及各项指标的实际含义。
三份租约文件都包含"Monthly rent is …"这句话,但只有一份属于 5 Park Avenue。切换模式后运行检索。

上例基于 Perplexity 文章中的租约场景。分数仅供说明之用,非模型实际输出。
上下文压缩模型充当教师角色。它为每个 token 针对 query 打分。这些分数按 chunk 聚合(取 top n token 的均值),转化为软目标,而非 one-hot 黄金标签。
Gold-chunk 标签(one-hot)
教师目标(软标签,源自 token 分数)

改变边界:相同的 token 分数可以重新聚合,无需重新标注。这就是 Perplexity 所说的"灵活分块边界"特性。上图的 token 分数为说明性示例。
下表数字均按 Perplexity 在 K=10 时报告的数据列出。
Voyage 数值按 Perplexity 报告数字减去标注的差值(14.4 和 5.0 分)推算得出。其他 Voyage 指标仅出现在 Perplexity 的图表中,此处未展示。
上下文 embedding 每个 chunk 存储一个向量,与普通 chunk 索引相同。成本取决于向量维度。Perplexity 报告称 1024 维 int8(1KB)在其 chunk 检索套件上略优于 2048 维 float32(8KB)的 voyage-context-4。

Bytes = 维度 × 每维字节数。Sensitivity 为 74 个 MTEB 任务上的平均 nDCG@10,数字来源为 Perplexity 报告。
context-bench 由 turbopuffer 构建并私有持有,以控制训练污染。包含 2,099 条查询,覆盖 21 个领域的 38,894 篇文档。句子级分块得到 2,458,072 个 chunk。目标文档长度中位数约为 6,100 tokens。查询覆盖 12 种上下文能力,从代词消解到表格结构。Perplexity 表示模型以盲测方式提交。
指标包括 Document@K、Answer@K、Evidence Recall@K 和 All-Evidence@K。每个模型都对所有 chunk 做穷尽排序,因此索引设置不产生影响。
context-bench 在 K=10:答案召回率 45.5%,证据召回率 40.6%,全证据召回率 31.1%。
文档召回率:K=1 时 15.2%,K=10 时 61.6%。
对比 voyage-context-4:在 K=10 的答案召回率上领先 14.4 分,证据召回率上领先 5.0 分。
各模型中平均 nDCG@10 最高。pplx-embed-context-v1-4B 在 NarrativeQA 上领先,Nemotron-3-Embed-8B 在 COVID-QA 上领先。
在 query-to-chunk 任务上平均表现最佳。在 query-to-document 上略落后于 voyage-context-4。
1024 维 int8(每向量 1KB)略胜于 2048 维 float32(8KB)的 voyage-context-4。
平均分数在 64 到 512 tokens 之间从 81.0% 变化至 79.9%。
| Feature | pplx-embed-v2-context-9b-preview | voyage-context-4 | pplx-embed-context-v1-4B | Nemotron-3-Embed-8B |
|---|---|---|---|---|
| Chunk embeddings | Contextual | Contextual | Contextual | Independent per chunk |
| Access | Open weights, MIT | Hosted API (Voyage, MongoDB Atlas) | Open weights, MIT; Perplexity API | Open weights, OpenMDW-1.1 |
| Parameters | 9B per blog (Hugging Face lists 8B) | Not disclosed (MoE backbone) | 4B | About 8B |
| Dimensions | 2048, 1024 | 2048, 1024, 512, 256 | 2560 (Matryoshka) | 4096, sliceable |
| Quantized output | Native int8 | int8, uint8, binary, ubinary | int8, binary | Float |
| Context | Evaluated up to 32,768 tokens | 32K per request; 120K with auto-chunking | 32K | 32,768 |
| Auto-chunking | No | Yes | No | No |
| Price | Self-host | $0.12 per 1M tokens; first 200M free | Self-host or API | Self-host |
Sources: Voyage docs, model cards linked above. Checked September 30, 2026.
Token 级教师模型取代了单一黄金 chunk 标签。
该模型在单个 chunk 索引中同时检索答案和支撑证据。
context-bench Answer@10 为 45.5%,领先 voyage-context-4 达 14.4 分。
今日开源 MIT 权重;Perplexity API 接入仍在路上。