这是用户在 2024-5-14 19:54 为 https://pub.towardsai.net/why-rag-applications-fail-in-production-a-technical-deep-dive-15cc976af52c 保存的双语快照页面,由 沉浸式翻译 提供双语支持。了解如何保存?


为什么 RAG 应用程序在生产中失败


它是一个原型;然后一切都下降了!

Mandar Karhade, MD. PhD.
Towards AI
Published in
7 min readMar 20, 2024


检索增强生成 (RAG) 应用程序已成为大型语言模型 (LLMs) 领域中的强大工具,通过集成外部知识来增强其功能。尽管做出了承诺,但 RAG 应用程序在从原型环境过渡到生产环境时常常面临挑战。本文深入研究了 RAG 应用程序的复杂性,探讨了成功部署的常见陷阱和战略见解。


从原型到生产


在生产环境中部署 RAG 应用程序充满了挑战。将生成LLMs与检索机制集成的复杂性意味着任意数量的元素都可能发生故障,从而导致潜在的系统故障。例如,系统的可扩展性和鲁棒性至关重要;它必须能够处理不可预测的负载并在高需求下保持运行。此外,在实时环境中预测用户与系统的交互具有挑战性,需要持续监控和适应以保持性能和可靠性。


资料来源:https://medium.com/@vipra_singh/building-llm-applications-retrieval-search-part-5-c83a7004037d

 RAG 模型的类型


基于检索方法:RAG 模型可以根据其使用的检索方法进行分类,例如使用 BM25(传统信息检索功能)或更先进的密集检索器,利用基于神经网络的嵌入来查找相关文档。检索器的选择会影响模型从语料库中获取相关信息的能力​


基于生成机制:RAG 的生成组件通常采用基于 Transformer 的模型,如 BERT、GPT-2 或 GPT-3。这些模型根据检索到的文档生成响应,将输出定制为上下文相关且详细的


顺序处理与并行处理:一些 RAG 模型顺序处理检索和生成步骤,其中系统首先检索所有相关文档,然后根据它们生成响应。相比之下,其他人可能会采用更加并行的方法,以更加交织的方式不断检索和生成​


微调方法:RAG 模型可以通过不同的方式进行微调,以使检索和生成过程适应特定任务。这包括对特定知识密集型任务进行微调,模型学习如何更好地将检索到的信息与生成的文本结合起来,以回答问题或提供解释


配置和定制


RAG 配置允许进行广泛的定制,以便根据特定需求定制模型。关键配置选项包括:


  • 要检索的文档数量 ( n_docs ):定义检索器应获取的文档数量,这可能会影响生成响应时考虑的信息的广度。

  • 最大组合长度 ( max_combined_length ):限制用于生成响应的上下文的总长度,影响生成文本的细节和范围。

  • 检索向量大小:确定用于检索的嵌入的大小,影响查询和文档之间语义匹配的粒度。

  • 检索批量大小:指定同时处理多少个检索查询,影响检索速度和效率​


应用和注意事项


RAG 模型在需要深度知识整合和上下文理解的应用中特别有效,例如法律研究、科学文献综述和复杂的客户服务查询。检索和生成过程的集成使 RAG 模型能够提供基于外部信息源的准确、详细和上下文相关的响应。


失败的关键领域和缓解策略

 检索质量


有效的检索是 RAG 成功的基础。确保系统检索相关且多样化的文档来响应查询至关重要。这方面的故障可能会导致不准确或不相关的响应,从而破坏系统的实用性和用户信任。一般来说,检索将使用某种相似性矩阵来完成。算法很重要!余弦相似度将具有一般匹配,但在特定领域的应用程序中可能会失败。特别是在医疗保健领域,准备好使用多查询检索器、自查询甚至集成检索器。

 ​幻觉


RAG 系统有时会生成不以检索到的文档为基础的信息,这种现象称为幻觉。这些可能会严重影响系统的可信度和准确性,需要强大的机制来过滤噪音并整合来自多个来源的信息,以提供连贯且准确的响应


隐私和安全问题


隐私泄露和安全漏洞是重大风险,尤其是在处理敏感信息时。 RAG 应用程序的设计必须能够防止未经授权的个人或机密数据泄露,并抵御可能损害系统完整性的操纵攻击。这是企业应用程序中的一个特殊痛点。在实践中,这不是关于你是否保护了你的申请,而是关于你是否已经完成了所有的 i 和交叉的所有 t。您必须证明您已采取一切措施来保护企业数据。


恶意使用和内容安全


确保 RAG 应用程序不会促进非法活动或生成有害内容至关重要。这包括实施保护措施,防止创建或传播可用于恶意目的的内容。这可能不是所有企业用户和用例所关心的问题,因为这些用例将使用特定数据迎合特定受众。没有企业会冒使用 RAG 中所有信息的风险。


​特定领域的挑战


为特定领域定制的 RAG 应用程序必须有效处理域外查询,确保即使查询超出其主要知识库范围,它们也能提供相关且准确的响应。稍后在成功部分会详细介绍这一点——但这很麻烦。简而言之,对于您所在领域的利基,您最好考虑将特定于领域的大型模型与 OpenAI/Claude/ 等通用大型模型结合使用。


​完整性和品牌完整性


响应的完整性和品牌完整性的维护对于用户满意度和信任至关重要。 RAG 系统应提供全面且适合上下文的答案,同时避免可能损害品牌声誉的内容​


​技术和操作问题


递归检索、句子窗口检索以及自托管和基于 API 部署之间的平衡行为等问题可能会显着影响 RAG 应用程序的性能和成本效益。这些要素中的每一个都需要仔细考虑,以优化检索准确性和系统效率

 成功策略


为了减轻这些风险,RAG 应用程序应进行相当广泛的规划。没有比预测未来更好的解决方案了。它还应该经过跨多个场景的广泛测试,包括检索质量、幻觉预防、隐私保护和安全性。


现实世界是几乎所有生产数据产品的致命弱点。是的,使用相同的旧发布数据将为您提供一个工作管道,但是当 RAG 与来自不同期刊的真实数据进行交互时,它会严重失败。根据实际使用情况和反馈监控和更新系统对于持续改进至关重要。使用来自各种来源的真实数据构建较小规模的 RAG,然后将其扩展到较大规模,这一点非常重要。在当今世界,计算和空间都很便宜,我们重点关注信息安全、基础设施、SSO 集成、SOC2 证书等,这样一旦您构建了 RAG,您就能够充满信心地与客户共享。


此外,选择正确的技术基础设施、确保数据质量并实施强大的安全措施是在生产环境中成功部署 RAG 应用程序的关键。考虑未来的数据管道。提出“假设”场景并相应地构建您的文档和代码库。没有人谈论它,而是以让您的客户意识到可能的“失败”和到位的“故障保险”的方式制定合同。


如果您正在处理特定领域,请知道用于创建嵌入的模型很重要。我看到了使用更小的模型进行嵌入的趋势;但是,如果该模型的词汇量不包含您所在领域的关键字,那么您就注定失败。是的,这意味着要多花一点钱,或者如果您的口袋很宽裕,那么就花更多的钱来构建您自己的 LLM 来维护您的域的词汇表。简单地对模型进行微调并不能解决这个问题。请记住,您想要检索的内容越高,性能就越差。


最后一项是品牌诚信度。让我们实话实说吧。品牌是一个虚构的身份。我们希望尽可能地模仿该品牌。将此任务视为 RAG 蛋糕上的最后一个“糖衣”。首先,完成任务,提取所需内容,并从抽象中生成平面文本,以便获得准确性指标。然后,也只有到那时,才要求将其重新措辞为品牌术语。


祝你好运。!如果您的公司需要帮助,请在 Linkedin 上找到我 https://www.linkedin.com/in/mandarkarhade/


如果您已经读到这里——谢谢!你是一个英雄(也是一个书呆子❤)!我尽力让我的读者了解“人工智能世界中有趣的事情”,所以请🔔鼓掌 |关注 |订阅🔔

 阅读我的其他作品