你应该懂的AI大模型之RAG

从本篇开始笔者会尽量多使用一些英文缩写和单词,不是笔者为了装X,是为了大家在后面遇到的时候不至于被别人装到。

一、什么是RAG

1.1 大模型的局限性

大模型的知识不是实时的,比如现在《藏海传》已经完结了,但是我问deepseek给我的回答却是:

        除了知识不是实时的之外,大模型可能也不知道你当前所在业务领域的知识。这就是大模型目前所固有的局限性。

1.2 检索增强生成

为了解决大模型所固有的局限性,就有了 RAG(Retereval Augmented Generation),通过检索的方法来增强模型的能力。

再直白点大模型的能力不值得信任,微调的成本太高,所以才会用 RAG 的出现。

ps:笔者不知道哪种读法是对的,有的读 RAG 的英文字母,笔者有认识的大佬读[ræɡ],即 ruai ge,笔者觉着跟随者大佬读应该更能装到。)

        我们现在使用的 LLM(Large Language Model)是通过海量文本数据训练得来,能够理解和生成人类语言。也就是说当我们问大模型问题的时候大模型会从它先有的知识中得出答案回答我们,但是如果我们问一些时事或者专业领域问题的时候大模型没有这部分知识,那么大模型就有可能会自由发挥来回答我们问题,因此我们引入 RAG 相当于给大模型进行一场开卷考试,当我们问问题的时候,大模型会“先翻书”再回答问题。

        其实这就相当于给LLM戴上了紧箍咒。强制要求回答问题必须从给定的知识库中检索到的内容生成答案,不让LLM凭空想象捏造答案,大大降低了模型出现幻觉的概率。

二、RAG系统的基本搭建流程

        在上图中有两个比较新的东西,一个是Embedding模型和VectorDB,解释以下这两个概念:

  • Embedding模型,即嵌入式模型,它的作用是将非结构化的数据(如文本、图像、音频)转换成可计算的数值向量;

  • Vector DB:向量数据库,顾名思义可以理解为存储Embedding生成的向量数据的数据库。

        抛开这两个概念,RAG搭建的过程可以总结为以下四步:

1、文档加载,按照一定的条件和规则将文档切割成片段;

2、将切割的文本片段灌入检索引擎;

3、封装检索接口;

4、构建调用流程:Query->检索->Prompt->LLM->回复

三、向量检索

3.1、什么是向量

        向量是一种有大小和方向的数学对象。它可以表示为从一个点到另一个点的有向线段。例如,二维空间中的向量可以表示为 (x,y),表示从原点 (0,0) 到点 (x,y) 的有向线段。

        从数学的角度看,向量是一个“有方向和大小的东西”,可以用数字坐标来描述。在计算机世界中,我们可以把向量简单地理解为一组“有意义的数字”,用来表示事物的特征

        例如我们描述一只猫的可以描述为有胡须、有毛、会喵喵叫,这些信息转换成向量就可以用一堆数字来表述[有胡须:0.981,有毛:0.193,会喵喵叫:0.453],每个数字都代表一个特征,这样猫的特性就被向量化了,就能被计算机检索出来。

        文本向量就是将文本转成一组N维的浮点数,即文本向量又叫Embeddings,向量之间可以计算距离,距离的远近对应语义相似度的大小。

PS:文本向量是怎么计算得到的,这不是本文能讲解明白的,不是笔者不想写,是想要把这个话题拿来写着实是有点难度。

3.2、向量间的相似度计算

        向量的相似性通常通过计算向量之间的距离来比较。 距离越小,相似性越高。常用的算法比如余弦距离和欧式距离来判断向量距离。

        假设我们有两个文本的向量:

文本1:“我感冒了” → 向量为 [0.82, 0.61, 0.97]

文本2:“我流感了” → 向量为 [0.90, 0.73, 0.98]

        通过余弦相似度公式计算余弦相似性,结果越接近1,说明两个文本的语义高度相似。

欧氏距离:越小越相似。

余弦距离:越大越相似,余弦值越大夹角越小,距离越近。

3.3、向量数据库

Embedding Modle(嵌入模型)负责计算向量,向量数据库负责存储和比较向量。向量数据库是专门为向量检索设计的中间件!

读到这里大家可能会觉着向量数据真厉害,简直可以秒杀传统的关系型数据库,在这里告诉大家:

  • 向量数据库的意义是快速的检索;

  • 向量数据库本身不生成向量,向量是由 Embedding 模型产生的;

  • 向量数据库与传统的关系型数据库是互补的,不是替代关系,在实际应用中根据实际需求经常同时使用。

大家不要盲目迷信学习大模型我们带来的新的技术视野。

下面为大家列举几个常见的向量数据库,这些向量数据库的特点大家可自行总结:

  • Chroma

  • Deep Lake (Activeloop)

  • Elasticsearch & OpenSearch(没想到吧,Elasticsearch也支持向量检索)

  • Faiss (Facebook AI Similarity Search)

  • LanceDB

  • Milvus

  • Pinecone

  • PgVector (PostgreSQL 扩展)

  • Qdrant

  • ScaNN (Scalable Nearest Neighbors)

3.4、认识几个Embedding模型

建议大家去HuggingFace上瞅瞅吧。。。正好不知道的同学可以了解下HuggingFace是啥,除了HuggingFace还可以逛逛阿里的魔塔社区。

四、其他可以装到的话题

4.1、企业中落地RAG常用的向量数据库

        milvus和Qdrant。

4.2、大模型的两个流派

        RAG派和上下文窗口扩大派,这两派的论调大家自行搜索查看就好。

        在笔者看来,目前做项目能够简单落地的还就是RAG。

4.3、Hybird Search 混合检索

        在实际生产中,传统的关键字检索(稀疏表示)与向量检索(稠密表示)各有优劣。举个具体例子,比如文档中包含很长的专有名词,关键字检索往往更精准而向量检索容易引入概念混淆。所以,有时候我们需要结合不同的检索算法,来达到比单一检索算法更优的效果。这就是混合检索

4.4、处理PDF文档中的表格

PDF中的表格我们怎么处理抽取,大家放心,我们能遇到的问题,大佬们肯定早就碰到了,因此有很多面向RAG的文档解析辅助工具:

  • PyMuPDF: PDF 文件处理基础库,带有基于规则的表格与图像抽取(不准)

  • RAGFlow: 一款基于深度文档理解构建的开源 RAG 引擎,支持多种文档格式(火爆)

  • Unstructured.io: 一个开源+SaaS形式的文档解析库,支持多种文档格式

  • LlamaParse:付费 API 服务,由 LlamaIndex 官方提供,解析不保证100%准确,实测偶有文字丢失或错位发生

  • Mathpix:付费 API 服务,效果较好,可解析段落结构、表格、公式等,贵!

五、GraphRAG

·通过知识图谱来增减检索,即在检索中利用图谱的关联性捕捉深层语义,弥补依赖向量相似度的不足。特点是小公司玩不起,都是大公司在玩。

关于为什么不写具体实践。笔者会在后面的篇章中专门拿出几章来扫盲开发过程,那时就能看到这些技术大概是怎么落地的了。

### RAG模型概述 RAG(Retrieval-Augmented Generation)是一种融合了检索增强机制的生成型语言模型,由Facebook AI研究院(FAIR)提出。这种架构通过结合传统的基于检索的方法和现代的语言生成技术来提升自然语言处理任务的效果[^3]。 ### 工作原理详解 #### 数据获取阶段 在数据准备过程中,RAG利用外部知识库作为补充资源。当接收到输入查询时,系统首先会在预先构建的知识图谱或其他形式的大规模语料库中执行信息检索操作,找到最有可能帮助完成当前对话或任务的相关片段。 #### 动态上下文集成 不同于静态预训练模式下的纯生成方式,在线检索到的具体实例会被即时融入到解码器端口处,使得每次预测都能依据最新获得的真实世界证据来进行调整优化。这一特性赋予了RAG更强的情境适应能力,尤其是在面对开放领域问答、多轮次交互式聊天等复杂场景下表现尤为突出。 #### 双重评分机制 为了确保最终输出的质量,RAG采用了两步走策略:先是从候选集中挑选出若干高质量的回答选项;再经过一轮精细评估后决定最佳回复方案。具体来说就是分别计算每条建议得分——一方面考量它与原始请求之间的匹配度;另一方面也要顾及内部连贯性和逻辑一致性等因素。 ```python def rag_model_inference(query, knowledge_base): retrieved_docs = retrieve_relevant_documents(query, knowledge_base) generated_responses = [] for doc in retrieved_docs: response = generate_response_based_on_document(doc) generated_responses.append(response) best_response = select_best_response(generated_responses) return best_response ``` ### 应用案例分析 实际应用方面,《大模型RAG实战:RAG原理、应用与系统构建》一书中提供了丰富的实践指导和技术细节解析,涵盖了从理论基础到工程实现再到部署上线全流程的内容介绍。对于希望深入了解并掌握这项前沿技术的研究人员而言,这本书籍无疑是一个宝贵的学习资料来源[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值