RAG从入门到精通系列:基础RAG详解

RAG实操教程: langchain+Milvus向量数据库创建你的本地知识库 本文主要是 Milvus 向量数据实战总结。LLM 痛点以及解决方案RAG 是什么,为什么选用RAG。langchain文档加载器,chat model文档拆分的注意点,chat model区别。chat 示例代码。 阅读详情

前言

LLM(Large Language Model,大型语言模型)是一个功能强大的新平台,但它们并不总是使用与我们的任务相关的数据或者是最新的数据进行训练。

RAG(Retrieval Augmented Generation,检索增强生成)是一种将 LLM 与外部数据源(例如私有数据或最新数据)连接的通用方法。它允许 LLM 使用外部数据来生成其输出。

要想真正掌握 RAG,我们需要学习下图所示的技术(技巧):

这个图看起来很让人头大,但是不用担心,你来对地方了。

本系列教程将从头开始介绍如何建立对 RAG 的理解。

我们先从 Indexing(索引)、Retrieval(检索)和 Generation(生成)的基础知识开始。

下面的流程图说明了基础 RAG 的过程:

  1. 我们对外部文档建立索引(Indexing);

  2. 根据用户的问题去检索(Retrieval)相关的文档;

  3. 将问题和相关的文档输入 LLM 生成(Generation)最终答案。

Indexing

我们从加载文档开始学习 Indexing。LangChain 有超过 160 种不同的文档加载器,我们可以使用它们从许多不同的来源抓取数据进行 Indexing。

https://python.langchain.com/docs/integrations/document_loaders/

我们将 Question(问题)输入到 Retriever(检索器),Retriever 也会加载外部文档(知识),然后筛选出与 Question 相关的文档:

我们需要将 Text Representation(文本表示)转成 Numerical Representation(数值表示)才能更好地实现相关性(比如余弦相似度)筛选:

有很多种方法可以将文本转成数值表示,典型的有:

  • Statistical(基于统计学)

  • Machine Learned(基于机器学习)

目前最常用的就是使用机器学习方法将文本转成固定长度的,可捕获文本语义的 Embedding Vector(嵌入向量)。

有很多开源的 Embedding Model(比如 BAAI 系列)可以将文本转成 Embedding Vector。但是这些模型能接受的 Context Window(上下文窗口)有限,一般在 512~8192 个 token(如果你不知道什么是 token 的话,请跳到文末)。

所以正常的流程是我们将外部文档切分成一个个 Split,使得这些 Split 的长度能够满足 Embedding Model 的 Context Window:

到现在,我们已经掌握了 Indexing 的理论了,现在可以用 Qwen + BAAI + LangChain + Qdrant 实践了。

首先配置 LLM 和 Embedding Model:

然后加载外部文档,这里的文档是一个网页博客:

正如我之前说的, Embedding Model 的 Context Window 有限,我们不能直接把整篇文档丢进去,所以要将原始文档拆分成一个个文档块:

接下来就是配置 Qdrant 向量数据库:

最后一步对文档块建立索引并存到向量数据库中:

Retrieval

Retrieval 就是根据我们提出的问题的语义向量(也就是 Embedding Vector)去按照某种距离/相似度衡量方法找出与之相似的 k 个 Split 的语义向量。

下图演示了一个在一个 3D 空间的 Embedding Vector Retrieval:

Embedding Vector 通常存储在 Vector Store(向量数据库)中,Vector Store 实现了各种比较 Embedding Vector 之间相似度的方法。

接下来我们用在 Indexing 时构建的 Vector Store 构建一个 retriever,然后输入问题并进行检索:

根据我们设定的 k 值,我们检索出了一个与问题相关的文档块。

Generation

现在我们已经能够根据用户的问题检索出与之相关的知识片段(Split),那么我们现在需要将这些信息(问题 + 知识片段)输入 LLM,让 LLM 帮忙生成一个有时事实依据(知识片段)的回答:

我们需要:

  1. 问题和知识片段放到一个字典中,问题放到 Question 这个 key,知识片段放到 Context 这个 key;

  2. 然后通过 PromptTemplate 组成一个 Prompt String;

  3. 最后将 Prompt String 输入 LLM,LLM 再产生回答。

看起来很复杂,但这就是 LangChain 和 LlamaIndex 这类框架存在的意义:

细心的你发现返回的结果是一个 AIMessage 对象,我们可能需要一个纯字符串的输出结果;而且检索过程和生成过程是分开的,这很不方便。

不过我们可以借助于 LangChain 将上述检索和生成过程链(Chain)在一起:

LangSmith

如果你还是对整个 RAG 管道过程很陌生,那么不妨去 LangSmith 页面上看一下整个过程是怎么被一步步串到一起的:

LangSmith 是一个用于构建生产级 LLM 应用程序的平台。它允许我们密切监控和评估我们的应用程序,以便我们可以快速、自信地交付。使用 LangSmith,我们可以:

  • 跟踪 LLM 应用程序

  • 了解 LLM 调用和应用程序逻辑的其他部分。

什么是 token?

token 是模型用来表示自然语言文本的基本单位,可以直观的理解为“字”或“词”。

对于英文文本来说,1 个 token 通常对应 3 至 4 个字母:

对于中文文本来说,1 个 token 通常对应一个汉字:

最后的最后

感谢你们的阅读和喜欢,作为一位在一线互联网行业奋斗多年的老兵,我深知在这个瞬息万变的技术领域中,持续学习和进步的重要性。

为了帮助更多热爱技术、渴望成长的朋友,我特别整理了一份涵盖大模型领域的宝贵资料集。

这些资料不仅是我多年积累的心血结晶,也是我在行业一线实战经验的总结。

这些学习资料不仅深入浅出,而且非常实用,让大家系统而高效地掌握AI大模型的各个知识点。如果你愿意花时间沉下心来学习,相信它们一定能为你提供实质性的帮助。

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

大模型知识脑图

为了成为更好的 AI大模型 开发者,这里为大家提供了总的路线图。它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

经典书籍阅读

阅读AI大模型经典书籍可以帮助读者提高技术水平,开拓视野,掌握核心技术,提高解决问题的能力,同时也可以借鉴他人的经验。对于想要深入学习AI大模型开发的读者来说,阅读经典书籍是非常有必要的。

在这里插入图片描述

实战案例

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

在这里插入图片描述

面试资料

我们学习AI大模型必然是想找到高薪的工作,下面这些面试题都是总结当前最新、最热、最高频的面试题,并且每道题都有详细的答案,面试前刷完这套面试题资料,小小offer,不在话下

在这里插入图片描述

640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

在这里插入图片描述

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

一问讲透什么是 RAG,为什么需要 RAG? 如果使用 pretrain 好的 LLM 模型,应用在你个人的情境中,势必会有些词不达意的地方,例如问 LLM 你个人的信息,那么它会无法回答;这种情况在企业内部也是一样,例如使用 LLM 来回答企业内部的规章条款等。 这种时候主要有三种方式来让 LLM 变得更符合你的需求: 阅读详情

相关推荐

RAG框架LlamaIndex核心——各种索引应用分析

LlamaIndex 是一个大型语言模型(LLM)的数据框架,它提供了数据摄取、数据构建、检索和查询接口以及与其他框架集成的工具。LlamaIndex 可以帮助用户轻松地将现有的数据源和格式(如 API、PDF、文档、SQL 等)与 LLM 结合使用。它提供了多种索引类型,如列表索引、向量索引、树索引和关键字表索引,以便更好地组织和检索相关信息。

数据与算法架构提升之路专栏 4695

大模型应用之RAG详解,RAG保姆级教程,收藏这篇就够了!_rag大模型

RAG(Retrieval Augmented Generation,检索增强生成)技术最初源于2020年Facebook的一篇论文——《Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks》。是的,2020年就已经提出了这项技术。这篇论文要解决的一个问题非常简单:如何让大语言模型使用外部知识进行生成。通常,预训练模型的知识是存储在参数中的,因此模型无法了解训练集之外的知识(例如搜索数据、行业知识)。

2401_84208172的博客 2437

Elsevier投稿避坑指南:Ocean Engineering论文格式要求详解(附Checklist模板)

本文详细解析Elsevier旗下期刊Ocean Engineering的投稿格式要求与常见陷阱,提供实用的Checklist模板。涵盖文章类型确认、作者贡献声明、图表规范、数据声明等关键环节,帮助研究者高效通过格式审查。特别强调LaTeX排版细节、图表分辨率要求及现代伦理声明规范,助力海洋工程领域学者顺利投稿。

weixin_33734785的博客 1506

大模型应用之RAG详解,RAG保姆级教程,收藏这篇就够了!

RAG(Retrieval Augmented Generation,检索增强生成)是一种将大规模语言模型(LLM)与外部知识源的检索相结合,以改进问答能力的工程框架。它使用来自私有或专有数据源的信息来辅助文本生成,从而弥补LLM的局限性,特别是在解决幻觉问题和提升时效性方面。原始 RAG 的流程包括索引、检索和生成三个步骤,既把问答内容输入到数据库中,给定query,可以直接去数据库中搜索,搜索完成后把查询结果和query拼接起来送给模型去生成内容。实际上langchain。

m0_70486148的博客 5万+

果蔬及菜品识别系统

果蔬及菜品识别系统

我的博客 2123

Jlink除了调试还能干啥?用JFlash SPI给W25Q64烧录固件的5个实用技巧

本文深入探讨了Jlink的隐藏功能,特别是通过JFlash SPI高效烧录W25Q64的5个进阶技巧。从硬件连接优化到批量处理脚本,再到数据安全验证,这些技巧能显著提升烧录速度和稳定性,适用于量产环境。文章还提供了详细的参数配置和脚本示例,帮助工程师充分发挥Jlink的潜力。

weixin_29164843的博客 411

RAG从入门到精通系列1:基础RAG

RAG(Retrieval Augmented Generation,检索增强生成)是一种将 LLM 与外部数据源(例如私有数据或最新数据)连接的通用方法。它允许 LLM 使用外部数据来生成其输出。

DEVELOPERAA的博客 701

网课、网页视频倍速播放简单脚本

一个简单的网页视频倍速脚本

huazn612的博客 1万+

RAG从入门到精通系列:基础RAG

token 是模型用来表示自然语言文本的基本单位,可以直观的理解为“字”或“词”。对于英文文本来说,1 个 token 通常对应 3 至 4 个字母:

Python_cocola的博客 1280

单元测试工具TOP10对比:哪款最适合你的项目?

揭晓单元测试工具TOP10

2501_92667898的博客 1322

华为防火墙双线路配置实战:5分钟搞定主备自动切换(含健康检查避坑指南)

本文详细介绍了华为防火墙双线路配置实战,包括主备自动切换和健康检查机制的优化技巧。通过智能健康检查机制,华为防火墙能实现毫秒级故障自动切换,确保网络高可用性。文章提供了从架构设计到实战配置的全流程指南,并分享了常见配置误区与解决方案,帮助中小企业快速搭建稳定可靠的网络架构。

weixin_30872337的博客 606

RAG从入门到精通系列5:Indexing(索引)零基础入门到精通,看这篇就够了!赶紧收藏!

对每个聚类生成一个摘要。例如,对于“神经网络优化”类别,摘要可能是:“该类文档主要探讨了神经网络的超参数优化方法,包括梯度下降的改进、优化器选择和自动化调参工具。

Java癫疯的博客 1196

BPMN2.0规范及流程引擎选型方案

本文主要简明扼要的介绍了BPMN2.0规范的内容,可让读者快速度的了解BPMN2.0所涵盖的主要内容和图形样式。也较为详细的阐述了如何绘制标准的流程图,以及在软件层面中如何实现业务流程功能,和技术选型。

比特桃 1万+

【RAG从入门到精通系列】【RAG From Scratch 系列教程1】

"检索增强生成”(RAG)系列教程1:该教程介绍了如何从头开始构建RAG应用。

艰难困苦,玉汝于成。 2238

AI 编程新范式:一文彻底搞懂 LLM、Agent、MCP、Skill 是怎么协作的

本文用通俗易懂的方式解析了AI编程新架构的核心概念。通过"三国演义"类比,文章将复杂的技术架构拆解为:Agent(军师/大脑)负责思考和决策,Skill(招式/手脚)执行具体操作,MCP(令箭/协议)作为通信标准,MCP Server(将军/身体)承载多个Skill。这套分工架构使AI从单纯聊天进化成能完成实际编程任务的全能助手,实现了关注点分离——Agent专注智能提升,Skill专注功能实现,MCP确保稳定连接。这正是Cursor、Claude等新一代AI开发工具采用的核心架构,标志

猫老板的豆 3085

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

RAG从入门到精通系列1:基础RAG,建议收藏!

token 是模型用来表示自然语言文本的基本单位,可以直观的理解为“字”或“词”。对于英文文本来说,1 个 token 通常对应 3 至 4 个字母:

2401_85325726的博客 1578

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

RAG从入门到精通系列1:基础RAG(附大模型教程)

LLM(Large Language Model,大型语言模型)是一个功能强大的新平台,但它们并不总是使用与我们的任务相关的数据或者是最新的数据进行训练。

2301_81940605的博客 866

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

【RAG从入门到精通系列】【RAG From Scratch 系列教程2:Query Transformations】

"检索增强生成”(RAG)系列教程2:该教程介绍了如何对RAG的查询部分进行优化。

艰难困苦,玉汝于成。 1407

RAG(检索增强生成)学习路径全解析:从入门到精通

RAG(检索增强生成)技术作为结合了信息检索和生成式模型的方法,正在人工智能领域发挥越来越重要的作用。通过提供的高质量中文文章资源,学习者可以系统地掌握RAG技术的原理、实现和应用,从初学者到高级开发者都能找到适合自己的学习路径。从基础概念到高级技术,从入门教程到实际应用,从框架工具到最新研究,这些资源涵盖了RAG技术的各个方面,为学习者提供了全面的学习指南。希望这些资源能够帮助学习者在RAG技术领域取得长足进步,为人工智能的发展做出贡献。图片来源网络,侵权删。

沛哥儿的专栏 4037

【RAG从入门到精通系列】【RAG From Scratch 系列教程5: Retrieval】

"检索增强生成”(RAG)系列教程5:Retrieval 检索模块 的详细介绍。

艰难困苦,玉汝于成。 1491

RAG技术从入门到精通

大型语言模型(LLMs)展示了强大的能力,但在实际应用中仍面临挑战,如幻觉现象、知识更新缓慢,以及在回答中缺乏透明度。总结来说,LLM存在幻觉、知识的时效性、数据的安全性等问题。所以需要一种技术来解决这些问题,所以RAG技术应运而生。检索增强生成(RAG)指的是在使用LLMs回答问题之前,从外部知识库中检索相关信息。RAG已被证明能显著提高答案的准确性,减少模型的幻觉现象,特别是对于知识密集型任务。通过引用来源,用户可以验证答案的准确性,并增加对模型输出的信任。它还促进了知识更新和特定领域知识的引入。

superheromen的博客 1352
上一篇: 重磅推荐:天翼智库新书《一本书读懂大模型:技术创新、商业应用与产业变革》发布!(附PDF)
下一篇: 35岁,现在开始学习AI,是否为时已晚?揭秘为何30+人群在AI领域更具竞争力
Agent学习路线
博客等级 码龄6年 1万+粉丝 1905原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值