RAG实践篇(四):你需要知道的RAG七个局限
许多AI Agent的出现,确实成为解决某些特定问题的“特效药”。但是,作为产品经理,我们也需要熟悉“药性”——他们能解决什么问题,他们可能存在的局限在哪里。
在之前的RAG实践篇中,我们就谈到了RAG在企业私有化知识的AI实践上的应用,可以看得出来,RAG的出现让GenAI的应用不再局限于模型训练数据(多使用公共领域的信息/知识),而是可以与私有知识库结合,从而扩大了其应用范围。让GenAI的应用从企业的客户服务到知识管理等,都能有用武之地。
不过用了这么久,大家也发现RAG在私有化应用中并不是个“一药解千愁”的Agent,在“如何快速给答案“这件事情上,它有自己的局限性。作为产品经理,提前了解这些局限能帮助我们更好地理解RAG的特性。
Scott Barnett等在论文Seven Failure Points When Engineering a Retrieval Augmented Generation System就讨论了RAG在应用时可能会遇到的七种局限。
局限一:在知识库中找不到问题,倾向“胡编乱造”
私有知识库能提供的信息是有限的。所以,使用RAG系统很常见地就是面临无法从可用文档中检索到答案的情况。当系统找不到答案时,我们期待它能够老老实实地回答“抱歉,我不知道”。但RAG系统会“自信”地给出不相关的回答,而不是坦诚地“不知道”。
比如,用户在客户服务系统中询问某款产品的功能,而这个产品信息在知识库中并没有。RAG系统在没有约束的情况下,会给出模糊或错误的答案,而不是明确告知用户缺乏相关信息。
局限二:排名不够高,正确答案被“错杀”
RAG系统通过检索技术对文档的语义相似度进行赋值,将相似度高的文档进行召回,再根据召回内容生成回答,输出给用户(详见RAG实践篇(三):向量检索的AI应用,让知识“活起来”)。理论上每个文档都会被赋予一个分数,以便确定它们与查询的相关程度。但在实际操作中,为了平衡响应速度,系统通常只会返回排名最高的N个文档,而不是所有文档,这就导致一些实际重要的文档未被召回,影响最终生成的答案质量。
比如,有一位管理者想咨询“我在面试开始前要做什么准备”。他的真实意图是“我在面试开始前的5-30分钟内,要做点什么(比如看看候选人的简历、准备些问题等等)。而知识库里有大量与“管理者要在面试之前先提招聘申请”这类知识文档,就会由于相似度较高(“面试”、“前”)而排位靠前,即使这些知识其实并不是正确的。而真正与问题相关的知识文档,却有可能由于排名没有以上文档高,根本没有被召回。这样必然导致回答牛头不对马嘴。
局限三:即使被召回,也会因为“拼接”不当而忽略
系统虽然为回答问题找到了相关的信息模块(通常是多个),但在将这些块组合成一个连贯的上下文时又出现了问题,导致LLM无法利用这些信息来生成准确的回答。
比如,有用户询问“如何在短时间内提高工作效率?”,系统检索到多个关于时间管理和工作效率提升的信息组合,但由于上下文整合不力,系统未能将这些文档中的精华内容提取并整合成一个有价值的答案,最后用户看到了一个看似七拼八凑,内容之间缺乏逻辑的回答。
局限四:正确答案被“噪声”淹没
在某些情况下,RAG系统能够检索到包含答案的文档,但未能准确从中提取出正确的答案。这种情况通常发生当上下文中存在过多的不相关、冗余甚至矛盾的信息时,LLM可能会迷失方向,无法聚焦于正确的答案。
比如,用户想问一个关于“2023年最新劳动法中关于加班费的具体规定”的问题。RAG系统从公司内部的知识库中检索到了公司的几篇政策文档,其中一篇文档确实包含了2023年最新的加班费规定。但是这些文档中不仅包含了关于加班费的规定,还包含了其他一些政策,如休假制度、劳动合同解除等。此外,不同文档对加班费的规定描述还存在差异,甚至有些文档提到了旧版本的法律规定。最终系统生成了一个回答,但它并没有准确引用2023年最新的加班费规定。反而引用了大堆与加班费相关的泛泛规则。
局限五:格式错误:未按照要求提取特定格式的信息
当问题涉及提取特定格式的信息(如表格、列表等),系统可能未能遵守格式要求,从而导致结果格式不符合用户期望。
比如,用户要求系统以表格形式展示不同投资项目的回报率,然而,系统返回的答案却是纯文本的描述,无法满足用户对于格式的具体要求。
局限六:精确度不达预期
系统生成的回答在精确度(specificity)上不符合用户的需求。要么太泛泛,缺乏很多细节;要么太具体细节,让人抓不到关键信息。产生这种情况的原因很简单,是因为RAG在生成内容时,依赖的是知识库的内容(而非用户意图),所以即使用户意图比较一致,但只要内容在知识库里的精确度不一样,可能会获得不同精确度的回答。
比如,用户同样询问了两个问题:“如何申请年假”、“如何申请加班费”。关于前者,知识库中恰好有精确度适当的内容,因此系统回答良好;而后者,系统不仅提供申请流程的信息,还提供了大量无关的规定、政策等信息,使得用户不得不花费额外的时间找到想要的答案。
局限七:答案不完整
系统生成的答案中给了部分正确信息,但遗漏了一些重要的信息,导致答案不完整。这是因为系统在生成回答时,会优先选择那些看起来合理但实际上不完整的信息,而由于LLM是基于概率生成文本的,所以它会继续那些与上下文更“匹配”但并非最全面的答案。特别是当用户的问题涉及多个文档时,这种情况会更明显。
比如,用户需要从多个部门的文档中提取出关键信息,包括A文档中的市场调研、B文档中的技术规格、C文档中的竞争对手分析等。向系统提出了以下问题:“请告诉我文档A、B和C中的关键点。”系统生成了一个回答,提到了文档A中的市场调研结果和文档B中的技术规格,但完全忽略了文档C中的竞争对手分析。
结语
看到这里你不难发现,很多AI Agent的出现,确实成为解决某些特定问题的“特效药”。但是,作为产品经理,我们也需要熟悉“药性”——他们能解决什么问题,他们可能存在的局限在哪里。提前理解了这些,才能帮助我们在产品开发时更高效地找到解决方案,解决这些局限带来的隐患。
本文由 @AI 实践干货 原创发布于人人都是产品经理。未经作者许可,禁止转载
题图来自 Unsplash,基于CC0协议
该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务
- 目前还没评论,等你发挥!