微信扫码
添加专属顾问
向量相似度检索遇到瓶颈?DocuPanda创始人揭示RAG技术如何突破传统局限,实现精准知识增强。 核心内容: 1. 传统向量检索的根本缺陷与GPT在专业场景中的局限性 2. RAG技术原理及其在房地产客服等场景的实践验证 3. 跨行业知识增强解决方案的通用价值与实施关键
本文是 DocuPanda.io 的联合创始人 Uri Merhav 在 Medium 发布的一篇博客,主要介绍向量相似度检索的问题以及他们的解决方案。
“依赖预设的相似性判断是有根本缺陷的,注定无法真正奏效。我们应当追求更智能、更精准的方式。”
大约两年前,作为一名机器学习顾问,我参与了多个项目,尝试让 GPT 更加实用和具备专业知识。在其中一些尝试中,我让 GPT 扮演了不同的角色,例如客户支持代表、销售工程师,甚至是医疗初诊的问诊助手。
在所有这些场景下,GPT 最初的表现常常令人印象深刻,因为它能够基于其通用知识快速生成答案。然而,随着交互的深入,它的局限性也逐渐显现:通用知识通常是过时的、不完整的,且模型很难区分真实信息与虚构内容。例如,在客户支持场景中,GPT 有时会编造产品功能,或者无法准确解释具体实现细节。当面对一个持续更新的产品体系时,单靠模型训练中获取的通用知识,很难提供准确且可靠的答案。
显而易见的解决方案是:RAG(Retrieval-Augmented Generation,检索增强生成)。这个名字听起来很高深,实际原理却非常直接:模型在回答问题之前,先检索相关的知识内容(如文档、文章),将这些内容与问题一起提供给语言模型,从而生成更贴切、基于事实的回答。
让我们用一个具体案例说明:假设我正在构建一个自动化的房地产客服代理。我拥有所有租客的租赁合同,而租客则通过电子邮件提交问题或投诉。
此时,如果你仅靠 ChatGPT 来回答这些问题,它是无法胜任的。模型并不了解这些租赁合同的具体内容,也不了解相关城市的租赁法规。要想获得准确回答,就必须将这些信息提供给模型——这正是 RAG 的用武之地。
我们稍后会详细探讨,为什么它会如此自信地给出一个既奇怪又错误的答案。
总之,GPT 有时就像“放飞自我”了一样。它不会诚实地承认“我不知道”,而是会试图给出一个看似合理的答案——哪怕完全不靠谱。在尝试“搜索”答案时,它可能引用一个根本无关的来源,甚至编造出听起来像那么回事的内容。而如果你禁止它联网搜索,它通常会退而求其次,生成一段典型的四段式回答,结构完整、语气自然,却实质空洞,透露出“大语言模型式”的含糊其词。
那么,如果我将租赁合同中关于宠物的条款复制粘贴进来,再提出同样的问题,会发生什么呢?我确实这么做了——先提供了合同中的相关页面,然后提问。结果非常惊喜。
模型给出了一个几乎完美的答案。如果你进一步提供相关的城市法规、建筑许可规定等,模型同样可以给出准确且权威的解答。
这正是 RAG 的强大之处:只要我们能够提供与问题高度相关的文本,像 ChatGPT 这样的语言模型就能理解、适应并基于这些信息推理出令人满意的答案。而且,这一机制并不仅仅适用于房地产客服场景。
比如:
如果你能提供相关设备的技术手册,GPT 就能帮助技术支持人员定位故障并给出详细的操作步骤;
如果你有保险条款和相关医疗发票,GPT 就可以协助理赔人员判断费用是否应当报销;
如果你手头有最新的研究文献,GPT 就可以辅助你制定实验方案或解释研究现象。
但这个看似“魔法般”的过程,背后仍有一个棘手问题:我们如何获取与问题真正相关的那段文本?
毕竟,语言模型有上下文长度限制——我们不能简单地把世界上的所有文档都扔进去。
这时候,向量嵌入(Vector Embedding)就派上用场了。
向量嵌入听起来高深,但原理其实很直观:语言模型可以将一段文本转换为一个“向量”,也就是一组数字。这组数字是该文本的抽象语义表示。无论是一句话、一个段落,甚至一整篇 50 页的文档,都可以被映射成一个定长的向量。
举个例子,你可以把这篇博客文章输入到 OpenAI 的 text-embedding-ada-002 模型中,它会返回一个由 1536 个浮点数组成的向量。这些数字在某种意义上表示了文章的“语义坐标”,可以用于与其他文章进行语义比较。也就是说,两篇谈论相似主题的文章,它们的向量会在同一个“语义空间”中彼此靠近。
如果你想知道两个向量的相似程度,只需要计算它们之间的“距离”即可——通常采用余弦相似度或欧几里得距离。
有了向量嵌入,搜索的方式就完全改变了。你可以将所有租赁合同、城市条例、建筑许可等文档预处理,拆分成段落甚至句子,并将它们转换成向量存入数据库。当用户提出问题时,将问题也转换成向量,在嵌入空间中找到“最相近”的文档片段,并将它们作为上下文传递给语言模型。
你甚至可以通过更精细的切分方式(比如按段落或小节嵌入)来实现更精准的匹配。这就好比从“全文搜索”跃迁到“语义定位”——不仅知道哪里提到了关键词,更知道哪里真的讲到了你关心的意思。
这个方法确实非常神奇。它赋予了语言模型真正的“检索能力”,从毫无背景知识的状态跃升为拥有定制知识库的智能体。比如:
你可以嵌入一个问题:“你好,我住在 31A 室,我能带一条鳄鱼(alligator)吗?”
接着将你的 52 页租赁合同按段落切分、逐段嵌入,然后匹配问题的向量。你会立刻看到返回的匹配结果中,宠物相关条款位列前茅。
你也可以尝试提出有关押金的问题。确实,有一段内容被识别为高度相关,并准确地回答了押金的金额。
但当我们开始提出更细致的问题时,系统的局限性就开始显现了。例如,如果我问:“你们在什么情况下可以动用我的押金?我是否可以主动申请使用押金?整个流程是怎样的?”——这时,搜索返回的前几段内容可能并没有明确地解答这些问题。
不过,如果你深入查看搜索结果中的第二和第三项,最终还是能找到与问题相关的那段文本。我就不展开了——它既冗长又枯燥。
问题在于:为什么模型没能第一时间找到它?
答案其实很简单:向量嵌入的方式并不能预知回答问题时真正需要的上下文是什么。
向量搜索只是衡量语义相似性,但它无法判断哪种相似性才真正重要。这就导致了一个很现实的问题:
假设我有多个关于同一租户的租赁合同,其中一些已经过期。语义上,它们的内容可能非常相似,因此向量搜索很容易返回来自“错误合同”的“正确段落”。
你可以尝试一些技巧,比如在问题中加上一句话:“The question is being asked on December 2nd, 2024.” 但这并不能显著提高准确性。
为什么?因为某个旧合同的条款可能提到它在 2024 年 12 月 1 日到期,而在向量空间中,12 月 1 日和 12 月 2 日之间的“距离”几乎为零。但从法律角度来看,这种距离其实是无限大的:那份合同已经无效了。但嵌入模型不理解这种业务语义,它只看语义相似性。
这种情况正是优秀 RAG 系统中最常见的失败模式之一:你检索到的是“正确内容,但来自错误来源”。还记得我们开头提到的那个例子吗?ChatGPT 自信地回答了一个问题,但答案基于一个完全无关的网络搜索结果。其实,这种“幻觉”在 RAG 系统中也很常见:
你可能会从错误合同中提取出正确条款、从错误手册中获取看似正确的操作步骤,结果误导用户,造成严重后果。
现实中的文档往往伴随着明确的业务逻辑。比如租赁合同,通常包含签署日期、起止时间、房间号等关键信息。
因此,与其单纯依赖语义搜索,我们不妨先使用结构化方式索引文档 —— 不仅可以更高效地筛选出当前有效的合同,还能预提取出常见问题的答案,比如:
租金金额
押金金额
宠物政策的摘要
合同是否仍在有效期内
你甚至可以让语言模型提前处理整个合同,在索引阶段就抽取出这些字段。
我们来举个具体例子。我可以将整份 53 页的租赁合同粘贴给 GPT,并提示它提取我关心的字段信息。这样不仅提高了检索精度,也减少了推理时出错的可能性。
如果我们将这些关键信息提取为统一的 JSON 格式,并在所有文档中保持一致的字段结构,那么将会带来一系列显著的优势:
首先,我们可以实现一致且可预测的检索。比如,你可以对所有文档基于相同字段(如“入住日期”、“租金金额”、“宠物政策”等)建立索引,然后通过 SQL、MongoDB 等方式高效查询这些结构化数据。
更进一步,我们可以将这些字段结构暴露给 AI,告诉它我们是如何组织和索引这些文档的。于是,AI 就能够自动构造出恰当的查询语句,从而检索到真正相关的文档片段,而不是依赖模糊的向量搜索。
实际上,有时候我们甚至无需再读取原始文档内容。因为答案早已通过结构化索引预先提取并存储好了。例如,租赁类问题往往聚焦于少数几个常见领域:租金金额、付款安排、押金条款、入住日期、宠物政策等。在这种情况下,我们只需引用索引中的结构化答案,无需再调入 LLM 分析整份合同。
这让整个系统更加高效——调用更少、更快、更便宜,而且错误率更低。
我坚信这种范式拥有巨大的潜力。事实上,我对它的未来充满信心,以至于我专门创立了一家公司来推动这一理念 —— DocuPanda.io。
DocuPanda 的目标是让结构化信息提取变得简单、一致、可扩展。无论你的文档规模是几十份还是数百万份,无论它们包含表格、手写体、打钩标记,还是复杂的版式,我们都能支持。
在 DocuPanda 中,结构化输出大致如下所示(以下示例省略部分字段以节省空间):
一旦你对大量文档完成了结构化与标准化处理,就可以自然地提出自由形式的问题,而 AI 会负责将其自动转化为查询,并检索相关信息。
这个过程会引发一个链式反应式推理流程。模型会首先理解你的问题,并结合我们预定义的 Schema,例如:
tenant_name(租户姓名)
pets_allowed(是否允许养宠物,布尔值)
pet_policy_details(宠物相关说明,短文本段落)
接着,AI 会生成一个数据库查询,比如根据 tenant_name = "Meital Bendet" 获取相应记录。它会读取返回的数据,对其进行分析与推理,必要时还会参考原始文档内容以获取更精确的上下文。
最终,这种流程能够提供清晰、可靠且高度上下文相关的答案 —— 而你只需问一个简单自然的问题。
我希望你能理解这里一个至关重要的观点:花时间思考你的业务是如何理解其文档的,并据此设计一套与你的搜索需求一致的索引结构,是构建强大信息处理流程的关键。
这不仅仅是构建技术系统,更是将你的业务知识、流程语义与文档内容有机结合的过程。通过系统化、结构化的索引方式,你能够显著提高 AI 的准确性、效率与可信度。
如果你正在考虑构建类似系统,欢迎尝试一下 DocuPanda。它是我们在这个领域多年探索、试错与实践的成果,可能会帮助你更快地落地,并少走一些弯路。
祝你索引愉快!
我们确实已经为文档索引了“几个千年”——从泥板到图书馆卡片,再到全文搜索引擎,如今我们终于进入了 语义索引 + AI 理解 的时代。现在不是停下来的时候,而是我们终于能让文档“开口说话”的时刻。
继续往前走,不只是存储信息,更是理解信息、运用信息,让每一份文档真正成为可对话的知识单元。
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业
2026-07-07
顶级AI 检索服务商Exa ,如何用 Zilliz Cloud服务Agent 检索需求
2026-07-07
知识库分块不是越小越好——改了分块大小,准确率跳了18%
2026-07-07
分类、抽取、Rerank:小模型最容易落地的三个方向
2026-07-07
RAG 和 Agent 到底是什么关系?企业 AI 不只是问答
2026-07-06
加了Query改写,准确率从71%提到89%
2026-07-06
RAG 负责召回,LLM Wiki 负责沉淀:团队知识系统为什么不能只做检索
2026-07-05
AI 知识库为什么总答不准?不是模型笨,是资料没整理好
2026-07-05
AI知识库RAG演进:上一代解决「找得到」,下一代解决「记得住、连得起、信得过」
2026-04-27
2026-04-23
2026-04-20
2026-04-09
2026-04-12
2026-04-22
2026-05-14
2026-04-10
2026-04-30
2026-04-27
2026-07-04
2026-06-23
2026-06-23
2026-06-15
2026-06-10
2026-06-10
2026-05-20
2026-05-18
欢迎您使用【53AI 官方网站】(以下简称“本网站”或“我们”)。本《会员服务协议》(以下简称“本协议”)是您(以下简称“会员”或“用户”)与【深圳市博思协创网络科技有限公司】之间关于注册、登录及使用本网站会员服务所订立的法律协议。
在您注册或登录前,请务必审慎阅读、充分理解各条款内容,特别是免除或限制责任的条款、知识产权条款、争议解决条款等。此类条款将以加粗形式提示您注意。 当您通过微信公众号授权、手机验证码验证或其他方式成功登录本网站时,即视为您已完全理解并同意接受本协议的全部内容。
一、 定义
本网站:指由【深圳市博思协创网络科技有限公司】运营的,域名为【53ai.com】的网站及相关移动端页面。
会员服务:指本网站向注册会员提供的知识库文章查阅、内容检索及其他相关增值服务。
知识库内容:指本网站发布的包括但不限于文字、图表、数据、研究报告、行业分析等数字化内容资源。
二、 账号注册与登录
登录方式:本网站支持以下登录方式,您可根据实际情况选择:
微信公众号授权登录:您同意将您的微信OpenID信息授权给本网站,用于创建或关联会员账号。
手机验证码登录:您需提供真实有效的手机号码,并通过短信验证码完成身份验证与登录/注册。
账号安全:您的账号仅限您本人使用,禁止赠与、借用、租用、转让或售卖。因您保管不善导致的账号被盗、密码泄露等损失,由您自行承担。
实名认证:根据相关法律法规要求,我们可能要求您在特定功能下完成实名认证。如您拒绝提供,可能无法使用部分或全部服务。
未成年人保护:若您未满18周岁,请在法定监护人的陪同下阅读本协议,并在征得监护人同意后使用本服务。
三、 服务内容与规范
知识库查阅权限:会员登录后,有权按照其会员等级对应的权限范围,在线浏览、检索本网站知识库中的相关文章及内容。
服务变更:我们有权根据业务发展需要,调整、变更或终止部分服务内容,并将以网站公告、公众号消息等方式提前通知。
禁止行为:您在使用服务时不得实施以下行为:
利用技术手段批量爬取、下载、转存知识库内容;
将知识库内容用于商业目的或未经授权地向第三方传播;
干扰本网站正常运行或侵犯其他用户合法权益;
发布违法违规信息或从事违反公序良俗的活动。
四、 知识产权声明
权利归属:本网站知识库中的排版设计、软件代码等内容的知识产权均归【公司全称】或原权利人所有,受《中华人民共和国著作权法》等法律保护。
有限许可:本网站授予会员一项非独占、不可转让、不可转授权的普通许可,仅限于个人学习、研究之目的在线查阅知识库内容。
侵权追责:未经书面许可,任何单位或个人不得以任何形式复制、转载、摘编、镜像、汇编或以其他方式使用上述内容。一经发现,我们保留追究其法律责任的权利。
五、 个人信息保护
我们重视对您个人信息的保护。关于我们如何收集、使用、存储和保护您的个人信息,请单独阅读 《隐私政策》。
您通过微信公众号授权或手机号验证所提供的信息,我们将严格按照《个人信息保护法》的规定处理,仅用于身份识别、服务提供及安全验证等必要用途。
您可以随时通过网站设置或联系客服行使查阅、更正、删除个人信息及撤回授权同意的权利。
六、 免责声明
内容准确性:知识库内容仅供参考,不构成专业建议。我们不对其完整性、准确性、时效性作任何明示或暗示的保证,您应自行判断并承担使用风险。
不可抗力:因自然灾害、政策法规变化、网络故障、第三方平台接口异常(如微信接口维护、运营商短信通道故障)等不可抗力导致的服务中断或延迟,我们不承担违约责任。
第三方链接:本网站可能包含指向第三方网站的链接,该等网站的内容和服务不受我们控制,请您自行甄别风险。
七、 违约责任
如您违反本协议约定,我们有权视情节采取警告、限制功能、暂停服务、注销账号等措施,并保留要求赔偿损失的权利。
如因您的违约行为导致我们遭受行政处罚、第三方索赔或商誉损失,您应承担全部赔偿责任(包括但不限于罚款、赔偿金、律师费、公证费等)。
八、 法律适用与争议解决
本协议的订立、执行和解释均适用中华人民共和国大陆地区法律。
因本协议产生的或与本协议有关的任何争议,双方应友好协商解决;协商不成的,任何一方均可向【公司所在地】有管辖权的人民法院提起诉讼。
九、 其他
本协议构成双方就本服务达成的完整协议,取代此前任何口头或书面约定。
本协议任一条款被认定为无效或不可执行的,不影响其他条款的效力。
我们对本协议享有最终解释权,并在法律允许的范围内保留随时修改的权利。修改后的协议一经公布即生效,继续使用服务即视为同意修订内容。