binglu’s blog
← 返回文章
Agent 与 RAG

RAG基础-概述和面临的问题

冰露6 分钟

RAG基础-概述和面临的问题

RAG是什么?

RAG(Retrieval-Augmented Generation)可称为 检索 增强 生成。

检索增强生成是指对大型语言模型输出进行优化

使其能够在生成响应之前引用训练数据来源之外的权威知识库。

RAG在知识库问答情景中,将检索到的相关知识和用户问题重新组织回复问题。

「检索(Retrive)」 根据用户请求从外部知识源检索相关上下文

「增强(Augment)」 用户查询和检索到的附加上下文填充至Prompt

「生成(Generate)」 检索增强提示输入至 LLM生成请求响应

为什么我们需要RAG?

LLMs 的知识是静态的: 大模型是在海量数据上进行预训练的,它们的知识截止于训练数据的收集时间点。对于训练后出现的新信息、实时事件或频繁变化的数据,模型本身是无法直接获取和利用的。

RAG 引入外部知识: RAG 通过在生成答案之前,先从外部知识库(例如文档库、数据库、网页等)检索相关信息,使得模型能够获取最新的、实时的信息,从而生成更准确、更符合当下语境的回答。

基本流程展示:

文章配图

用户query

用户首先向系统输入一个查询或问题。为了更好地理解查询的意图,并进行有效的知识检索,该查询通常会被编码成一个向量表示形式,即嵌入 (embedding) 。将查询转化为嵌入能够捕捉其语义信息,使得系统能够基于意义而非仅仅是关键词来查找相关信息。这种方法能够克服传统关键词搜索的局限性,即使查询和知识库中的信息使用了不同的词汇,只要它们在语义上相关,也能够被检索出来。

知识库检索

接下来,RAG 系统的检索器模块会根据编码后的查询,在外部知识库中搜索相关信息。这个知识库可以包含各种各样的数据源,例如文档、数据库、网页或 API。RAG 的强大之处在于其能够整合来自多个不同来源的信息,从而为 LLM 提供更全面和多维度的上下文。常用的检索技术包括使用向量数据库进行语义搜索、传统的关键词搜索以及混合搜索方法。检索到的信息通常会根据其与查询的相关性进行排序和过滤,以便选择出最相关的片段或文档用于后续处理 。

知识增强

在检索到相关信息后,RAG 系统会将这些信息与原始用户查询结合起来,形成一个增强的提示 (augmented prompt) 。为了确保 LLM 能够有效地利用这些检索到的上下文,通常会采用提示工程 (prompt engineering) 技术 。通过精心设计提示的结构和内容,可以指导 LLM 如何将检索到的信息融入其回答中,从而生成更准确和相关的响应。

响应生成

最后,增强的提示会被输入到 LLM 中。LLM 会利用检索到的上下文信息及其自身的预训练知识来生成对用户查询的最终回复。在某些情况下,生成的响应可能会经过额外的后处理步骤,例如事实核查、摘要生成或内容安全,以进一步提高其质量或控制输出结果合规化。

RAG的核心价值在于其能够显著提高LLM的性能,尤其体现在以下几个方面

  • 提升准确性和事实性:通过引用外部可验证的信息,RAG有效减少了LLM产生幻觉的风险,确保输出更加真实可靠 。用户通常还可以追溯信息的来源,进一步增强了信任度。
  • 增强相关性和上下文感知:RAG能够检索与用户查询高度相关的信息,使得LLM的回复更贴合用户的具体需求和语境,提供更有价值的交互体验 。
  • 扩展知识覆盖面并获取最新信息:RAG使LLM能够访问其训练数据之外的庞大知识库,包括实时更新的信息,从而克服了传统LLM知识库静态性的局限 。
  • 成本效益高且易于维护:相比于重新训练或微调整个LLM,RAG提供了一种更经济高效的方式来整合领域特定知识和更新信息 。知识库的更新和维护也相对更加简单 。
  • 提升开发者控制:RAG赋予开发者更大的灵活性和控制权,可以自主选择和管理LLM可以访问的信息来源,并能更便捷地进行问题排查和修复 。

看起来简单的RAG,在实际应用中面临以下问题

  • 当用户提出一个无法仅凭现有文档回答的问题时,模型自己推理了一个错误答案。
  • 检索器没有检索到最相关的文档,或者**没有找到所有相关的文档,**模型给出了错误答案。
  • 文档有表格、图表、图片,多模态数据没有嵌入,模型给出了缺失或错误的答案。
  • 答案存在于某个文档的细节部分,无法被有效检索。
  • 检索到超多文档,模型没有从庞大的文档中正确找到答案。
  • 模型给出的答案,要么太笼统,要么太具体
  • 文档中有答案,但是模型回答虽然不是错误,但缺少了一些信息
  • 检索到的信息片段之间存在矛盾、重复或相关性不一,难以进行有效整合,模型的答案冗长、不连贯或逻辑混乱。
  • 同样的问题,替换几个同义词,结果大不相同
  • 检索到的文档限制了模型的创造力,对于需要高度创造性、想象力或虚构内容的任务上,模型因为受到检索事实的约束而表现欠佳。

以上问题没有完美的解决方案,我们能做的就是尽可能的减轻这些问题。
本公众号将发布RAG系列干货文章。欢迎大家关注,后续逐步更新 RAG三十三式!!!