技术解读 1天前 107 阅读 11 评论

为什么 RAG 能让 AI 更 “聪明”?工作原理深度拆解

人人都是产品经理

发布了 84 篇文章

在人工智能领域,大语言模型(LLM)的快速发展为自然语言处理带来了革命性的突破。然而,这些模型在处理实时信息、专业领域知识以及确保回答准确性和可靠性方面仍面临挑战。本文将深入探讨一种名为RAG(Retrieval-Augmented Generation,检索增强生成)的技术框架,它通过结合信息检索与大语言模型的生成能力,为AI模型提供了强大的外挂支持。

一、为什么要做RAG?

时效性:模型的训练是基于截止某一时间点之前的数据集完成的,这意味着在这之后发生的事情大模型就难以回答。如果需要构建能够推理私有数据或者模型截止日期后引入的数据,则需要使用RAG;

解决模型幻觉问题:传统大模型依赖训练数据,易生成错误信息,比如用户问了一个大模型不知道的东西,它会通过瞎编来回答,其实毫无依据。RAG 通过外部知识检索提供实时、可靠的上下文支撑,因此减少“一本正经的胡说八道”现象;

(美国的一位律师,他用大模型去搜集案例,Chat GPT确实给出了几个案例。律师反复去确认这些案例是真实的吗?大模型回复都是真实的,开庭时,经过核实这些案例其实都是AI虚构出来的。)

弥补专业领域知识内容不足:金融领域、医疗领域等有自己专业知识的沉淀,大模型其实是不具备某领域非常专业知识的能力的,那我们就可以把专业知识通过Rag技术让大模型进行知识库检索。例如金融(业务上的专业知识、产品知识、产品手册、优质的用户问答等);

可靠的知识来源与可验证性:来自哪篇文章、哪个文档、哪个网页都有迹可循,可以看到回答的依据来源,使得验证答案准确性变得容易起来;

保障数据安全:可以让大模型调用私有知识库来服务用户,避免数据上传云端或者外部,导致重要信息、敏感数据外泄的情况。

二、RAG到底是什么?

RAG(Retrieval-Augmented Generation,检索增强生成)是一种结合信息检索与大语言模型生成能力的技术框架,它由两部分组成:“检索器”和“生成器

  1. 检索器从外部知识中快速找到与问题相关的信息
  2. 生成器则利用检索到的信息来生成精确和连贯的答案。

简单来说就是:通过检索的模式,为大语言模型提供强有力的外挂,从而使大模型生成的答案更符合用户想要的答案。

三、RAG的工作原理

步骤一:构建可检索的知识库

如何构建可检索的知识库?

01.知识整理:以文件格式存储,比如 word、pdf、ppt、excel、在线的、网页等等;

02.数据清洗及格式化:将不同格式的数据内容提取为纯文本

03.内容切分:将文本内容按段落、主体或者逻辑单元切分成较小的知识片段(Chunk); 那谁来切呢?Embedding

04.向量化:将每个知识片段转化为向量表示(比如Open AI的 Embedding 接口)

知识补充:什么是向量

向量(Vector)是一种将复杂信息转化为计算机可处理的数值形式核心工具,本质上是 “高维空间中的有序数值数组”。它通过将文本、图像、声音等数据映射为特定维度的数字序列,让 AI 模型能够高效地理解、计算和学习数据背后的规律

通俗来说,向量是 AI 的「数字身份证」:把万物变成数字串

在 AI 眼里,图像、文字、声音甚至用户行为,都必须先变成一串数字组成的向量才能处理。

举个栗子:

文本(NLP 领域): 句子 “我喜欢 AI” 会被转化为向量,比如用 Word2Vec 技术生成 [0.8, -0.3, 1.2, …] 这样的数字串,向量中的每个数字代表一个隐藏的语义特征(比如 “喜欢” 的情感强度、“AI” 的领域相关性)。

神奇的是:“AI” 和 “人工智能” 的向量在空间中会非常接近,因为它们语义相似。

借助Embedding模型,将切分好的片段转化成向量(数字组成的),这个向量是可以比较相似度

05.关联元数据:给每个向量关联相关元数据(如:文档名称、创建时间、作者、来源等)

06.载入向量数据库并建立索引:向量数据库如FAISS、Pinecone、Weaviate;

07.部署集成:将向量数据库集成到AI产品流程中,生成模型搭配使用。

步骤二:模型调用知识库完成用户任务

  1. 将用户的Prompt转化成向量,去向量数据库里比较相似度;
  2. 选取相似度较高的1条或者多条知识片段(3条,5条,10条这样的召回),并提取知识片段原文;
  3. 将检索出的知识片段与原Prompt 合并在一起组成新的Prompt
  4. 模型生成最终回复

四、如何提升回答的准确率?

以智能客服举例,比如客服系统无法充分理解用户的真实意图,回答偏离主题时

对用户 Prompt 进行改写,相同语义的不同问法

可以将用户的问题,通过大模型改写成多个相似语义的问题(具体可能是2个、3个、4个、5 个等,根据准确率评估来定)

比如用户问:如何交易美股?

我们将用户问题改写成4个相同语义的问题

  • Q1 我怎么交易美股? 对应50个相似片段–通过排序–挑选Top3
  • Q2 我怎么买国外的股票?对应50个相似片段–通过排序–挑选Top3
  • Q3 我怎么买美股? 对应50个相似片段–通过排序–挑选Top3
  • Q4 可以买美股吗? 对应50个相似片段–通过排序–挑选Top3

将得出的top12 再次进行重排序,得到Top3,Top3+用户提问+系统提示词,一起给到大模型,大模型给出回答。准确率也是会有一定的提升;

检索到信息,想要的答案排序靠后

加入排序模型(Rerank模型)

在基础RAG中,准确率大概在66%左右,在加入Rerank之后,准确率提升了12%(重新排序可以增加一定的准确度)

在向量知识库中检索到相应的片段之后,加入排序模型,对这些相关片段进行排序。

比如:检测出60个相关片段,经过Rerank排序之后,挑选出前三个相似度最高的片段+用户提问+系统提示词,一起给到大模型,大模型给出回答。

回答不全面

Chunk 切分处优化

  • 知识片段有明确主题、交叠切分、多颗粒度混合切分;
  • 知识片段的上下相邻片段可以一并取出,提高信息完整度

检索不全面

向量+关键词混合检索

方法:关键词匹配和向量匹配相结合的形式

  1. 关键词检索,召回简单直接,能快速找到包含特定关键词的文档,速度快;
  2. 向量匹配,能更好处理语义层面的匹配,提高召回的全面性。

这两者的结合,可以充分利用各自的优势 提高召回率。

这几个小技巧是提升准确率的比较好用的小方法,分享给大家,大家也可结合自己的项目继续探索,多多交流~

五、市面上向量数据库对比

本文由 @梧桐AI 原创发布于人人都是产品经理。未经作者许可,禁止转载

题图来自Unsplash,基于CC0协议

该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务

人人都是产品经理

人人都是产品经理

84篇文章 10947阅读 58654粉丝

评论 (11)

用户头像

RAG 真是太酷了,让 AI 像人一样“理解”信息!

用户头像

这太有创意,以后AI会不会也开始写诗?

用户头像

真搞怪,希望AI不会变成什么邪恶的统治者!

用户头像

这玩意儿,说得好,但别忘了AI也可能是被操控的!

用户头像

我有点担心,人类的思考方式会不会被改变?

用户头像

这太神奇,感觉世界要改变了,有点兴奋!

用户头像

这太烧脑了,AI居然能像人一样思考?

用户头像

这简直是给AI喂了整整的信息,未来会发生什么?

用户头像

我有点害怕,但确实挺有意思的,谁知道会变成啥样?

用户头像

太有意思,感觉未来人类都要被AI取代了!