九支-听课笔记(9-12节)

第9节课(召回模块)

搜索系统核心架构:从"海选"到"决赛"

一个实用的搜索引擎之所以分两步走,是因为性能精度的平衡。如果直接用复杂的 Transformer 去匹配语料库里的几百万条数据,速度会慢到用户无法忍受。

1. 第一阶段:召回模块 (Recall) ------ "海选"

这是系统的第一个漏斗,目标是

  • 输入: 用户输入的原始问题(Query),例如"机器学习是什么?"。

  • 资源库: 底部有一个巨大的离线语料库(存储了成千上万条可能的答案或文档)。

  • 动作: 从海量数据中快速"捞"出前 32 个最相关的候选。

  • 特点:

    • 粗略相关: 计算方式比较简单(比如通过关键词匹配或简单的向量检索),能保证"相关的都在这 32 个里",但顺序不一定完全准确。

    • 高效率: 必须在毫秒级完成海量数据的筛选。

2. 中间产物:32 个相关文本(候选集)

  • 召回模块输出的是一个子集

  • 形式通常是文本段落,作为接下来深度加工的输入。

3. 第二阶段:排序模块 (Rank) ------ "精选/决赛"

这是系统的第二个漏斗,目标是

  • 输入: 用户 Query + 召回出来的 32 个候选文本。

  • 动作: 对这 32 个文本进行精细打分

  • 原理: 计算 Query 与每一个回答之间深度语义的相似度 。这里通常就会用到你之前学的 Transformer/BERT 结构(利用其强大的自注意力机制捕捉语义细节)。

  • 区别于召回:

    • 更准确: 它的分数反映了真实的语义匹配程度。

    • 计算量大: 因为候选集已经减小到 32 个,模型可以放心地使用复杂的数学运算来保证准确性。

4. 最终输出:重排结果 (Re-ranking)

  • 系统根据排序模块算出的"更准确的分数",对这 32 个文本进行重新排序

  • 返回给用户:分数最高(最准确)的内容排在第 ① 位,依次排到第 32 位。

Python源代码文件主要有.py和 .ipynb两种格式,.py是标准格式,可用多种编辑器运行;.ipynb是Jupyter Notebook专用格式,支持多语言交互,可转换为.py文件。

第10节课(排序模块)

第11节课(排序模块)

第12节课(search_system)

相关推荐
LinXunFeng6 天前
Obsidian - 使用 Share Note 分享笔记并自部署
前端·笔记·github
闪闪发亮的小星星11 天前
高斯光以及高斯光公式解释
笔记
cqbzcsq11 天前
CellFlow虚拟细胞论文阅读
论文阅读·人工智能·笔记·学习·生物信息
阿米亚波11 天前
【Windows】QEMU 启动 openEuler aarch64/arm64 架构系统 + 离线软件源
linux·windows·经验分享·笔记·架构·arm
自传.11 天前
尚硅谷 Vibe Coding|第三章(1) Claude Code深度使用与进阶技巧 学习笔记
笔记·学习·尚硅谷·vibecoding
.千余11 天前
【C++】模板进阶全解:非类型参数|全特化|偏特化|分离编译完全指南
开发语言·c++·笔记·学习·其他
自传.11 天前
尚硅谷 Vibe Coding|第二章 AI编程工具生态 学习笔记
笔记·学习·ai编程·尚硅谷·vibe coding
秋波。未央11 天前
Java Agent 开发 · Day 1 学习笔记(含作业完整标准答案)
java·笔记·学习
中屹指纹浏览器11 天前
2026指纹浏览器字体指纹、字体渲染偏差检测与全维度虚拟字体池搭建方案
经验分享·笔记