检索增强生成 (RAG) 是一种流行的生成式人工智能框架,通过在生成过程中整合相关的最新信息来增强大型语言模型 (LLM) 的功能。这种方法允许大型语言模型用最新的特定领域数据来补充其预训练的知识。RAG 是一种经济高效的解决方案,可为特定使用案例定制大型语言模型,而无需昂贵且耗时的微调或重新训练整个模型。
检索增强生成技术,助力实现更智能的人工智能
检索增强生成技术使组织能够利用通用大型语言模型进行专业应用,而无需昂贵的定制训练模型。RAG 通过使用最新的特定领域信息来增强查询,以增强生成能力,从而直接解决了这些模型的基本限制。这样,企业就能将原始模型训练中没有的实时信息、专有数据集和专业文档纳入其中。通过透明地提供证据和回答,RAG 提高了信任并降低了幻觉风险。
什么是大型语言模型?
大型语言模型是一种人工智能,旨在理解和生成类似人类的文本。作为自然语言处理 (NLP) 的高级应用程序,大型语言模型能够从海量训练数据中学习模式、结构和语法,从而生成对用户提示的连贯响应。大型语言模型的优势在于它们的能力,能够执行广泛范围的语言生成任务,而无需进行特定于任务的训练。这使它们成为聊天机器人、翻译、内容创作和总结等应用程序的多功能工具。
大型语言模型的局限性
大型语言模型是一种复杂的神经网络,通过分析海量训练数据集进行学习。这些模型需要大量的计算资源,使得开发成本极高且耗时。此外,托管和维护自定义大型语言模型所需的专业基础设施造成了巨大的财务障碍,只有资源丰富、技术投资可观的组织才能使用它们。
大型语言模型在回答有关历史内容的问题方面非常出色,但它们的知识受到其训练数据的限制。这使得它们对于需要最新知识的查询效率较低,因为如果不重新训练模型,它们就无法回答有关最近事件的查询。
同样,大型语言模型天生无法回答关于公司内部文档或特定组织独有的其他领域特定数据集的问题。这种局限性给希望利用 AI 技术的企业带来了重大挑战,这些技术需要针对其需求的深厚、专业的知识。
这些限制凸显了大型语言模型的另一个挑战:幻觉。在没有可验证信息的情况下,语言模型可能会生成自信、听起来合理但完全虚构的响应。这种产生令人信服但虚假信息的趋势会给需要准确性和可靠性的应用程序带来重大风险。

检索增强生成的好处
RAG 因其相对简单的架构和显著的性能改进而变得流行。
经济高效
RAG 允许组织将通用预训练模型用于专业应用程序,而无需花费开发自定义训练模型的费用。有效的检索通过确保仅包含必要的信息来优化按词元收费的 API 大型语言模型,从而降低 API 费用。
域自定义
RAG 使组织能够通过整合专业知识库来为特定领域定制预训练模型。这使得模型无需定制化训练即可生成关于专有和行业特定文档的回答。微调可以提供类似的好处,但需要显著更多的时间、成本和维护。
实时见解
RAG 使大型语言模型能够通过动态检索外部来源的最新数据,访问当前信息并生成响应。这克服了静态训练数据集的知识限制,使模型能够提供对最近事件和新兴趋势的见解。
透明
RAG 通过为生成内容提供来源引用和证据,提高 AI 回答的可靠性。通过将每个响应链接到知识库中的特定来源,RAG 允许用户验证信息的来源和准确性,从而降低幻觉风险并建立对 AI 生成输出的信任。
适应性
RAG 的一个关键优势是其能力轻松适应最新的尖端模型。随着语言模型或检索技术的进步,组织可以替换为更新的模型或调整检索策略,而无需彻底改造整个系统。这种灵活性确保 RAG 系统能够与尖端技术保持最新同步。
检索增强生成是如何运作的?
RAG 包括三个不同的阶段:摄取、检索和生成。
数据摄入
在摄取过程中,组织会准备其知识库以便检索。源数据是从各种存储库中收集的,包括内部文档、数据库或外部资源。然后,这些文档被清理、格式化,并分割成更小、易于管理的数据块。使用嵌入模型将每个数据块转换为矢量表示,该模型捕获文本的语义意义。这些矢量存储在矢量数据库中,从而能够进行高效的语义搜索和检索。
信息检索
当用户提交查询时,系统会在生成之前检索相关的上下文信息。查询被转换为矢量表示,使用与摄取时相同的嵌入模型。矢量搜索将在数据库中查找与查询在语义上最相似的文档数据块。还可以应用额外的过滤器、排序或重新加权技术,以确保仅检索到最相关的信息,从而提高最终响应的准确性。
生成
一旦检索到相关上下文,就会使用原始提示、相同的检索段落和具体指令来构建增强提示。大型语言模型处理此提示以生成一个将其预训练知识与检索内容相结合的响应。这种方法确保响应以外部数据源为依据,并与用户的意图相符,从而提供更准确的回答。

检索增强生成在行业中的应用案例
RAG 已经被广泛应用于各行各业,以释放大型语言模型和 AI 的变革潜力。
- 制造:通过设备手册和维护日志增强大型语言模型,以提供实时操作指导。RAG 使技术人员能够快速访问关于机械的精确信息,从而减少停机时间并提升设备性能。
- 客户支持:利用内部文档、产品指南和支持历史记录来诊断问题。RAG 帮助支持团队即时检索有用的内容,缩短响应时间并提高首次联系解决率,从而高效地响应客户查询。
- 医疗保健:综合医学研究、临床指南和患者记录,以支持诊断决策和治疗建议。RAG 允许医疗保健专业人员访问当前的医学知识,同时提供透明、基于证据的见解。
- 金融服务:整合监管文档、市场报告和合规指南,以支持投资研究、风险评估和合规性。RAG 使金融分析师能够快速检索和分析复杂的最新财务信息。
- 软件工程:查看文档和代码片段以协助工程师编写代码。RAG 还可以根据过去的类似问题建议可能的修复措施,帮助调试,提高工作效率和质量。
检索增强生成的关键概念
数据分块
数据分块是数据摄取过程中的一个组成部分,可以提高系统的准确性并降低费用。它涉及将大型内容分割成较小且易于管理的片段,以便于检索。目标是创建有意义且完全符合情境的数据块,确保它们保留足够的信息以供使用,同时最大限度地减少冗余。
有效的数据分块在细粒度和完整性之间取得平衡,使系统能够检索相关信息,而不会因不必要的细节而使大型语言模型不堪重负。结构良好的数据块可以提高检索精度、减少词元使用,并带来更准确且更具成本效益的响应。
嵌入模型
嵌入模型将数据转换为称为矢量的数字表示,以捕获语义意义。这使系统能够理解词语、短语和文档之间的关系,从而提高检索相关信息的准确性。
在摄取过程中,嵌入模型会处理每个数据块,将其转换为矢量,然后存储到矢量数据库中。当用户提交查询时,会使用相同的嵌入模型将其转换为矢量。
不同类型的嵌入模型支持多种使用案例。通用模型适用于广泛的应用程序,而特定领域模型则针对法律、医疗或金融等行业量身定制,从而提高专业领域的检索准确性。多模态模型超越文本处理,可以处理图像、音频和其他数据类型,从而实现更高级的检索功能。某些模型可以创建文本的数值表示,可以直接与图像或视频进行比较,以实现真正高级的多模态检索。
语义搜索
语义搜索通过关注用户查询背后的含义,显著改进了信息检索和关键字搜索。使用嵌入,查询和文档都被转换为捕获语义意义的矢量。当用户提交查询时,即使内容中没有直接出现确切的查询词,矢量数据库也会搜索以找到最相关的文档。
这种方法使系统能够更好地理解上下文,确保结果更准确和更相关。通过识别同义词、相关概念和词语变体,语义搜索增强了用户体验并减少了歧义,提供了更符合用户意图的结果。
重新排序
重新排序是一种在初始检索阶段后用于提高搜索结果相关性的技术。一旦检索到一组文档,重排序模型会根据它们与用户查询的相关性对其重新排序。该模型可以利用文档质量、上下文相关性或基于机器学习的评分等附加功能来优化结果。
重新排序有助于优先处理最有用且符合上下文的信息,从而提高准确性和用户满意度。当初始检索阶段可能返回广泛的结果时,它特别有用,允许系统微调选择并提供最相关的回答。
提示工程
提示工程涉及精心设计提供给大型语言模型的输入,以引导其按所需的方向进行输出。通过有效地构建提示,您可以确保模型生成更准确、更相关和更适当的响应。此过程涉及提供清晰的说明、相关的上下文,有时还需要提供示例,以帮助模型理解任务。
在检索增强生成中,提示工程在将检索到的文档与原始用户查询相结合,以生成连贯且精确的响应中发挥着关键作用。精心设计的提示减少歧义,最大限度地减少不相关信息,并确保模型符合用户的意图,从而产生更高质量的输出。
优化您的检索增强生成应用程序
可以优化 RAG 解决方案,以提供更高的准确性,并整体改善最终用户的体验。
优化信息检索
可以通过多种策略改进 RAG 的信息检索。首先,查看数据分块技术,以确保文档被分割成有意义且与上下文相关的片段。下一步,选择合适的嵌入模型来捕捉内容的语义含义。特定领域的模型可能会为某些使用案例提供更佳的结果。虽然语义搜索是最常用的,但请考虑关键字搜索或混合方法是否可以改善检索效果。
此外,在初始检索后应用重新排序方法,以提高结果的准确性。调整检索到的文档数量也很重要:过多会引入噪音,而过少可能会错过重要的上下文。找到合适的平衡有助于提升检索性能和相关性。
优化回答生成
可以通过几种关键方法来改善 RAG 中的语言生成。首先,专注于提示工程,以构建查询和上下文,从而指导语言模型生成更准确和更相关的响应。清晰的说明、上下文和示例有助于减少歧义并提高输出质量。下一步,评估不同的模型或特定领域的大型语言模型,以确保生成的响应与您的特定使用案例的细微差别相符,从而提高相关性和准确性。此外,还应考虑使用温度等可调的模型参数,以控制模型响应的创造性。
优化生产扩展
通过选择一流的供应商为您的关键应用程序组件,确保您的 RAG 系统已准备好投入生产。
对于您的矢量数据库,请选择一个提供高效搜索和索引功能的平台,尤其是一个支持可扩展且快速的近似最近邻 (ANN) 搜索的平台。高级矢量数据库可能还支持元数据过滤器,这可以通过基于额外的上下文信息缩小搜索结果来提高准确性和速度。这将使您的系统能够快速检索相关文档,即使数据集不断增长。
在选择嵌入模型时,重要的是在高维矢量的复杂性与存储和检索的效率之间取得平衡。虽然更高维的嵌入可以捕获更丰富的语义关系,但它们会导致计算成本增加、存储需求增大以及检索时间变慢。
此外,在为生成组件选择大型语言模型 (LLM) 时,请确保其符合您使用案例的特定需求。大型语言模型应能够准确地解释检索到的信息,并生成连贯且符合上下文的响应。选择大型语言模型也会影响系统的整体费用和性能——更大的模型可能会提供更高的准确性,但代价是更高的延迟和计算需求。评估您的响应时间、输出质量和基础设施需求,以选择在性能和效率之间取得适当平衡的大型语言模型,这一点至关重要。
检索增强生成的挑战
RAG 的关键挑战之一是难以集中和组织内容以实现有效检索。RAG 系统需要访问不同领域的大量数据,但以一种能够让模型有效检索最相关和最新信息的方式组织这些内容,则是一项复杂的任务。数据可以分布在不同的平台、格式和数据库中,这使得确保全面覆盖和准确性变得困难。此外,确保多个来源之间的一致性至关重要。检索到的信息可能相互矛盾、过时或不完整,这可能会混淆知识库并削弱生成响应的质量和可靠性。这些挑战凸显了对更复杂的索引和检索系统的需求,以便 RAG 模型能够提取最佳内容并生成相关且准确的输出。
另一个重大挑战是 RAG 目前仅限于回答问题,而不能执行更复杂的任务。尽管 RAG 系统擅长根据检索到的信息生成响应,但它们在执行回答查询或生成内容以外的操作时存在困难。这种限制之所以存在,是因为 RAG 主要被设计用于从外部来源提取相关数据并基于这些数据提供输出,而不是与现实世界环境进行交互或操控。因此,尽管 RAG 模型可以协助信息检索和内容生成,但其在执行问题解决或决策等任务方面的能力仍不成熟,这限制了其在更具动态性的应用程序中的潜力。
创建内存增强的交互式检索增强生成
通过记忆过去互动的关键细节和背景,增强 RAG 的记忆功能,从而扩展其创造更具互动性体验的能力。传统的 RAG 系统通常会响应查询,但不会在多次交互中保留信息,从而导致体验不连贯。通过集成记忆机制,RAG 系统能够存储当前和先前对话中的相关事实、偏好或见解,从而在需要时调用这些信息。这使系统能够提供更加个性化、上下文感知的响应,并创造更加无缝的体验。随着时间的推移,系统构建了对用户需求更深入的理解,调整其响应以更具相关性和吸引力,使体验感觉像是持续的对话,而不是一系列孤立的查询。
检索增强生成技术和生成式人工智能的未来
RAG 中的新技术将不断涌现,以更高效、适应性和智能的方式增强其检索和生成信息的能力。增长的一个关键领域是开发高级检索机制,使 RAG 系统能够动态访问更广泛的范围的来源,包括专业数据库、非结构化内容和实时信息。这些改进将使 RAG 系统更加具备情境感知能力,从而能够在各个领域生成高度相关且准确的输出。
同时,整合新的生成式人工智能代理能力将使 AI 系统能够执行问题解决、数据分析和决策的任务。这些代理系统不仅能够检索和生成响应,还能够根据所收集的信息采取行动,使其更具交互性、自主性和智能性。因此,RAG 将成为自动化研究、个性化推荐和交互式虚拟助手等应用程序的核心,推动响应式和主动式 AI 的新时代。
微调与检索增强生成
微调是一个通过对新内容进行额外训练来修改语言模型的过程,基本上是将新的知识或行为传授给模型,这些知识或行为会永久嵌入到其参数化记忆中。这种方法需要大量的计算资源和专业知识,由于模型大小的限制,容纳新信息的容量有限,并且所做的任何更改都是永久性的,无法轻易更新。微调模型可以提供特定领域的结果,但需要大量的训练时间和费用,因此很难保持更新。
检索增强生成 (RAG) 在语言生成之前动态检索不属于训练数据的内容。这使得 RAG 模型能够在不改变模型根本参数的情况下整合新数据,从而使其更加灵活和可扩展,以满足微调等知识密集型任务的需求。
使用 MongoDB Atlas 和 Voyage AI 构建 RAG 应用程序
MongoDB Atlas 是一个强大的通用数据库,支持向量和向量搜索,是构建生产级 RAG 应用程序的理想选择。
Voyage AI 提供强大的嵌入模型和重排序器,用于实现高度精确的信息检索。
将您的项目提升到下一个水平——简化您的开发流程并释放新的价值,同时受益于与领先的 AI 合作伙伴、主要云提供商、大型语言模型提供商和系统集成商的无缝集成。
资源
探索 MongoDB Atlas——内置搜索、矢量功能等的矢量数据库。现在免费注册。
如需了解有关 Voyage AI 的更多信息,请参阅此博客。
获取有关搜索和其他 AI 堆栈的战略建议和实施支持,请访问我们的 MongoDB AI 应用程序计划了解更多详情。