AI产品经理必须知道的技术 之 RAG

AI产品经理或者准备从事这个职业的朋友,一定都听说过RAG。RAG全称是Retrieval Augmented Generation,中文意思是检索增强生成,是一种构建AI应用的方法。

今天我就跟大家唠一唠RAG,什么是RAG、RAG的实现方式,以及RAG的典型产品应用分享。

01

RAG介绍

RAG是目前AIGC文本生成最普遍、最成熟的应用方法

通俗地理解就是:把知识库提供给大模型,让大模型根据知识库的内容进行回答。

这和用户直接上传一个文档,让大模型根据文档回答问题有一些小的区别。

RAG有一个前置流程,即先检索知识库,把检索出来的知识片段提供给大模型,再让大模型根据知识片段回答问题。

这么做的好处是什么呢?

总结来说,RAG对AIGC应用的价值有三个方面:

  1. RAG可以引导大模型回答内容的范围、提升回答质量。

  2. RAG可以补充大模型在专业领域的知识上的不足,可以让大模型变为行业专家,以及让大模型可以获取最新的知识。

  3. RAG弥补了大模型处理token长度的限制,对于非常大的知识库,也可以进行检索生成。

举个应用场景的案例:

【场景】你公司有一款产品,你希望将该产品的知识文档,都提供给大模型,给用户提供一个基于大模型的智能问答客服,帮助用户快速解决问题。

RAG可以帮助你实现以下效果:

1、智能客服可以基于产品知识回答问题

回答结果可以引用的文档内容,以及大模型根据它的理解推理给出的答案。

它可以是基于知识内容的总结、解释。

也可以是基于知识内容,进行相关的工具调用,计算推理,得出答案。

也有更高级的用法,例如用思维链的方法,将问题拆分为多个任务,进行下一步的推理。当然思维链的方法已经不是RAG本身了,但我们可以将RAG方法应用在思维链推理模式中,用来构建复杂的任务。

2、知识库是可以实时更新完善的

你可以将最新的知识库内容提供给大模型,让在每次大模型回答问题前,都实时检索最新的内容。你不需要重新设置大模型。只要更新知识库即可。

这里有个小tips,知识库不仅仅是产品文档、用户手册。你也可以将过去大模型回答问题的记录,将其中常见的问题,优秀的回答,差的回答,经过审核筛选后,也作为知识的一部份。这可以很好地提升回答质量。

3、避免 大模型上下文Token长度限制

由于大模型处理内容有token长度限制,虽然随着大模型的升级,它能处理的token数越来越大(例如最新的claude3已经支持20万token),但是我们仍然需要RAG。

原因有三点:

(1)太长的上下文,处理速度会很慢。

(2)上下文知识并不是越多越好,而是要精确,由于大模型的注意力机制,过多的内容也可能会导致大模型被带偏,不能给出准确的答案。

(3)太长的上下文,成本上升巨大。

02

RAG实现

我们再来讲讲如何构建一个基于RAG的大模型应用。

首先,我们要了解RAG的工作流程。

RAG工作流程分为两个主要步骤:

一、构建知识库

二、问答流程

一、构建知识库

构建知识库又分为几个步骤:

内容解析->内容分片->内容Embedding->存储

1、内容解析

内容解析是将不同格式的文档,例如txt,html,word,excel,pdf,markdown 等格式的文件,提取出文本内容(其实也可以是音频、图像,这里方便介绍就以文本举例)。有许多开源工具,均提供了这些能力。

需要注意的是,尽可能地让这些数据解析后的格式更规范,以保证后续提供给大模型的内容质量更好。

2、内容分片

以上解析出来的内容,可能有是很长的篇幅。我们需要将它们切片成小的片段。这些片段就是我们后续要提供给大模型的知识。所以在内容分片时,尽可能让切片内容完整、独立。

简单的方法,一般可以设置一个最大片段字符长度。不超过字符长度的章节段落进行切分。如果知识篇幅不大,也一可以一篇文档一个分片。

3、Embedding

Embedding翻译成中文是嵌入,这个可能有的朋友不太理解。

我们知道一段文字,哪怕是一个词,它包含的信息都是非常非富的,并且不词与词之间,都有关联关系,比如说狗、dog、gou、旺财、二哈,这些词它们的意思是很接近的。但是数据库能存储的信息又是非常有限的。

Embedding通俗地理解就是将信息从非常高的维度,压缩映射成一个有限维度的向量。将一段任意长度的文本,Embedding处理后,都会得到一个多维的向量。例如这样:

[-0.01605728454887867, -0.008948222734034061, -0.015024525113403797, -0.02007514238357544, … -0.0011304783402010798]

我们以一个简单的例子来看:下图是一个三维的空间。

二哈、旺财、dog,狗,猫这几个词被映射到这个空间的某个位置。它们位置距离,就可以表示它们的相关性。位置可以用一个3维向量来表示。

维度越多,能表示的信息就越丰富,充足的语料训练,也能让Embedding 的模型结果更准确。

Embedding我们不是一定只能用大模型的来做,普通的算法也可以做Embedding,但是大模型的Embedding效果会更好。因为它训练的语料充足,维度更多。

OpenAI的Embedding 模型 text-embedding-ada-002 有 1536个维度。

这样两段不同的文本内容,可以映射成二个1536维的向量。

4、存储向量

我们将所有文本内容片段,用Embedding处理好后,可以存储在向量数据库中。因为后续需要在向量数据库中检索数据。

向量数据库比较常用的可以考虑:pgvector(PostgreSQL 的开源扩展),Elasticsearch,Chroma等。这里不作具体优劣对比。

在向量数据库里我们可以存储一些信息,例如:

文档ID、文档内容、章节索引、段落索引、Embedding向量。

存储的文档元信息,可以尽可能丰富一些,因为如果后续要优化,可以对检索的内容进行过滤。

这样,我们就完成了知识库的初始化构建。

二、问答流程

问答流程又分为几个步骤:

用户提问->问题Embedding->检索相关知识->封装Prompt->大模型回答

用户提问与大模型回答是最基础的流程。

在这中间,RAG做了几件事:

1、 问题Embedding

在接到用户的提问后,我们先将用户的问题,也进行Embedding处理,得到一个问题的向量值。

这个向量值,就包含了这个问题的信息,我们通过向量值的比较计算,就能找到与它相关的知识。

2、检索相关知识

将上一步得到的问题向量值,在向量数据库中检索,得到相关的内容片段。这些片段就是我们要提供给大模型的参考知识。

在检索时,我们可以指定返回的结果数,相似度阈值。例如返回相似度最高,且相似度大于0.3的3段内容。

3、封装Prompt

将上一步检索出来的3段内容,与用户问题,组成新的查询prompt,提交给大模型。这样大模型就可以参考我们检索出来的文档内容进行回答。

以上的过程,有很多优化的技巧,需要结合应用场景、数据进行详细的考虑和设计。优化的目的,是为了让大模型的回答更准确。

我总结了几种优化思路:

  1. 在对用户问题进行Embedding前,对问题进行补充完善。避免用户问题太过简单、或者有明显错误。

  2. 也可以考虑将用户问题,进行主题关键词抽取,或者使用知识图谱等进行初步的信息识别。这么做的目的是,避免用户的问题,信息太多太杂,导致检索出来的相关文档,与用户提问意图关联不大。也就是对用户问题进行简化。

  3. 在检索文档时,可以增加一些过滤条件,例如指定章节、关键词包含、日期筛选、相似度阈值等,以使检索出来的内容更准确。

  4. 对检索结果,也可考虑将相似度,与文档自身的权重进行综合加权。使提供给大模型的内容资料是最优的。

  5. 优化prompt,可以让大模型更好的学习参考内容和回答。这点应该是优化时首先考虑的,也是最低成本的优化方法。

  6. 如果有条件可以对大模型的生成内容进行监督,如果不符合预定的规则,则重新生成或者返回其它特定的内容。

03

RAG产品案例

RAG方法已经普遍被应用在各种AI产品中了。我们可以看几个产品案例。大家可以根据这些案例,来思考如何落地AI应用。

1、微软Copilot

微软Copilot是结合了BING搜索引擎的AI工具,用户提问后,它会根据搜索引擎的结果,进行总结回答。

对RAG来说,Embedding其实也不是绝对必要的,它的目的是为了更好地检索知识。搜索引擎本身也是检索知识,当然搜索引擎中也广泛地应用了Embedding技术。所以重要的是理解产品的逻辑,根据实际的需求来考虑如何设计产品。

2字节Coze

字节的Coze产品,也提供了RAG的能力,允许用户上传自己的知识文档。自动化构建你的专属AI应用。

Coze的使用门槛非常低,免费,不需要乱七八糟的上网方式,非技术人员也可以用,人人都可以创建自己的AI助理。

3 、Langchain-ChatChat

LangChain是一个开源LLM框架,包含了丰富的组件,例如数据处理,Embedding处理和向量存储、LLM终端等。

Langchain-ChatChat是基于LangChain开发的应用,可以集成开源大模型,例如ChatGLM(清华开源大模型),Qwen(阿里千问开源大模型)等。

它的优势:

(1)可以本地化部署,这样可以保护企业的数据安全,完全运行在企业内部私有环境。

(2)开源软件可以自定义扩展

(3)支持知识库管理等功能,开箱即用。

4、ChatPDF

ChatPDF,以及它有很多类似的工具。可以允许用户上传PDF文件,让大模型根据文件回答问题。

这类产品在早期chatgpt3.5版本时非常火。但后来chatgpt4提供用户上传文档能力后,有所被替代。这其实也是一个趋势,有许多AI应用短期很火,是因为它借助AI能力满足了一部份人的需求,而底层AI公司,现阶段主要在底层模型能力上发力,应用端则开放API,让生态自由发展。但现在AI应用的更新迭代丰常快,可能AI一次升级,许多AI应用产品就被替代了。做AI应用的创业团队,都需要考虑,尽可能的轻量、快速迭代。

5、Video Insights

Video Insights是一款Chatgpt的插件,允许用户提供一段视频(Youtube视频链接),它可以对YouTube视频进行转录、总结和聊天。

它的原理是先获取Youtube的视频字幕,然后交给Chatgpt作为参考内容,进行总结和对话。

读者福利:如果大家对大模型感兴趣,这套大模型学习资料一定对你有用

对于0基础小白入门:

如果你是零基础小白,想快速入门大模型是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以根据这些资料规划好学习计划和方向。

包括:大模型学习线路汇总、学习阶段,大模型实战案例,大模型学习视频,人工智能、机器学习、大模型书籍PDF。带你从零基础系统性的学好大模型!

😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

👉AI大模型学习路线汇总👈

大模型学习路线图,整体分为7个大的阶段:(全套教程文末领取哈)

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

👉大模型实战案例👈

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

在这里插入图片描述

👉大模型视频和PDF合集👈

观看零基础学习书籍和视频,看书籍和视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
在这里插入图片描述
在这里插入图片描述

👉学会后的收获:👈

• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

👉获取方式:

😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

  • 22
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值