企业级 RAG 全链路优化关键技术

2024 云栖大会 - AI 搜索企业级 RAG 全链路优化关键技术

在2024云栖大会上,阿里云 AI 搜索研发负责人之一的邢少敏先生带领大家深入了解如何利用 RAG 技术优化决策支持、内容生成、智能推荐等多个核心业务场景,为企业数字化转型与智能化升级提供强有力的技术支撑。并解读了企业级 RAG 全链路优化的关键技术,其主要内容分为四个部分:企业级 RAG 关键链路、企业级 RAG 效果优化、企业级 RAG 性能优化、企业级 RAG 应用实践

01

企业级 RAG 关键链路

1. RAG 链路图


RAG 的定义就是 Retrieval-Augmented Generation(检索增强生成),简单来说就是用搜索结果引导 LLM 的生成。下面是我们阿里云 AI 搜索开放平台的一个 RAG 的链路图,红色的部分是离线链路,蓝色的部分是在线链路。

2. 企业大规模落地 RAG 核心问题


我们团队经过了很长时间对 RAG 的研发,总结出了企业 RAG 落地的关键点,分别是效果、性能和成本。

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

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

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

02

企业级 RAG 效果优化

1. RAG 优化效果—数据提取和解析


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

2. RAG 优化效果—文本切片


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

3. RAG 优化效果—混合检索


阿里云研发了统一向量化模型,这个向量化模型能够同时产出稠密向量和稀疏向量,产出向量以后就可以进行混合检索,然后重排得到检索结果。并且这个向量化模型于今年3月份,在中文向量化的榜单上 C-MTEB 上拿到了第一名。

4. RAG 优化效果—NL2SQL


前面讲的三个是核心的离线链路,接下来就进入在线链路,在线链路的第一步是 query 的理解,query 理解通常情况下我们其实是用向量的,也就是说 query 进来以后,需要做简单处理先向量化再去召回。但是有些场景上,向量召回之后也是解决不了问题的。比如说我们要查询所有的电商企业里员工少于50人的企业的名称,对于小于50人这样一个数据,用向量的话,小于50人、小于40人、小于49人其实是很相似的,这是很难解决的问题。

对于这类场景,我们可以将自然语言转为一个 SQL ,在 SQL 数据库中进行精确的查找。还有一种就是查询实体和关系的,我们可以将自然语言转换成图查询语句在图数据库中进行查询,最后得到准确的结果。

5. RAG 优化效果—基于 LLM 的Rerank


在 query 处理完了以后,通常情况下在向量召回这一路还会做 Rerank 。Rerank 模型一开始的时候,我们使用开源的 Bge-reranker,这个也在整个效果上起到了很大的一个作用。

近期我们基于 Qwen 模型研发了新的 Rerank 模型,这个新的 Rerank 模型在各个方面都有了提升。我们把它用在了阿里云的 Elasticsearch AI 搜索的解决方案中,发现整体效果提升了30%。

另外也可以看到图表中,在这八个数据集三种不同指标上,效果相对于开源的 Bge-reranker 有很明显的提升。做完了 Rerank 以后,召回链路就已经完成了。

6. RAG 优化效果—大模型微调和测评


召回链路完成了以后,就进入了大模型生成。我们最开始用初版 Qwen 大模型的时候,大模型的各种能力其实不太完善,所以我们更多的是去优化大模型的能力。比如说使用 NL2SQL 时,需要去用大量的数据去微调大模型 NL2SQL 的能力。而随着大模型的快速迭代,能力变得越来越强。

这时我们就把精力转变到去优化大模型的幻觉率,让幻觉率不断的降低。我们在 Qwen 14b 的模型基础上进行微调,微调以后在客户场景上已经能够接近 GPT-4O 的模型效果。为什么要在一个14b 的模型微调上去呢?因为14b Qwen 模型会比72b Qwen 的模型要小很多,它会带来很大的性能提升。在效果打平的情况下,有很大的性能提升,其实是有很好的落地优势。

7. RAG 优化效果—Agent 解决复杂问题


以上链路上的解决方案,能帮我们处理一些简单的问答场景,但对于复杂的问答场景,还是不能解决。

比如像以下这两个例子,这是一个多步推理和多次搜索才能解决的问题。我们以第二个为例,问“黎曼的生肖是什么?”,首先第一次搜索会搜索出来:黎曼出生在1826年。然后大模型进行思考,会发起第二次搜索:这个时候1826年的对应的生肖是什么?在得到1826年的生肖是狗,大模型会最后做一个总结,黎曼的出生于1826年,生肖是狗。当然有些大模型是能够把这个年份和生肖对应起来的,可以直接回答,不用二次搜索。左边这个例子同样也需要大模型去做思考,两次检索才能得出结果。这就是我们用 Agent 解决复杂问题的例子。

8. RAG 优化效果—Agent 效果和挑战


我们阿里云团队在一个特定场景上进行了测试,使用原生的 RAG ,能解决78%的问题,平均搜索次数是1次。这个比较好理解,就是 RAG 通常搜索一次,然后生成答案。而在用了 ReAct 以后,能解答85%的问题,平均搜索1.7次。然后我们对 ReAct 进行了一些改进,Search-First ReAct 就是先搜索再让大模型去思考,这样的话能解决90%的问题,平均速度次数要减少到1.2次。所以可以看到使用了 Agent 之后,能够有效的减少搜索的这个次数,并且能够提升解答率,整体效果有了明显的提升。

当然目前 Agent 也面临一些挑战。比如,无法解决全部问题:一些复杂问题,暂时只能解决70%的问题,还有30%的问题无法解决,这还需要我们继续研究。另外还有性能下降:由于使用 Agent 之后,需要多次与大模型交互,所以查询性能会下降。另外大模型进行 Agent 推理的时候,如果第一步的推理总结错了,那么再往后继续推理的时候,就会错上加错,所以幻觉率可能就会变得很高。当然这些问题并不是不能解决,只是需要经过迭代优化。

9. RAG 效果优化迭代


最早的时候,我们使用初代的 Qwen 加上向量检索,能够获得48%的问题解决率。然后去做 Prompt 工程、多路召回、层次切片,能够做到61%。后来做的 Qwen SFT 提升到了72%。再后来加了Rerank,做了向量模型的优化和多粒度的切片。到现在我们在文档解析领域做了大量的优化,加上 Agent 的优化,再加上 CPU 的优化还有一定的语义切片等等一系列的优化叠加,问题解决率已经提升到了95%。因为面临的客户场景是非常复杂的,这一路走来的也很不容易。

03

企业级 RAG 性能优化

效果优化接下来就是性能层面的优化,在性能上我们首先需要看向量检索,向量检索我们有一个 VectorStore CPU 算法,还有个VectorStore GPU算法。

1. RAG 性能优化—VectorStore CPU 图算法


CPU 的算法使用的是 HNSW 算法,在这个算法基础上,我们做了图构建和检索两方面的优化,同时还有大量工程上的优化。优化完成以后 CPU 算法的性能,可以做到同类产品的2倍左右。大家可以在云上直接去搜索我们 Open Search 的向量检索版,然后去测试它的性能,以下是整个CPU的算法。

2. RAG 性能优化—VectorStore GPU 图算法


GPU 图算法使用的是 Nvidia 的算法,在实现了这个算法后我们带来的收益是在 Nvidia T4 的卡上能够有3至6倍的性能提升,在 Nvidia 的 A100/A800/H100 这些高性能卡上有30倍到60倍的性能提升。不过这样的一个性能提升,由于用了 GPU,同时也带来了一个成本的上升。

对于这个场景,我们做了一些测试,结论是在 QPS 很高的时候,或者说是达到一定阈值的时候,我们使用 GPU 的性价比会比使用 CPU 的性价比更高,大概的预值是在3000 QPS 左右。如果说我们的 QPS 很高,几千或者上万的时候,我们使用 GPU 就会有性价比优势。但是如果我们 QPS 很低的时候, GPU 算法是没有性价比优势的,以上是向量检索方面我们做的工作。

3. RAG 性能优化—大模型推理加速


我们使用缓存、大模型量化、多卡并行等多种不同的方法对大模型进行推理加速。

现在能做到的是在14b 的 Qwen 模型上,能够在1到3秒的时间内生成一个200 token 的答案,然后72b 的 Qwen 模型上能够在4秒左右的时间内生成一个200 token 的答案。因为随着 token 数的增加,时间也是增加的,如果平均答案长度在200 token 的话,能做到在3到4秒内生成答案,这就是用了大模型的推理加速的收益。

4. RAG 成本优化—大模型的微调


为了降低大模型微调的成本,我们研发了基于 Lora 的大模型微调。

微调客户模型时,如果一个卡给一个客户,这个客户就需要独立承担这张卡的成本,但是我们如果把多个客户的模型微调放在一张卡上,就可以节约成本。我们现在把40到50个客户的模型微调放在一张卡上,把原来每个月4000的微调成本降低到每个月100,这样成本降低为原来的40分之1。

Lora 实现方式有两种,一种是单卡 Lora,一种是多卡 Lora 。单卡Lora就是每张卡放客户的40-50个模型,多客户共享单卡。多卡 Lora 就是说把所有的模型都切开,模型切片放在多张不同的卡上。这是实现方式的不同。

04

企业级 RAG 应用实践

1. 企业级 AI 搜索开放平台


企业级 AI 搜索开放平台是把上面介绍的各种技术能力,以微服务的方式在一个服务广场上暴露出来。

首先它有很多的微服务,像文档解析、向量化、NL2SQL、LLM Agent、LLM 评测、LLM 训练、LLM 推理等都以微服务的形式暴露出来。用户可以用 API 的方式去调用。除了使用 API 调用单个服务之外,用户还可以使用 SDK 把微服务串联起来,然后串联一个场景。

除了支持阿里云的 SDK 之外,我们还支持 OpenAI SDK 、LangChain SDK、Llamalndex SDK。也就是前面我们提到的开源生态。这个平台就是为了让客户使用这些 SDK 或者用 API 调用的方式将这些微服务串联起来,去开发各种不同的场景,比如多模态搜索、 RAG问答、还有各种 AI 搜索相关的一些场景。

我们现在是支持 Havenask 引擎和 Elasticserach 引擎,后续的话会我们还会支持关于 GraphCompute 这样的图引擎和 Milvus 这样的向量引擎。

在最底下还会有一个统一的多模态数据管理。这个数据管理会支持像 PDF、Word、PPT 非结构化的文档,也支持数据湖、数据库的对接,还有 OSS 、HDFS 这些存储的对接。那么为什么要做数据层呢?这是因为做一个平台,如果让用户把自己的数据往这上面去搬迁的话,搬迁成本是很高的。如果有一个统一的数据管理层,就可以让客户把自己的数据库、数据源直接对接到平台,不需要迁移,直接在平台上开发应用场景。

2. 应用场景


我们在平台上还开发出来的,还有多模态搜索和多模态 RAG 的场景。我们需要去对接平台上的几个服务,比如向量化,图片理解等等,然后去串联出一个多模态搜索和多模态 RAG 的场景。

如果有一个复杂的 RAG 问题,在离线链路,会将一个 PDF 先把它处理成一个Markdown, 然后这个 Markdown 会切成几个切片,最后这些切片进行向量化,这是搜索开放平台 RAG 的离线流程。

在线链路的话,会进行首次检索,把问题搜索出两个切片,再进行总结,然后进行推理,生成子问题进行二次检索,并进行切片再做二次总结。在经历了两次的 agent 的搜索以后再得到一个最终总结。

3. OpenSearch LLM 版


除了面向开发者的搜索开放平台以外,我们还有 OpenSearch LLM 版。这个产品可以在三分钟搭建一个 RAG 服务。基本上只需要用户上传数据测试即可,此产品拥有基于 NL2SQL 可以基础表格问答的能力,以表格方式输出、推荐等等。

最后是我们依托 AI 搜索开放平台和 Elasticsearch Inference API 、Ingest API 框架的实现。在 ES 的离线链路、在线链路里也可以引入搜索开放平台,使用 Elasticsearch 的 AI 搜索的使用方式是和原生的使用方式,没有任何区别,这兼容了用户习惯。这些能力大家在阿里云 Elasticsearch 8.13 的版本、 Elasticsearch 8.16 的开源版本里都能看到。
读者福利:如果大家对大模型感兴趣,这套大模型学习资料一定对你有用

对于0基础小白入门:

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

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

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

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

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

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

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

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

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

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

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

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

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

👉大模型实战案例👈

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

在这里插入图片描述

👉大模型视频和PDF合集👈

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

👉学会后的收获:👈

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

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

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

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

👉获取方式:

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

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

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

相关文章

【Linux】了解pthread线程库,清楚并没有线程创建接口,明白Linux并不存在真正意义的线程(附带模型图详解析)

前言 大家好吖,欢迎来到 YY 滴Liunx系列 ,热烈欢迎! 本章主要内容面向接触过C的老铁 主要内容含: 欢迎订阅 YY滴C专栏!更多干货持续更新!以下是传送门! YY的《C》专栏YY的《C11》专栏YY的《Lin…

ECHO-GL:盈利电话驱动的异质图学习股票 走势预测

目录 简单概括1 背景知识相关的工作图学习在股票预测中的应用股票预测中的收益电话会议 方法异质股票图结构建造时间分配机制滑动窗机构库存空间关系模块异构边缘类型消息传递音频引导的注意聚合财报电话会议后股票动态模块预测和优化 实验消融研究 (for Q2)模拟交易 (for Q3) …

vue组件传值之$attrs

1.概述:$attrs用于实现当前组件的父组件,向当前组件的子组件通信(祖-》孙) 2.具体说明:$attrs是一个对象,包含所有父组件传入的标签属性。 注意:$attrs会自动排除props中声明的属性&#xff0…

【不要离开你的舒适圈】:猛兽才希望你落单,亲人总让你回家,4个维度全面构建舒适圈矩阵

单打独斗的英雄时代已经落幕 抱团取暖才是社会寒冬的良策 自然界中,每个物种都占据着自己的领地和生存空间。 生态位的差异决定了它们的生存方式,一旦离开领地,失去群体的庇护,就会沦为野兽的美餐。 人类社会同样存在隐形圈层…

【C++】踏上C++学习之旅(三):“我“ 与 “引用“ 的浪漫邂逅

文章目录 前言1. "引用"的概念1.1 "引用"的语法 2. "引用"的特性3. "引用"的使用场景3.1 "引用"做参数3. 2 "引用"做返回值3.2.1 "引用"做返回值时需要注意的点 4. 常引用5. "引用"在底层的实…

自动化数据处理:使用Selenium与Excel打造的数据爬取管道

随着互联网信息爆炸式增长,获取有效数据成为决策者的重要任务。人工爬取数据不仅耗时且效率低下,因此自动化数据处理成为一种高效解决方案。本文将介绍如何使用Selenium与Excel实现数据爬取与处理,结合代理IP技术构建一个可稳定运行的数据爬取…

RocketMQ快速开始

前置推荐阅读:RocketMQ简介-CSDN博客 本地部署 RocketMQ 这一节介绍如何快速部署一个单节点单副本 RocketMQ 服务,并完成简单的消息收发。 系统要求 64位操作系统,推荐 Linux/Unix/macOS64位 JDK 1.8 1.下载安装Apache RocketMQ​ RocketMQ…

aws 把vpc残留删除干净

最近忘了把vpc 删干净导致又被收了冤大头钱 在删除vpc 的收发现又eni在使用,但是忘了是哪个资源在占用 先用命令行把占用的资源找出来停掉 使用 AWS 命令行界面(CLI)来查看 VPC 的使用情况 列出子网: aws ec2 describe-subnets …

抖音列表页采集-前言

准备工作: 1.关于selenium介绍: python自动化入门的话,selenium绝对是最方便的选择,基本逻辑即为:程序模拟人的行为操作浏览器,这样的操作需要借用浏览器驱动,我选用的是chrome浏览器&#xff…

浮动练习(3)

##每台电脑分辨率不同&#xff0c;数值高度宽度需要自己调&#xff0c;仅供参考 <!DOCTYPE html> <html> <head> <meta charset"UTF-8"> <title></title> <style> div{ …

港大和字节提出长视频生成模型Loong,可生成具有一致外观、大运动动态和自然场景过渡的分钟级长视频。

HKU, ByteDance&#xff5c;⭐️ 港大和字节联合提出长视频生成模型Loong&#xff0c;该模型可以生成外观一致、运动动态大、场景过渡自然的分钟级长视频。选择以统一的顺序对文本标记和视频标记进行建模&#xff0c;并使用渐进式短到长训练方案和损失重新加权来克服长视频训练…

MATLAB(Octave)混电动力能耗评估

&#x1f3af;要点 处理电动和混动汽车能耗的后向和前向算法模型(simulink)&#xff0c;以及图形函数、后处理函数等实现。构建储能元数据信息&#xff1a;电池标称特性、电池标识符等以及静止、恒定电流和恒定电压等特征阶段。使用电流脉冲或要识别的等效电路模型类型配置阻抗…

多功能纤维上线,大脑肠道 “无线畅聊” 不是梦

大家好&#xff01;今天来了解一篇多功能微电子纤维研究——《Multifunctional microelectronic fibers enable wireless modulation of gut and brain neural circuits》发表于《Nature Biotechnology》。我们都知道大脑和内脏器官的沟通对生存至关重要&#xff0c;可一直以来…

为您的 WordPress 网站打造完美广告布局 A5广告单元格插件

一个为 WordPress 网站量身定制的强大工具,它将彻底改变您展示广告的方式 灵活多变的布局设计 A5 广告单元格插件的核心优势在于其无与伦比的灵活性。无论您是想要创建整齐的网格布局,还是希望打造独特的不规则设计,这款插件都能满足您的需求。 自定义网格数量&#xff1a;从 2…

生命科学的前沿挑战与未来机遇

生命科学的前沿挑战与未来机遇 一、引言 21世纪被誉为生命科学的世纪&#xff0c;生命科学的迅猛发展为人类的健康、环境和社会经济带来了巨大的变革。从基因编辑技术的突破&#xff0c;到合成生物学的兴起&#xff0c;再到生物医药的快速进步&#xff0c;生命科学的前沿挑战…

如何使用 Browserless 抓取动态网站?

什么是动态网页&#xff1f; 动态网页是指其内容并非完全直接嵌入在静态HTML中&#xff0c;而是通过服务器端或客户端渲染生成的网页。 它可以根据用户的操作实时显示数据&#xff0c;例如在用户点击按钮或向下滚动页面时加载更多内容&#xff08;如无限滚动&#xff09;。这…

DolphinDB 2024 年度峰会回顾之分论坛:权益类数字基建与技术创新

在这个数字化时代&#xff0c;金融科技正以前所未有的速度发展&#xff0c;而权益类数字基建作为这一进程的核心支撑&#xff0c;正不断推动着金融领域的创新与变革。 DolphinDB 2024 年度峰会的分论坛 A 聚焦《权益类数字基建与技术创新》这一核心议题&#xff0c;邀请到了业…

携手并进,智驭教育!和鲸科技与智谱 AI 签署“101 数智领航计划”战略合作协议

近日&#xff0c;上海和今信息科技有限公司&#xff08;以下简称“和鲸科技”&#xff09;与北京智谱华章科技有限公司&#xff08;以下简称“智谱 AI”&#xff09;签署“101 数智领航计划”战略合作协议。双方将携手营造智能化学科教育与科研环境&#xff0c;提供多种大模型工…

HTTP协议讲解

前瞻&#xff1a; 认识URL 1.ipport 2.平时上网&#xff0c;就是进程间通信 3.上网行为&#xff0c;1.获取资源 2.上传数据 相当于I/O 4.http协议采用tcp协议 网页 图片 音乐其实都是资源 Http请求 http request Method&#xff1a;Get/Post资源/路径&#xff1a…

GitLab 老旧版本如何升级?

极狐GitLab 正式对外推出 GitLab 专业升级服务 https://dl.gitlab.cn/cm33bsfv&#xff01; 专业的技术人员为您的 GitLab 老旧版本实例进行专业升级&#xff01;服务详情可以在官网查看详细解读&#xff01; 那些因为老旧版本而被攻击的例子 话不多说&#xff0c;直接上图&a…