向量嵌入语义搜索单独使用已经很有用,但在复杂任务里,和个人 AI 知识库 RAG 组合起来效果更好。这种组合尤其适合需要反复打磨的任务。

两个技能各自负责什么

  • 语义搜索:语义搜索是用向量嵌入(Embedding)把文本转换成能表示含义的数值向量,再按含义的相似程度查找内容。
  • 个人知识库 RAG:个人知识库 RAG(检索增强生成)是把你的笔记、文档、资料整理成知识库,提问时 AI 先从中检索相关内容,再基于检索结果回答。

语义搜索有效是因为嵌入模型把语义相近的文本映射到相近的向量位置,计算向量之间的相似度就能找到意思相关的内容,这是很多知识库和推荐功能的基础;个人知识库 RAG 有效则是因为通用模型不了解你的私有资料,直接提问容易得到泛泛的回答或编造;检索增强让 AI 先找到相关原文,再基于原文作答,答案更准确,也能追溯出处。两者叠加,正好互补。

组合流程

  1. (语义搜索)选择嵌入模型和向量存储方案,了解其语言支持和使用条款。
  2. (语义搜索)把向量和原文、元信息一起存储。
  3. (个人知识库 RAG)整理资料:删除过时和重复的内容,统一格式,注明日期。
  4. (个人知识库 RAG)用一组已知答案的问题测试检索和回答的准确性。
  5. (收尾)用测试集评估检索效果,持续调整切分和检索参数。

组合模板

以财务的场景为例,先用下面的模板完成语义搜索部分:

检索效果评估:
测试集:[N] 个问题,每个问题标注应该检索到的片段
指标:
- 前 K 命中率:正确片段出现在前 K 个结果中的比例
- 首位命中率:正确片段排在第一的比例
对比实验:
1. 仅语义搜索
2. 仅关键词搜索
3. 混合搜索(两者结合)
4. 混合搜索 + 重新排序
记录每种方案的指标,选择效果最好且成本可接受的方案。

然后再按个人知识库 RAG 的思路补一轮,例如:资料文件名和标题写清楚,检索和引用会更准确。

示例

以下为虚构示例:

示例(虚构):一个内部问答系统中,用户问“出差住宿能报多少”,关键词搜索没有找到结果,因为制度中写的是“差旅费用标准”。改用语义搜索后,系统找到了正确的条款,并结合关键词搜索确保“住宿”相关的段落排在前面。

组合之后,个人知识库 RAG 这一环的价值在于:知识库的效果有一个朴素的规律:垃圾进,垃圾出。

组合使用时的注意事项

  • 从小规模资料开始验证效果,再扩展到全部资料。
  • 把所有资料不加整理就导入。应对方法:删除过时、重复和无关的资料,知识库质量决定回答质量。
  • 两个技能叠加会让提示词变长,先确认单独使用时各自有效,再组合。

知识库和本地模型的效果很大程度取决于资料质量。资料越整洁、越新,回答就越可靠。

进一步扩展

熟悉这个组合后,还可以加入调用大模型 API,形成三步流程。但每加一项都要问:它解决了什么具体问题?如果说不出来,就不要加。

相关阅读