RAG 问题依然存在——以下是五种修复方法

电脑屏幕上的代码倒映在一名男子的眼镜上。

作者

Alice Gomstyn

Staff Writer

IBM Think

Amanda Downie

Staff Editor

IBM Think

是时候直面检索增强生成技术(RAG)的真相:这个解决方案本身亟待完善。

RAG 的目的是使大型语言模型(LLM)能够通过访问其训练数据以外的知识库,从而提高大型语言模型的性能并减少幻觉。然而,传统 RAG 系统在现实世界中的局限性已经变得显而易见。

IBM 软件事业部高级副总裁 Dinesh Nirmal 表示:“RAG 在很大程度上存在缺陷。纯 RAG 并不能真正达到预期的最佳结果。”

用户经常面临的 RAG 挑战包括:上下文窗口限制、聚合运算能力不足、复杂关系理解缺陷,以及因分块策略不当导致的低质量输出。此外,RAG 实施过程还可能引发数据泄露等安全隐患。

值得庆幸的是,人工智能工具与策略的进步正在弥补传统 RAG 的不足,使系统能更精准回应用户查询。让我们来详细了解一下如何提高 RAG 性能。

SQL RAG

若要基于传统 RAG 的 LLM 应用对海量数据集执行聚合运算(如求和),结果往往不是困难——而是根本不可能实现。影响系统性能的一个因素是上下文窗口大小:LLM 的上下文窗口通常无法扩展至处理例如 10 万张发票集合的规模。另一方面,传统 RAG 流程依赖的向量数据库专为相似性搜索设计,而非数值聚合运算。

IBM 杰出工程师 Sudheesh Kairali 解释道:“这意味仅靠向量数据库无法应对此类场景。上下文窗口是首要瓶颈,其次是对数学运算的无能为力。”

这正是 SQL RAG 技术登场的背景。

Kairali 解释说,当 LLM 用户从大 型数据集中寻找答案时,将检索增强生成技术与 SQL查询相结合可以提供精确结果。

SQL 内置聚合函数,且 SQL 数据库的处理容量远大于大模型上下文窗口。若企业将发票数据存入SQL数据库,即可通过大模型将“去年发票总额是多少?”这类查询转换为 SQL 语句,经由 RAG 技术查询数据库并获取答案。

“若能成功构建这套系统,就能实现大量聚合运算。”Kairali 表示。当 SQL 数据库完成聚合计算后,“后续工作就转变为大模型的自然语言处理任务。”

GraphRAG

传统 RAG 的另一缺陷是难以辨识不同信息片段或实体间的关联性。以拥有复杂病史的患者为例:传统 RAG 检索过程中,大模型可能提供相关数据(如患者年度就诊医生数量),却无法准确说明每位医生对应的治疗方案。

微软研究院于 2024 年提出的 GraphRAG 技术通过知识图谱处理与关系识别解决了这一难题。该技术将信息组织为节点(实体)与边(关系)构成的网络。

“当患者前往医院就诊,若要查询其历史就诊记录——图谱不仅能以文字描述,更能通过知识表征直观呈现。”通过单一图谱即可追溯多个时间节点,包括不同接诊医生、服用药物及接受的治疗方案。Nirmal 解释道,“通过单一图谱即可追溯多个时间节点,包括不同接诊医生、服用药物及接受的治疗方案。”

Nirmal 同时指出,GraphRAG 也存在局限——随着数据量增长,图谱渲染难度会显著增加。例如,映射数十万个节点就比处理几十个节点复杂得多。Nirmal 说:“任何技术都有局限,但GraphRAG的兴起正是源于传统RAG本身的不足。”

了解更多关于 GraphRAG 的信息。

智能体式分块

分块策略对 RAG 应用至关重要。传统嵌入模型的分块方式会在固定点切割文档,将每个片段存入向量数据库。但即使使用专业知识库的语义搜索机器学习算法,这种方法仍可能导致大模型返回不完整或不准确的答案。

“在这个过程中,很多时候你会损失准确性,因为你不知道数据分块的位置在哪里,”Nirmal 解释道,“假设你在一张表格中间进行了分块或截断,那么当你重新获取这张表格时,你只能得到半张表格。现在你就损失了它的准确性。”

幸运的是,通过智能体方法制定更好的分块策略可以提高信息检索的准确性。这种智能体分块包括创建重叠分块和根据检索文档的上下文动态改变分块大小等策略。大语言模型编排框架有助于实现这一目的。例如, LangChain 的 TextSplitters 工具可以将文本划分为小的、语义上有意义的分块。这种策略有助于避免在分解文档时丢失相关信息。

了解更多关于智能体分块的信息。

智能体式 RAG

智能体 AI 有助于进行分块,它还可以通过其他方式提高检索准确性。以 智能体 RAG 为例: 这是一个先进的 AI 框架,可以集成 RAG 管道来查询 SQL Database 中的结构化数据和文档存储库中的非结构化数据,并利用矢量数据库进行相似性搜索。

智能体 RAG 还为每个分块添加元数据。这一过程将结构化数据(存储在事务性数据库中的元数据)与非结构化数据相关联,以优化检索准确性。

“如果我们能真正将向量数据库的功能与事务性或 SQL 方面的功能结合起来,”Nirmal 说,“我们就能真正大幅提高准确性和性能。”

了解如何克服非结构化数据的三大核心挑战。

已治理数据湖仓一体

数据泄露是人工智能系统普遍存在的一个已知问题,使用 RAG 的大语言模型也不例外。如果没有采取适当的措施,大语言模型可能会向低权限用户提供他们无权访问的信息,包括个人身份信息(PII)和敏感财务数据等。

“这是 RAG 面临的一个现实问题,”Kairali 表示。“当你从概念验证阶段开始时,每个人都很高兴。但当你想要将其投入生产,并确保其达到生产级别时,你就会开始意识到存在数据保护问题。”

要解决这个问题,就必须在将非结构化数据摄取到多个数据库时保留访问控制列表 (ACL) 和其他治理策略。“在查询和检索数据时,必须确保 ACL 和治理策略得到遵守,”Kairali 说。“这基本上是一个工程问题。”

利用合适的数据平台(例如已治理的、开源数据湖仓一体),可以更轻松地解决这一工程问题。例如,IBM 的 watsonx.data 是一个混合开放式湖仓一体产品,它可确保在检索数据时从文档源系统继承访问控制。它还提供个人身份信息 (PII) 注释,以防止敏感信息被共享。

随着 LLM 和其他生成式 AI 越来越深入地融入日常工作流程,改进 RAG 可以帮助企业从企业数据中解锁更大的价值。Nirmal表示,合适的企业级工具和战略“能够提高性能和准确性,使数据变得易于管理且有价值”,“这是每个客户都在寻求的。”

相关解决方案
IBM watsonx.ai

使用面向 AI 构建器的新一代企业级开发平台 IBM watsonx.ai,可以训练、验证、调整和部署生成式 AI、基础模型和机器学习功能。使用一小部分数据,即可在很短的时间内构建 AI 应用程序。

了解 watsonx.ai
人工智能 (AI) 解决方案

借助 IBM 业界领先的人工智能专业知识和解决方案组合,让人工智能在您的业务中发挥作用。

深入了解 AI 解决方案
人工智能服务

通过增加 AI 重塑关键工作流程和运营,最大限度提升体验、实时决策和商业价值。

深入了解人工智能服务
采取后续步骤

一站式访问跨越 AI 开发生命周期的功能。利用用户友好型界面、工作流并访问行业标准 API 和 SDK,生成功能强大的 AI 解决方案。

  1. 深入了解 watsonx.ai
  2. 预约实时演示