@topk_io: https://x.com/topk_io/status/2065172828161200563
摘要
TopK 推出了 semantic_index,这是一种单一的 schema 注解,抽象了生产系统中多向量检索的复杂性,实现了亚秒级延迟和高吞吐量的最先进性能。
查看缓存全文
缓存时间: 2026/06/12 08:59
semantic_index: 多向量检索,开箱即用
最先进的检索质量通常伴随着一些代价。你从一个嵌入管道、一个向量数据库开始,加上基于RRF的混合搜索,也许再配合一个重排序器。但生产级别的搜索系统并不会孤立地运行在笔记本中。它们是一个分布式系统,对可靠性和延迟有预算、有持续写入、严格的新鲜度要求、高QPS读取、过滤、权限管理,还有很多其他要求。
因此,我们构建了 semantic_index —— 一个简单的 schema 注解,它抽象了这种复杂性,并实现了可用于生产环境的、最先进的检索能力。电池已包含在内。
from topk_sdk.schema import text, semantic_index
client.collections().create(
"docs",
schema = {
"text": text().index(semantic_index())
}
)
这就是完整的配置。没有嵌入管道,没有单独的向量存储,也没有重排序服务。在底层,semantic_index 由 Iso-ModernColBERT(我们的多向量嵌入模型)和稀疏多向量编码(SMVE)驱动,这使得延迟交互(late interaction)能够扩展到数十亿个文档,同时支持过滤和在线索引更新。
为什么是多向量?
单向量(稠密)嵌入将整个文档压缩为高维空间中的一个点。这在你的查询变得具体时就会失效,例如合同中的某个条款、财务表格中的一行、或程序中的某个步骤。延迟交互模型为每个 token 保留一个嵌入,并在 token 粒度上进行匹配,这就是为什么它们在域外和长上下文检索中持续优于稠密模型。
问题从来不是质量,而是成本和操作复杂性。多向量索引要大一个数量级,精确的 MaxSim 评分计算成本高昂。TopK 通过使用快速稀疏近似识别一个小的候选集,然后使用量化 MaxSim 重排序将其精炼为最终的 top-k 结果,从而解决了这个问题。
性能
-
每秒处理 15 亿+ token —— 嵌入并索引,索引延迟低于一秒。你的文档在写入后立即可被搜索。
-
在 BEIR 上达到 295 QPS,p99 延迟约 75ms —— 高质量搜索,无需牺牲性能。
-
在 BEIR 上 nDCG@10 达到 52.88% —— 端到端,在实时系统上评估,而非仅对模型进行离线评估。
-
在 ViDoRe v3 上召回率和 nDCG@10 提升约 30% —— 相比大 80 倍的 Qwen3-VL-Embedding-8B 模型,性能更优。
-
在 BrowseComp-Plus 上准确率达到 80.48% —— 在前五名的研究型 agent 中,无需复杂的搜索管道。
BEIR:基线
大多数检索基准只评估模型本身。我们测量了整个系统端到端的性能——包括文档摄入、嵌入推理、索引以及在我们生产集群上的并发查询。在所有 15 个 BEIR 数据集上,semantic_index 的平均 nDCG@10 为 52.88%,仅比使用精确 MaxSim 的基础模型低约 1%。
在性能方面,每个数据集都超过了 175 QPS,较小的语料库甚至超过了 390 QPS,p99 延迟保持在 50ms 到 125ms 之间,索引延迟低于一秒。你的文档在写入后立即可被搜索,这对于 agent 使用场景来说变得越来越重要。
ViDoRe V3:企业级检索
BEIR 是纯文本的。企业级检索包含复杂的 PDF、表格、幻灯片和多语言文档,这正是 token 级匹配胜过稠密嵌入的地方。我们将 semantic_index 与 Qwen3-VL-Embedding-8B(一个比我们大 80 倍 的最先进稠密嵌入模型)进行了比较。
平均 召回率提升 34%,nDCG@10 提升 30%。在工业文档上,召回率从 42.05% 跃升至 75.97%(提升 81%)。金融(英文)从 58.90% 提升至 80.91%。制药从 60.16% 提升至 83.52%。没有哪个领域是 80 亿稠密模型获胜的。
BrowseComp-Plus:Agent 搜索
检索越来越多地被 agent 而非人类使用。我们将 semantic_index 作为检索器接入 agent 研究循环中,用于 BrowseComp-Plus。使用默认 harness 的 gpt-5 agent 实现了 80.48% 的准确率 和 77.82% 的召回率,目前在总排行榜上位列前五(截至 2026 年 6 月 11 日)。
该 agent 每个任务平均进行约 14 次搜索调用,引用准确率为 88.54%,这表明检索器能够足够早地呈现正确的文档,让 agent 在不浪费 token 的情况下进行推理。
立即尝试
以上所有功能——多向量嵌入推理、基于量化 MaxSim 重排序的检索、在线索引更新以及过滤——现在都可以通过简单、高级的抽象来使用。
from topk_sdk.schema import text, semantic_index
from topk_sdk.query import select, field, fn
# 创建带有 semantic_index 的集合
client.collections().create(
"docs",
schema={
"text": text().index(semantic_index()),
},
)
# 插入文档
client.collection("docs").upsert([
{"_id": "doc-1", "text": "..."},
{"_id": "doc-2", "text": "..."},
])
# 使用 semantic_similarity 进行 MaxSim 评分查询
docs = client.collection("docs").query(
select(
"text",
score=fn.semantic_similarity(
"text",
"查询字符串"
),
)
.top_k(field("score"), 10)
)
🚀 开始使用:console.topk.io
📚 文档:docs.topk.io/guides/semantic-search
相似文章
@_reachsumit: 告别K-means:单阶段稀疏编码实现高效多向量检索 @Veritas2026 等人替代向量聚…
本文提出单阶段稀疏检索(SSR),用稀疏自编码器和倒排索引替代K-means聚类,实现了15倍的索引加速和一半的检索延迟,同时在BEIR基准上提升了准确性。
@hasantoxr:向量数据库不再是云产品。它们正在变成 pip install。一个名为 turbovec 的新开源项目……
一个名为 turbovec 的开源项目在 GitHub 上获得了 1 万星标。它是一个基于 Rust、带有 Python 绑定的向量索引,使用谷歌研究的 TurboQuant 算法将嵌入压缩到接近理论香农极限,使得完全本地的 RAG(检索增强生成)成为可能——1000 万文档仅需 4 GB RAM,且搜索速度快于 FAISS。
@yifeiwang77: 感谢分享我们的工作 @lateinteraction @sum!这个想法极其简单:- 多向量检索成本高昂……
作者分享了他们通过将k-means用作top-1稀疏编码来降低多向量检索成本的工作。Omar Khattab补充说,在无监督稀疏自编码器上使用神经元级别倒排索引的晚期交互稀疏检索效果很好。
@techwith_ram:一个1000万文档的语料库以float32格式占用31GB内存。大多数团队遇到这一瓶颈后会转向托管向量数据库。每月400美元……
turbovec 是一个开源的 Rust 向量索引,使用 Google Research 的 TurboQuant 算法,实现了16倍压缩,搜索速度比 FAISS 更快,并且集成了 LangChain、LlamaIndex 和 Haystack 等 RAG 框架。
LogosKG:面向硬件优化、可扩展且可解释的知识图谱检索
LogosKG 提出一种贴合硬件的框架,可在含十亿条边的知识图谱上实现可扩展、可解释的多跳检索;通过度感知分区与按需缓存提升效率,同时不损失保真度。