应对RAG的缺陷!8种你不知道的方式

检索增强生成(RAG)已成为构建大模型应用程序的标准架构。RAG通过整合外部数据,增强了大模型能力,让大模型的回应更全面和准确。然而,要充分发挥RAG系统的潜力,要识别并克服这项技术固有缺陷。

在接下来的章节中,我们将讨论构建大模型 RAG应用程序时,一些常见的数据相关的挑战,以及克服它们的策略。

1. 数据提取技巧

挑战:解析复杂数据结构,如嵌入表格或图像的PDF文件,可能很困难,并且需要专门技术来准确提取相关信息。

目前为止,OCR(光学字符识别)仍然是一个主要解决方案,尤其是在扫描复杂文件,如发票时。

策略

  • • 先从文本数据管道开始。如果你的RAG系统无法在文本数据上表现良好,那么它在图像和音频上的表现也不会好。
  • • 如果你的数据包含PDF文件,那么使用好的解析工具。一个非常常见的文档识别方法是:将问题分割成较低复杂度的子问题。例如:如果你正在构建一个用于阅读医疗发票的RAG,那么你可以使用OCR工具识别特定字段,如总金额、税额等。如果需要,还可以使用高级视觉模型(GPT-4视觉在处理复杂PDF文档方面表现出色)。
  • • 值得注意的是,微软Azure可能拥有最佳的企业级预构建文档识别/理解工具(产品名称:Document Intelligence)。

2. 处理结构化数据

挑战:大模型擅长处理非结构化数据,如自由流动的文本,但在处理结构化数据方面表现不佳,例如表格数据。

当尝试使用大模型处理表格数据时,会出现许多问题,包括高比率的幻觉问题。我的建议是,尽量避免在表格数据上使用大模型。如果没有选择,那么:

策略

  • • 将表格数据转换为非结构化文本。在此过程中,你需要小心:

    • • 数值表示:传统的分词方法,如字节对编码(BPE),将数字分割成不对齐的令牌,这使得大模型进行算术运算变得复杂。新型模型,如LLaMA,单独对每个数字进行分词,改善了对符号和数值数据的理解。
    • • 分类表示:表格数据中列过多,可能导致序列化输入字符串超出大模型的上下文限制,从而导致数据修剪和性能问题。分类特征表述不清晰,如无意义的字符,也可能阻碍LLM的处理和理解。
  • • 采用如链式表格方法等技术。该方法结合了表格分析与逐步信息提取策略,增强了RAG系统中的表格问答能力。

3. 确定分块策略

挑战

确定将文档划分为语义上独立部分的最佳块大小,同时平衡对全面上下文的需求和快速检索的需求。更长的上下文会导致更长的推理时间(尝试使用Gemini 1.5 pro,上下文令牌为1M!),而较小的上下文块可能导致回答不完整。

另一个分块策略的主要挑战是分块策略本身,即你应该基于句子分块?段落?字数?等等

策略

图片

从简单的开始并迭代:首先选择一个简单的分块策略,进行评估,测量一切,我在这篇文章中更详细地谈到了分块策略:https://heycloud.beehiiv.com/p/text-splitting-chunking-rag-applications。

块大小应该遵循分块策略,而不是相反,意思是:首先确定你想要遵循的策略,然后考虑到你的策略和LLM的上下文大小来确定块大小。

例如:如果你的数据是新闻文章的集合,那么段落级别的分块可能会有效,而且由于大多数LLM的上下文大小大于一个段落,那么你可以采用可变的块大小,即一个段落的大小。

4. 创建可扩展的流程

挑战:构建一个完善且可扩展的RAG流程,以处理大量数据,并持续地将其索引和存储在向量数据库中。大多数RAG应用程序构建者将这部分作为后期考虑,这是有道理的,因为你的首要目标是制作一个有效的东西。

然而,如果你知道你的应用最终将每小时处理TB级别的数据,那么你可能必须考虑到这一点来设计整个应用。

策略

  • • 再一次,从简单开始 🙂 我想你现在应该明白了!
  • • 尽早估计你的应用规模,即使你一开始不需要根据这些信息采取行动。
  • • 如有必要,采用模块化和分布式系统方法,将管道分解为可扩展单元,并采用分布式处理以提高并行操作效率。
  • • 使用经过实战测试的工具部署你的应用,如kubernetes。Kubernetes的好处是你可以根据需要进行扩展。例如,如果你需要一个定期的cron作业来清理新获取的数据,那么你可以安排它,并确保作业完成后它会消失,从而为你节省计算资源和金钱。

5. 让检索数据在上下文中

挑战:RAG系统可能检索到不相关的数据,或者没有提供准确回应生成所需的必要上下文。这通常是由于:错误的嵌入、错误的用户查询、上下文截断等原因造成的。

策略

  • • 使用查询增强/重写来增强用户查询,通过额外的上下文或修改来提高检索信息的相关性。Cursor.sh的查询重写就是一个很好的例子。

图片

  • • 探索不同的检索策略,如从小到大的句子窗口检索和语义相似性评分,以将相关信息纳入上下文。
  • • 一个更高级的技巧是使用生成式UI来澄清用户意图。例如,你可以通过询问用户澄清其查询来回应用户的查询,以确保检索引擎检索到完整的上下文,然后再回答查询。Morphic.sh就是一个使用动态生成的UI来澄清用户查询的答案引擎的好例子。
  • • 投资于监控解决方案以可视化提示、块和响应。

6. 以任务为导向检索

挑战:RAG应用程序应该能够处理各种用户查询,包括寻求摘要、比较或特定事实的查询。因此,用一个检索提示来处理所有用户查询可能不够。

策略

  • • 实施查询路由,以根据初始用户查询识别适当的工具或来源子集,确保针对不同用例的适应性检索。路由通常涉及创建多个索引和一个分类器。分类器可以是一个小型且成本低廉的LLM,将查询分类并将其路由到相应的索引。
    在这里插入图片描述

来源:https://mlnotes.substack.com/p/adaptive-query-routing-in-retrieval

7. 确保数据实效性

挑战:确保RAG应用程序始终使用最新和最准确的信息,特别是当文档更新时。

策略

  • • 实施元数据过滤,它充当标签以指示文档是新的还是已更改的,确保应用程序始终使用最新信息。
  • • 如在“确保数据在上下文中”中所述,一个更高级的技巧是使用生成式UI来澄清用户对最新性的意图。例如,你可以通过询问用户澄清他们是否在询问最近的事件或一般事件等来回答用户查询。
  • • 在某些情况下,LLMs会混淆它们内部学习到的关于日期的信息和外部数据时间戳,因此,在提示中明确使用哪个是很重要的。

8. 应对数据安全

挑战:确保在RAG应用程序中使用的LLMs的安全性和完整性,防止敏感信息泄露,并解决伦理和隐私考虑。

我在这里写了关于构建RAG应用程序时应考虑的安全威胁。总结如下:

策略和考虑

  • • 实施多租户以保持用户数据的私密性和安全性是最重要的缓解策略之一。
  • • 正确处理用户提示,确保它不会滥用LLM。
  • • 分析RAG数据以寻找任何数据污染的迹象。

结 论

数据是任何RAG系统的核心部分。数据问题可能会使你的RAG系统无法使用,或者更糟糕的是,使你的用户面临安全威胁。

因此,意识到常见挑战并采取最佳策略来正确处理RAG数据非常重要。在本文中,我们试图正是解决这些常见问题,从缺失的上下文到数据安全等。

如何学习AI大模型?

作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

img

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img

四、AI大模型商业化落地方案

img

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

  • 20
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值