返回顶部
热门问答 更多热门问答
技术文章 更多技术文章

RAG 外挂知识库

[复制链接]
链载Ai 显示全部楼层 发表于 前天 21:00 |阅读模式 打印 上一主题 下一主题


RAG是什么?

RAG 是大模型的外挂知识库,英文全称 Retrieval - Augmented Generation
是大模型的知识外挂。

明确大模型的知识边界

首先,明确大模型的知识边界,要知道大模型不能干什么。
第一:大模型是由过去的知识训练得来的,所以在知识的实时性上存在短板
第二:大模型的核心实现是基于数学概率,所以在内容生成上存在不合逻辑不符合的实际的现象,这也被称作幻觉。
第三:大模型一般都是公开的数据集训练成,缺乏专业领域的知识,所以需要补充行业或者是公司内部的专业知识,另一个原因就是为了保证专业知识的数据安全性,一般都不会把这类知识放在第三方的平台上进行训练和推理。
所以RAG主要就是对现下的大模型进行补短板和优化。解决知识的实时性补充和上下文的逻辑补充,以及专业知识的补充,和维护数据安全。
基本上RAG要解决的就是这四个方面的问题。

RAG的实现

把RAG 的目的搞清楚了之后,再来讨论它是怎么实现的。上文已经知道了RAG是对大模型进行知识补充,也就是说,RAG应该有很多数据,那么这些数据如果我们要使用的话,就涉及到对数据进行检索和存储的问题。
检索和生成这两点都是RAG的核心。
在检索这块,为了提高检索的效率和准确性,必然是要用到一些技术的,这里面包括对查询的优化,和对索引的优化。
在查询这块上,一般会使用Enrich、多路召回、问题分解等优化方法(这里主要对这三种做解释)。
Enrich,对查询丰富化,也就是要求用户补充足够的信息,也就是要求用户提供更加全面的信息。
多路召回,对问题从不同的维度去进行检索。
问题分解,对问题进行分解,按一个一个小问题进行回答。
这里需要注意,多路召回和问题分解是有本质上不同的。

索引的优化,有:
摘要索引,这里会结合大模型,对知识文档生成摘要,然后将摘要作为索引。
父子索引,这里实际上是对文档进行切割,例如将文档切成不同的大块之后,将每个大块切成若干份小块,类似于树形结构。
假设性问题索引,这里会对文档生成若干份的假设性问题,然后将问题作为索引。

以及元数据索引,像文章的标题、作者,甚至是摘要,也就是说文章的相关信息。

以上所说的优化是预检索优化,除了预检索优化还有后检索优化。
这里包括混合检索以及重排序、向量过滤。(为避免复杂,这里不对多模态RAG作解释)

搜索和索引说完之后,我们再来看看存储。
在存储上,一般会分为两块,一块是知识文档的存储,一块是索引向量的存储。
存储索引向量的同时,一般会附带着存储索引所对应的文档信息,也就是说会根据索引找到文档。

除了以上的实现,再点一下数据预处理,也就是数据的解析以及分块和入库。
数据的类型包括pdf、world、excel等等,我们需要对些文档做一些必要的解析和分块,最后就是入库和构建索引。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

链载AI是专业的生成式人工智能教程平台。提供Stable Diffusion、Midjourney AI绘画教程,Suno AI音乐生成指南,以及Runway、Pika等AI视频制作与动画生成实战案例。从提示词编写到参数调整,手把手助您从入门到精通。
  • 官方手机版

  • 微信公众号

  • 商务合作

  • Powered by Discuz! X3.5 | Copyright © 2025-2025. | 链载Ai
  • 桂ICP备2024021734号 | 营业执照 | |广西笔趣文化传媒有限公司|| QQ