首页 > 其他分享 >AIGC实战之如何构建出更好的大模型RAG系统

AIGC实战之如何构建出更好的大模型RAG系统

时间:2024-09-22 14:48:09浏览次数:8  
标签:实战 RAG 系统 模型 AIGC 构建 召回 文档

  大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的知识进行总结与归纳,不仅形成深入且独到的理解,而且能够帮助新手快速入门。

  本文介绍了如何构建出更好的大模型RAG系统,希望能对学习大语言模型和RAG的同学们有所帮助。

文章目录

1. 前言

  ChatGPT爆火之后,以ChatPDF为首的产品组合掀起了知识库问答的热潮。

  在过去一整年中,大多数人都在完成RAG系统到高级RAG系统的迭代升级。但是技术发展是迅速的,如何深入了解RAG的发展,做出更好的RAG系统,其实还是非常困难的。

  大模型爆火后的RAG系统发展,大体可以将其分为3个阶段,初级、高级、超级。初级阶段更多的是搭建起系统的pipeline;高级阶段是在召回生成测修修补补,根据badcase反推流程上的优化技巧;超级对应了从Agentic RAG、RAG不存在了、多模态RAG、结构化RAG、GraphRAG、MemoryRAG等技术飞速发展的阶段。

2. S1 初级RAG

  S1阶段处于23年元旦前后,最先在Github出现了一批尝试去复现chatpdf的项目,他们通过对知识库文档进行定长分块建立索引。然后使用用户query去索引中召回相关的文档片段,结合预定义的prompt模板,让LLM生成问题相关的答案。

  其中用到的向量和LLM模型,闭源一般使用openai ada 002 + chatgpt。开源中文测的则比较稀缺,常见的如simbert/text2vec + chatglm v1 6b等。

  大体的一个流程图如下:

图片来自:https://www.promptingguide.ai/research/rag

3. S2 高级RAG

  S2阶段横跨23年整年的时间,大体上可以分为模型测和策略测。

3.1 模型测

  召回模型测:开源社区现在项链模型发力,一些针对QA分布的向量模型开源,如M3E,BGE等。

  生产模型测:国产大模型百花齐放,百川、书生、千问、智谱等。

3.2 策略测

  策略测在卷3大块的内容:

  1. 如何保证更好的文档切分?这里诞生了很多的解析,切分,索引构建技巧。

    • 解析测,简单的从纯文本识别,到后来更复杂的借助版式识别+OCR的方式,还要针对表格,图片等单独处理

    • 切分方面,从滑动窗口定长切分到语义,模块化切分等。

    • 索引构建的一些技巧主要是为了应对chunk切分后的信息丢失问题,常见的比如,保留前后块的索引,文档级别的索引构建等。

  2. 如何召回的更好?

  召回测的一个出发点是,用来召回的query并非一定是用户的输入query。对此我们可以一下子想起来如query改写,hyde,子问题,step-back等常见策略。当然也有混合搜索这类不属于这个范畴的技巧。

  1. 如何生成的更好?

  生成测的一个出发点是,用来生成的内容并非一定是召回的query。从这一点我们也可以想起来如召回内容压缩,内容rerank,溯源,map-reduce等一些策略。

图片来自langchain

3.3 模型微调测

  RAG系统的主要模型还是嵌入模型+生成模型。因此二者的训练方式,也产生了几个不同的大类别。最简单的二者直接使用开源模型,称为Traning free的方式;如果是针对私有化的数据进行训练这2个模型,产生3种训练方式:

  • 方式一:分别独立训练 (Independent Training)

  • 方式二:顺序训练 (Sequential Training),又因为模块的先后,分为LLM First / Retriever First 2种

  • 方式三:联合训练(Joint Training)

图片来自 A Survey on RAG Meeting LLMs: Towards Retrieval-Augmented Large Language Models

4. S3 超级RAG

  S3阶段处于23年底一直到现在,这个阶段RAG的概念几乎是2个月变一次。

  23年底,24年初,开源的大模型已经出现了如Yi-34B,Qwen-72B等具备长上下文能力且效果优异的大模型。RAG的发展注定需要往当时火热的Agent测靠拢。

  Agent的核心为引擎+工具。引擎对整个流程做出决策,如是否调用某个知识库搜索知识,是否需要对结果进行反思重新迭 代等。一个简单的Agentic RAG系统如下图:

图片来自:https://medium.com/@sulaiman.shamasna/rag-iv-agentic-rag-with-llamaindex-b3d80e09eae3

  多模态RAG,结构化RAG,属于小而美的范畴。可能一方面是多模态还没有完全进入工业界,结构化RAG属于NL2SQL的范畴。对于这2个整体上与传统的RAG差异不大,区别在于,多模态流转的中间形态可能是图片,使用clip之类的图文检索模型召回,VL模型进行答案生成。结构化RAG的差异仅在召回测,使用sql、dsl等方式进行结构化数据库的召回。

  24年上半年,部分厂商的RAG系统,在探索新的方向。如contextual.ai发文介绍他们的RAG2.0系统,虽然介绍博客的内容主要是联合训练。斯坦福的大佬们发布了RAPTOR,尝试通过层次的聚类来让RAG索引具备更高级的信息。

图片来自:RAPTOR: RECURSIVE ABSTRACTIVE PROCESSING FOR TREE-ORGANIZED RETRIEVAL

  越来越多的开源框架,在往Agentic RAG方面发展,当然最常见的还是结合self-reflection,self-rag,crag的Agentic RAG系统。

  24年中,微软开源了GraphRAG的项目代码,无数的公众号在炒作这个图谱集合的RAG系统。相比于RAPTOR,GraphRAG在底层的chunk层更拉通,前者的聚类仅限于文档内,在逐级往上到文档间。而基于图谱的RAG在文档间的chunk之间可能会存在实体的连接,从而社区之类之后可以让聚类的社区信息,更好的跨不同的文档。整体上,确实能丰富RAG系统的索引构建,也可以结合传统的高级RAG,实现一个更好的hybird RAG系统。

图片来自:From Local to Global: A Graph RAG Approach to Query-Focused Summarization

  当然24年也有很多RAG不存在的说法,如很多的论文在评估Long Context(LC)大模型与RAG系统准确率的高低之时,RAG系统都处于下风。同时还有一些特殊的开闭源产品,比较常见的就是将知识融合进外挂参数中,最早的如Lamini的Memory Tunning,最近的如智源的MemoRAG。

图片来自:lamini-memory-tuning

5. 本文作者

汪鹏 资深NLP技术专家和AI技术专家,拥有多年NLP落地经验。擅长结合用户场景,针对性地设计图谱、问答、检索、多模态、AIGC等相关的算法和落地方案。在Kaggle获得多枚奖牌,等级master。拥有公众号“NLP前沿”。

6. 内容简介

大模型RAG实战:RAG原理、应用与系统构建》

汪鹏 谷清水 卞龙鹏 著

多年大厂工作经验的资深AI技术专家撰写
指导读者深入理解RAG技术原理

学会RAG落地应用技巧

掌握RAG系统构建方法

快速掌握大模型应用开发

内容简介:

这是一本全面讲解RAG技术原理、实战应用与系统构建的著作。作者结合自身丰富的实战经验,详细阐述了RAG的基础原理、核心组件、优缺点以及使用场景,同时探讨了RAG在大模型应用开发中的变革与潜力。书中不仅揭示了RAG技术背后的数学原理,还通过丰富的案例与代码实现,引导读者从理论走向实践,轻松掌握RAG系统的构建与优化。无论你是深度学习初学者,还是希望提升RAG应用技能的开发者,本书都将为你提供宝贵的参考与指导。

7. 购买链接

  本书的京东购买链接为:大模型RAG实战 RAG原理 应用与系统构建

标签:实战,RAG,系统,模型,AIGC,构建,召回,文档
From: https://blog.csdn.net/weixin_43178406/article/details/142385599

相关文章

  • K8S的StorageClass实战(NFS)
    本次实战的目标是快速创建NFS类型的StorageClass,并验证该StorageClass正常可用,全文由以下部分组成:创建StorageClass;通过helm下载tomcat的chart;修改chart,让tomcat使用刚才创建的StorageClass;在NFS服务端检查文件夹已正常写入;环境信息和准备工作以下是创建StorageCla......
  • DeepSeek 2.5本地部署的实战教程
      大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法行......
  • 解锁Java线程池:实战技巧与陷阱规避
    专业在线打字练习网站-巧手打字通,只输出有价值的知识。一前言线程池作为初学者常感困惑的一个领域,本次“巧手打字通课堂”将深入剖析其中几个最为普遍的误区。为了更清晰地阐述这些知识点,让我们以一个具体定义的线程池为例来展开说明。如下:ThreadPoolExecutorexecutor=ne......
  • 【人工智能时代】- 同济大学发布最新检索增强(RAG)的LLM生成技术综述
    摘要1引言1.1大型语言模型的进步1.2面临的挑战1.3解决方案:检索增强生成(RAG)1.4RAG的研究和发展1.5研究背景2背景2.1RAG的定义2.2RAGvs微调2.3RAG的优势3RAG框架3.1原始RAG(NaiveRAG)3.2高级RAG(AdvancedRAG)3.2.1预检......
  • 项目实战:一步步实现高效缓存与数据库的数据一致性方案
    Hello,大家好!我是积极活泼、爱分享技术的小米!今天我们来聊一聊在做个人项目时,如何保证数据一致性。数据一致性问题,尤其是涉及缓存与数据库的场景,可以说是我们日常开发中经常遇到的挑战之一。今天我将以一个简单的场景为例,带大家一步步了解如何解决这个问题——既能高效利用缓存,又能......
  • Python 从入门到实战25(模块)
            我们的目标是:通过这一套资料学习下来,通过熟练掌握python基础,然后结合经典实例、实践相结合,使我们完全掌握python,并做到独立完成项目开发的能力。上篇文章我们讨论了类继承的相关知识。今天我们将学习一下模块的相关基础知识。1、模块概述        p......
  • js逆向实战之Bitcoin浏览器交易x-apikey参数加密逻辑
    声明:本篇文章仅用于知识分享实战网址:https://www.oklink.com/zh-hans/btc/tx-list分析过程访问网址,会触发一条数据包。看它的响应内容。就是我们想要获取的内容,找到数据了。可以先尝试直接去访问该url,看能否获取数据。importrequestsurl="https://www.oklink.com/a......
  • "“数字丝绸之路”"~AIGC技术助力经济
    丝绸之路,这条连接东西方的古老商路,不仅是物质商品的流通渠道,也是文化、技术和思想传播的重要纽带。今天,随着人工智能技术的快速发展,AIGC(AIGeneratedContent,人工智能生成内容)技术有望成为现代“数字丝绸之路”上的重要力量,推动全球经济的数字化转型和创新发展。通过AI的强大能力,丝......
  • 计算机毕业设计 社区医疗服务系统的设计与实现 Java实战项目 附源码+文档+视频讲解
    博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌......
  • 2024 go-zero社交项目实战
    背景一位商业大亨,他非常看好国内的社交产品赛道,想要造一款属于的社交产品,于是他找到了负责软件研发的小明。小明跟张三一拍即合,小明决定跟张三大干一番。社交产品MVP版本需求MVP指:MinimumViableProduct,即最小可行产品张三希望以最快的时间看到一款属于自己的社交产品,于......