RAG:检索增强

AI知识1个月前更新 playboywhc
3 0

RAG(Retrieve Augmented Generation,检索增强生成)是一种以权威知识库资讯为基础来优化大型语言模型(LLMs)输出的技术。这项技术通过扩展LLMs的功能,使其在生成回答时能参考特定领域或组织的内部知识库,以此提高输出的质量并确保其在各种情况下的相关性、准确性和实用性。

 

RAG:检索增强

 

优化大型语言模型(LLMs)

大型语言模型(LLMs)通常在大规模数据集上训练,拥有数十亿参数以生成原始输出,如回答问题、语言翻译和完成句子等任务。然而,由于LLMs的训练数据是静态的,且在其知识更新方面有一个截止日期,使得模型有可能在缺乏答案时提供错误信息,或在应对需要获取特定最新信息的查询时,输出过时或模糊的回应。此外,LLMs的回答也有可能来自非权威来源,或由于术语混淆,即相同术语在不同数据源中可能引指不同内容,从而产生错误回应。

 

RAG的解决方案

RAG通过引导LLMs从预设的、权威的知识源中检索相关信息,以解决上述问题。基础模型通常是离线训练的,对于在训练结束后产生的任何数据它都无法获取。LLMs通常在非常通用的领域语料库上进行训练,因此它们对特定领域任务的处理效率较低。RAG模型能从基础模型以外的数据中检索信息,并在上下文中添加相关检索到的数据以增强提示。

有关 RAG 模型体系结构的更多信息,请参阅《知识密集型 NLP 任务的检索增强生成》

 

检索增强生成(RAG)的优势

通过使用RAG,可以从一系列外部数据源(例如文档仓库、数据库或API)获取数据以增强提示。该过程首先需要将文档和用户查询转化为一个兼容格式以进行相关性搜索。此处的格式兼容意味着我们需要利用嵌入语言模型,将文档集合(可视为知识库)和用户提交的查询转化为数值表示,以便进行对比和搜索。RAG模型的主要任务是比较用户查询的嵌入和知识库内的向量。

增强后的提示随后发给基础模型,此过程中,原始的用户提示与知识库中相似文档的相关上下文进行了组合。你还可以异步更新知识库及其相关的嵌入表示,以此更进一步提升RAG模型的效率和准确性。

 

RAG面临的挑战

尽管 RAG 提供了一种优化大型语言模型的方法,彻底应对实际中信息检索和问题回答的挑战,但它仍然面临一些问题和挑战。

1. 数据源的准确性和可靠性

在检索增强生成模型中,数据源的准确性和更新性十分关键。如果数据源包含错误信息、过时信息或者未经验证的信息,可能会导致RAG生成的答案错误或者质量低下。因此,要保证数据源的质量是一个需要持续面临和解决的挑战。

2. 检索效率

虽然RAG可以在大数据集上有效进行,但是当知识库变得庞大或者查询变得复杂时,可能会面临效率问题。因为在大量数据中找到相关信息是一个时间和计算密集型任务,优化检索算法的效率也是RAG的一个挑战。

3. 泛化能力

RAG模型可能对特定数据和查询特别敏感,部分问题可能出现采取合理且有效策略较为困难的现象,这往往要求模型具有较好的泛化能力。在训练模型以处理各种查询和数据源时,需要处理的问题和挑战相当复杂。

4. 异构数据处理

实际应用中,数据并不总是以文档的形式存在,还可能以图像、音频、视频等其他形式存在。如何让RAG处理这些形式的数据,让其在更广泛的知识源之间进行检索和跨引用,也是一个大挑战。

处理上述挑战需要在RAG的强大功能与其潜在问题之间找到一种平衡,这样才能保证其在各种实际应用中的性能。

 

 

详细信息,请参阅以下示例笔记本:

重要参考:https://docs.aws.amazon.com/pdfs/sagemaker/latest/dg/sagemaker-dg.pdf#jumpstart-foundation-models-customize-rag

检索增强生成:基于自定义数据集的问答

检索增强生成:基于开源LangChain库的自定义数据集的问答

© 版权声明

相关文章