一文通俗讲透 RAG 背后的逻辑,让 AI 回答更精准!

前言

你是否曾对 AI 给出的答案产生过怀疑?RAG 可能就是解决这个问题的关键。

RAG ,对于技术人员肯定已经不陌生,但是对于普通人来说可能还是个模糊的词汇。

关于 RAG,在我们使用 AI 的过程中随处可见。

不管我们在 Kimi、ChatGPT、Claude 提供文件或网页来提问,还是使用 Coze、Dify 这类平台构建 AI 客服、法律助手、或者其他利用知识库的智能体,本质上都涉及到 RAG 技术。

昨天,Claude 发布了一篇 RAG 优化方案——“Contextual Retrieval”。在群里简单分享后,发现很多小伙伴都很感兴趣。

如果你还不太了解,让我们一起来回顾一下:

  1. 为什么需要 RAG?

  2. Contextual Retrieval 的优势是什么?

  3. RAG 其他优化方向的总结

一、为什么需要 RAG?

分享前,我们先聚焦于当用户询问一个问题:我想知道“八宝茶是哪个少数民族的传统饮品”

恰好这个问题涉及的领域较为冷门。

一般情况下,我们会直接向 AI 提问。如果大模型没有这方面的知识,那么可能会产生“幻觉”,也就是瞎编。

正确答案其实是 “回族”。

后来,我们了解到可以通过提示词编写的策略:提供参考文本。我们可以将一段引用内容和原始的问题组合来提问。

提示词:

八宝茶是哪个少数民族的传统饮品,请根据这段文字进行回答"""xxxxxxxxx""",如果找不到答案,则回复“不知道”。   

这种方式存在两个问题。

第一,如果这段引用的内容过长,超出大模型的上下文限制,便得不到正确答案。

例如,大模型上下文限制为 8 千字,而给出了 1 万字,且答案恰好位于最开始的 2000 字左右内,那么很可能会错过正确答案。

第二,如果我们提供的文字内容不够全面或质量较低,那么即使得到答案,也极有可能不全面或完全不正确。

如何解决这些问题呢?

由此,RAG 便诞生了。我们先来一张 Claude 生成的图片,针对刚才的技术演化过程,看看 RAG 的优势。

什么是 RAG 呢?

简而言之,它是一种通过从外部知识库检索相关信息来辅助大语言模型生成更准确、更丰富的文本内容的技术。

RAG 全称 **Retrieval-augmented Generation,**中文叫做:检索增强生成。

1、检索:检索是 RAG 流程的第一步,从提前构建好的知识库中找出和问题有关的信息。这一步是为后面的生成环节提供背景信息和知识支持。

2、增强:增强是把检索到的信息作为大模型的上下文输入,以此提升模型对特定问题的理解和回答能力。通过增强这一步,大模型可以充分运用外部知识库中的特殊信息。

3、生成:生成是 RAG 流程的最后一步。这一步会利用检索到的内容作为上下文,再最终组合后的提示词指引 LLM 生成符合用户需求的回答。

最终,我们理解这个术词的完整含义:RAG 通过检索外部信息来增强大模型的提示词,从而生成更准确的答案。

那么,RAG 是怎么工作的呢?

我们来看下 Claude 最新优化方案中提及的常规 RAG 是如何工作的。下面我来进行通俗解释。

第一步:如果是文件,系统会运用一些识别工具提取文字内容。如果是网页,系统则会利用爬虫技术获取网页数据。

备注:网页上用户是直接提供文件。智能体平台,用户会提前上传文件。

第二步:系统会根据长度设定把每份提供的内容分成一段一段的文本块,术语叫 Chunk。然后,利用向量模型将这些 Chunks 存储到向量数据库中。

图中还提到另一项技术,叫做 TF-IDF。通过这项技术,可以为这些块创建 TF-IDF 编码,从而在检索信息时提供双重保障。

TF-IDF 是通过计算词在文档中的出现次数(TF)以及在整个文档集合中的普遍重要性(IDF),来确定哪些词对特定文档比较重要。这样,它可用于提取文档关键信息。

第三步:当用户提出问题“八宝茶是哪个少数民族的传统饮品”时,系统会在向量库中依据 TF-IDF 的索引定位到与这个问题相关的 chunks。

第四步:按照一定规则给这些 chunks 排名。

为什么要排名呢?

因为可能有很多 Chunk 都与**“八宝茶是哪个少数民族的传统饮品”** 这个问题有关的内容。

但是,不能将所有 Chunk 作为上下文去问大模型,这样内容太多太杂,不但会影响回答质量,还极有可能超出大模型的上下文限制。

排名后,获取最接近问题的一个或多个 Chunk。至于具体是几个,得看系统设定和用户的配置。

最后一步:将获取后的 chunk 作为上下文,结合用户最初的问题,拼接成提示词,让大模型分析并从中获取答案。

提示词类似这样(取自 FastGPT 的提示词):

忘记你已有的知识,仅使用{{knowledge}}中的内容作为你的知识,回答用户的问题{{question}}:      思考流程:   1. 判断问题{{question}}是否与{{knowledge}}标记中的内容有关。   2. 如果有关,你按下面的要求回答。   3. 如果无关,你直接拒绝回答本次问题。      回答要求:   - 保持答案与中描述的一致。   - 使用 Markdown 语法优化回答格式。   - 使用与问题{{question}}相同的语言回答。   

{{knowledge}} 就是最重要的几个 Chunk 组合后的内容。

这时候,根据这段提示词,大模型就可以更准确地回答我们。

当然,这也并非完美,在特殊情况下,会存在一些明显问题。我们参考 Claude 官方提供的一个例子来说明。

比如,我们的问题是“八宝茶是哪个少数民族的传统饮品?”,正确答案是“回族”。

但某个 Chunk 中正好有一段类似文字,是用来介绍蒙古族马奶茶的:“该茶是蒙古族的传统饮品”,这里有个指代词“该”,若不处理,基于这个 chunk,答案就不对了。

二、Contextual Retrieval 的优势是什么?

Claude 最新发布的 “Contextual Retrieval” 到底如何解决这个问题呢?

这个方法的核心是利用整个文档作为上下文,借助提示词对这个 Chunk 做简洁概述,并在向量化之前,将这段解释放在 Chunk 的开头,作为其中的一部分。

另外一点优化是:这个方法在交给大模型之前,多做了一步排名,叫 Reranker,这样可以进一步找到更接近用户问题的 Chunk。

那它是借助什么提示词来给每个 Chunk 做简述的呢?

原始版本:

<document>
{{WHOLE_DOCUMENT}}
</document>
Here is the chunk we want to situate within the whole document
<chunk>
{{CHUNK_CONTENT}}
</chunk>
Please give a short succinct context to situate this chunk within the overall document for the purposes of improving search retrieval of the chunk. Answer only with the succinct context and nothing else.

中文版本:

<document>
{{WHOLE_DOCUMENT}}
</document>
这是我们想要放在整个文档中的块。
<chunk>
{{CHUNK_CONTENT}}
</chunk>
请提供一个简短而简洁的上下文,以便在整个文档中定位此块,以提高块的搜索检索效果。仅用简洁的上下文回答,不要有其他内容。

那我们再回到刚才的小故事里。

针对原先这个 Chunk:该茶是蒙古族的传统饮品就会被处理成这样:这段内容来自蒙古族马奶茶的介绍文件;该茶是蒙古族的传统饮品。

通过这种处理,系统能够更准确地筛选信息,从而提升了答案的精确度。

最后的最后

感谢你们的阅读和喜欢,我收藏了很多技术干货,可以共享给喜欢我文章的朋友们,如果你肯花时间沉下心去学习,它们一定能帮到你。

因为这个行业不同于其他行业,知识体系实在是过于庞大,知识更新也非常快。作为一个普通人,无法全部学完,所以我们在提升技术的时候,首先需要明确一个目标,然后制定好完整的计划,同时找到好的学习方法,这样才能更快的提升自己。

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

大模型知识脑图

为了成为更好的 AI大模型 开发者,这里为大家提供了总的路线图。它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

经典书籍阅读

阅读AI大模型经典书籍可以帮助读者提高技术水平,开拓视野,掌握核心技术,提高解决问题的能力,同时也可以借鉴他人的经验。对于想要深入学习AI大模型开发的读者来说,阅读经典书籍是非常有必要的。

在这里插入图片描述

实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

面试资料

我们学习AI大模型必然是想找到高薪的工作,下面这些面试题都是总结当前最新、最热、最高频的面试题,并且每道题都有详细的答案,面试前刷完这套面试题资料,小小offer,不在话下

在这里插入图片描述

640套AI大模型报告合集

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

在这里插入图片描述

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值