图解 · 运行过程 · 工程取舍

检索先找候选,再判断能否回答

动态图解约 1 千字1 组分步图解

倒排索引和向量索引分别在帮什么忙?

配套正文:F28基础课

动态图解 · F28

检索先找候选,再判断能否回答

倒排索引和向量索引分别在帮什么忙?

倒排像书后索引:从一个词跳到包含它的页面。向量检索则尝试把表达相近的内容放得接近,帮助不知道精确名称时找候选。二者都不负责自动确认权限、版本和事实正确性,仍要读取与核对证据。

索引为快速找候选而建立的数据结构。
召回从大集合中找出可能相关的候选。
近似搜索以少检查部分候选换速度,可能漏掉真实近邻。

输入与适用条件:三个文档为本书构造;倒排关系可精确核验,语义搜索只作流程说明,不编造向量服务实测分数。

1 / 4 · 先有原文,不是先有向量

第1步,共4步

窄屏可左右滑动图形,或点击“放大图形”。文字解释紧随图后。

检索先找候选,再判断能否回答:先有原文,不是先有向量A部署 使用 DockerB测试 使用 pytestCDocker 镜像 构建

三份短文档都有自己的标识。索引是为查询服务的辅助结构,原文和版本仍应保留。

A/B/C是文档ID

默认静止。用“下一步”看完解释再继续;播放到最后一步自动停止。键盘聚焦播放器后,可用左右键逐步查看、空格播放/暂停。图中颜色辅助区分,含义同时用文字注明。

逐步说明与计算记录

以下解释全部展开,与播放器使用同一份数据;不是另换输入的第二个算例。

1.先有原文,不是先有向量

三份短文档都有自己的标识。索引是为查询服务的辅助结构,原文和版本仍应保留。

A/B/C是文档ID

2.倒排:从词找到包含它的文档

对每个词记录它出现在哪些文档。“Docker”指向A和C,“pytest”指向B;不需要每次查询从头读完所有文档。

3.向量:另一种候选入口

语义检索把查询和文档表示成向量,比较其关系。它可能找出字面不同的表达,但相似不保证可用、正确或最新。

4.查回原文,验证条件

候选A包含部署说明,C包含构建镜像说明。根据真实问题读取对应原文与版本;标题看起来相关不能替代证据。

为什么需要

避免每次全库扫描,但保持原文可追溯。

怎样实现

按合适粒度建索引,保持文档ID、内容、版本和权限关联。

可能的代价与误解

切块丢标题条件、索引未更新、相似度与权限混用都会出错。

如何判断是否做对

用已知相关文档检查召回,并单独测试版本更新和撤权后的可见性。

输入关键词即可检索。

↑ ↓ 选择 Enter 打开Esc 关闭 · 仅本地搜索

阅读设置

阅读设置仅保存在本机浏览器,不上传任何数据。