RAG全栈技术从基础到精通 ,打造高精准AI应用

一、什么是RAG(可以参考资料:/s/1arFJBZkt7ajtGTpVeeZiKw 提取码:6ddh

RAG 即“检索增强生成”(Retrieval Augmented Generation),这项技术通过将大量外部数据与基础模型相结合,显著增强了语言模型(LLM)的能力,使得AI的回应更加真实、个性化和可靠。

RAG 技术的核心在于结合了检索(Retrieval)和生成(Generation)两大核心技术。在处理复杂的查询和生成任务时,RAG 首先通过检索模块从大量数据中找到与查询最相关的信息,然后生成模块会利用这些检索到的信息来构建回答或生成文本。

自2020年提出以来,从最初的朴素RAG(Naive Rag),到高级RAG(Advance Rag),再到模块化RAG(Modular Rag),RAG系统不断优化和迭代,以解决实际应用中遇到的问题,如索引环节中的核心知识淹没问题、「检索环节中的用户意图理解不准确问题」,以及生成环节中的冗余信息干扰问题等

二、GraphRAG框架的关键组件
查询处理器(Query Processor):负责预处理用户定义的查询,使其能够与图数据源进行交互。
检索器(Retriever):根据预处理后的查询从图数据源中检索相关内容。
组织者(Organizer):对检索到的内容进行整理和优化,以提高生成器的性能。
生成器(Generator):根据组织后的信息生成最终答案。

三、企业大规模落地 RAG 核心问题
经过了很长时间对 RAG 的研发,总结出了企业 RAG 落地的关键点,分别是效果、性能和成本。

效果:今天很多企业并没有大规模的落地 RAG,或者说是在一些关键场景上没有去使用 RAG,是因为企业担心用了以后,会因为效果问题,影响他们核心场景的业务。所以效果问题是现在 RAG 落地最关键的因素。

性能:在 RAG 链路里很多环节是需要使用大模型的,比如说向量化、文档解析,最后大模型的生成、 大模型 Agent 等。这样整个链路多次调用大模型,会导致离线和在线性能都会有不同程度的下降。比如说像 GraphRAG ,一个30K 的文档需要将近1个小时时间才能把数据处理好,这样的话很难在一个生产环境中去落地。

成本:相对于其他的应用来说,RAG 应用需要去多次调用大模型,而大模型背后就是 GPU , 但 GPU 资源是紧缺和昂贵的,这就不可避免的导致这类应用比其他应用的成本高很多,所以很多客户无法接受这个成本。

四、RAG 优化效果—数据提取和解析
首先在效果层面,离线链路里第一个优化点就是文档解析。文档有很多格式,比如说 PDF、Word 、PPT,等等,还有一些结构化数据。然而最大的难点还是一些非结构化的文档,因为里面会有不同的内容。比如说像表格、图片,这些内容 AI 其实是很难理解的。在通过长期大量的优化以后,我们在搜索开放平台里面提供了文档解析服务,支持各种各样常见的文档格式和内容的解析。

五、RAG 优化效果—文本切片
文档解析完,从文档里面能够正确的提取出内容后,接下来就可以进行文本切片。切片有很多种方法,最常见的有层次切分,把段落提取出来,对段落里面的内容再进行段落级的切片;还有多粒度切分,有时除了段落的切片,还可以增加单句的切片。这两种切片都是最常用的。另外对于一些场景,我们还可以进行基于大模型的语义切片,就是把文档的结构用大模型处理一遍,然后再提取一些更精细的文档结构。那么经过了多种切片以后,我们就可以继续进行向量化了。

六、RAG 评估
纯检索指标
精准率(Precision):衡量信号与噪音的比例——检索到的相关文档 / 所有检索到的文档。
召回率(Recall):衡量完整性——检索到的相关文档 / 所有相关文档。我们认为召回率是检索领域的北极星指标。这是因为只有当我们有足够的信心,相信检索到的上下文完整到足以回答问题时,检索系统对于生成任务来说才是可接受的。
F1 分数:精确率和召回率的调和平均值。
检索 & 重排指标
平均倒数排名(Mean Reciprocal Rank, MRR): MRR 计算的是最相关文档的倒数排名的平均值。如果正确答案的排名是高的(即排名接近第一位),则倒数值会大。MRR 值的范围是 0 到 1,值越高表示检索系统性能越好。
平均精确率均值(Mean Average Precision, MAP): MAP 首先计算每个查询的平均精确率,然后对所有查询的平均精确率进行平均。这里的 “精确率” 是指在每个排名阶段检索到的相关文档数量占到目前为止所有检索到的文档数量的比例。MAP 考虑了所有相关文档,并且对检索结果的排序非常敏感,值越高,表示检索系统的排名性能越好。
归一化折损累计增益(Normalized Discounted Cumulative Gain, NDCG): NDCG 倾向于赋予排在前面的相关文档更高的权重,是一种位置敏感的度量方法。NDCG 先计算一个未经归一化的折扣累积增益(Discounted Cumulative Gain, DCG),然后用这个值除以一个理想状态(即最佳排名顺序)下的 DCG,从而得到归一化的值。NDCG 的值范围在 0 到 1 之间,越接近 1 表示检索性能越佳,特别是在前面几个结果的质量方面。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/893396.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Feedalyze - 让你听得见、听得清用户的反馈

Feedalyze - 专注于用户反馈的管理分析工具,让你听得见、听得清用户的反馈!满足用户需求,解决用户问题,获得适当报酬是商业成功最为重要的因素。然而扪心自问,当您推出新产品后,您真的在听、听得见、听得清用户的反馈么? 当今信息传播迅猛,渠道繁多,优秀产品随口碑效应…

自己写一个下载器,速度堪比IDM下载器

心血来潮,想自己做个下载器,类似于腾讯的游戏高速下载器。类似下图这种,这样又可以接受客户定制喽。开干!解决单文件exe问题这类程序都会利用第三方的下载插件来提升下载速度,但是就会出现多个文件的问题,给人体验感就不好了。利用ILMerge将三方的插件都合并起来,顺利解…

文件下载方法

通用下载1 package com.stig.business.web.contoller;2 3 import com.stig.business.web.mobel.po.EbssFileInfo;4 import com.stig.common.constant.Constants;5 import com.stig.common.properties.BusStopSignProperties;6 import com.stig.common.utils.RedisUtils;7 impor…

Charles安装及使用教程

一. 简介及安装 一、charles的使用 1.1 charles的说明 Charles其实是一款代理服务器,通过过将自己设置成系统(电脑或者浏览器)的网络访问代理服务器,然后截取请求和请求结果达到分析抓包的目的。该软件是用Java写的,能够在Windows,Mac,Linux上使用。安装Charles的时候要…

47.9K star!全平台开源笔记神器,隐私安全首选!

"Joplin 是一款开源的笔记记录和待办事项应用,支持端到端加密同步,完美替代商业笔记软件" —— 来自开发者 Laurent Cozic嗨,大家好,我是小华同学,关注我们获得“最新、最全、最优质”开源项目和高效工作学习方法"Joplin 是一款开源的笔记记录和待办事项应…

什么是项目管理?五大流程是什么?

项目管理这东西,大家可能听过,但是具体怎么操作,很多人可能就一头雾水了。 简单来说,项目管理就是为了完成某个特定目标,把时间、资源、人员等因素有条不紊地组织、协调、控制和调整,最终确保项目按时、按预算、高质量地完成。 这个“项目”可以是任何东西,比如公司新产…

最全面的浏览器教程-完结撒花

完结撒花 🎉🎉🎉完结撒花 🎉🎉🎉 《最全面的浏览器教程》目前要告一段落了,耗时我一个多月,整理了大量的笔记,参考了很多教程和文章,累计写了 24 篇文章,7.3 万字,200 多张图片,收获了很多粉丝和鼓励,在此表示感谢。 如果后续有学到什么新技巧,看到好玩意…

牛客题解 | 字符串相乘

牛客题库题解题目 题目链接 题解 题目难度:中等难度 知识点:字符串、大数相乘 模拟人工计算 计算的过程基本上和小学生列竖式做乘法相同。为编程方便,并不急于处理进位,而将进位问题留待最后统一处理。数组a存储第一个数字123(逆序)数组b存储第二数组20(逆序)结果存入数…

皮尔逊、斯皮尔曼、肯德尔相关系数

相关系数和特征选择 相关系数和特征选择,一个是属性,一个是特征。一般,把数据集中的各列成为属性,而对算法模型表现有益的属性成为特征。例如,在预测泰坦尼克乘客的存活情况时,乘客姓名这个属性对我们的预测可能没有帮助,甚至会干扰模型表现;而乘客年龄、性别或许与存活…

认识 TapFlow,以编程方式运行 TapData

TapFlow 是 TapData Live Data Platform 最新推出的一个面向编程的API 框架。TapFlow 可以让开发者和数据工程师用一个简单易用而又强大的编程语言来进行数据管道和数据模型的开发工作。**什么是TapFlow? ** TapFlow 是 TapData Live Data Platform 最新推出的一个面向编程的A…

Maya 影视渲染,渲染101 让创作无压力!

Maya 创作时,渲染是不是常让人崩溃?漫长等待、电脑性能不足、报错频出,今天就给大家分享基于渲染 101 平台的 Maya 云渲染,轻松解决这些难题!告别漫长等待,效率飙升**** 自己电脑渲染复杂 Maya 项目,耗时久,进度慢。渲染 101 的云渲染有强大计算集群,众多高性能服务器…