写给小白的大模型应用科普:RAG篇

快速了解开源RAG-UI工具“kotaemon” Kotaemon是一款基于技术的开源工具,它通过结合信息检索和语言生成技术,实现了与文档的交互式对话。RAG技术是一种先进的自然语言处理技术,它通过检索增强生成模型的能力,使得模型能够在生成回答时参考大量的外部知识源。这种技术的核心优势在于它能够处理复杂的查询,并提供准确、上下文相关的回答。RAG技术的创新之处在于其能够无缝地集成检索和生成两个过程,使得模型在处理用户查询时,不仅能够利用预训练的语言模型生成回答,还能够动态地从外部知识库中检索相关信息,从而提高回答的准确性和相关性。 阅读详情

a74137dd2ddf078c9b4c523307029e5f.png

d3974120f45c39faebea4f8bea793a98.png

点击上方蓝字关注我们

当前大模型被普遍看好的两个专业应用方向是RAG(Retrieval-Augmented Agenerated,检索增强生成)与Agent(AI智能体)。本篇小枣君首先尝试用通俗易懂的语言帮助大家认识RAG这一重要应用形式。

5155dc92b070fc7d8bf872ed6463051c.png

01

了解大模型的“幻觉”

在了解为什么出现RAG之前,我们首先需要了解大模型著名的“幻觉”问题。

“幻觉”指的是大模型在试图生成内容或回答问题时,输出的结果不完全正确甚至错误,即通常所说的“一本正经地胡说八道”。这种“幻觉”可以体现为对事实的错误陈述与编造、错误的复杂推理或者在复杂语境下处理能力不足等。其主要原因来自于:

(1)训练知识存在偏差:老师教错了,学生自然对不了。

在训练大模型时输入的海量知识可能包含错误、过时,甚至带有偏见的信息。这些信息在被大模型学习后,就可能在未来的输出中被重现。

(2)过度泛化地推理:自作聪明,以偏概全了。

大模型尝试通过大量的语料来学习人类语言的普遍规律与模式,这可能导致“过度泛化”的现象,即把普通的模式推理用到某些特定场景,就会产生不准确的输出。

(3)理解存在局限性:死记硬背,加上问题太难了。

大模型并没有真正“理解”训练知识的深层含义,也不具备人类普遍的常识与经验,因此可能会在一些需要深入理解与复杂推理的任务中出错。

(4)缺乏特定领域的知识:没学过,瞎编个答案蒙一下。

通用大模型就像一个掌握了大量人类通用知识且具备超强记忆与推理能力的优秀学生,但可能不是某个垂直领域的专家(比如医学或者法律专家)。当面临一些复杂度较高的领域性问题或私有知识相关的问题时(比如介绍企业的某个新产品),它就可能会编造信息并将其输出。

当然,除了“幻觉”问题,大模型还存在知识落后、输出难以解释、输出不确定等一些问题。这也决定了大模型在大规模商业生产应用中会面临着挑战:很多时候我们不仅需要理解力和创造力,还需要极高的准确性(不仅要会写作文,还要会准确解答数学题)。

02

RAG如何优化“幻觉”问题

RAG,正是为了尽可能地解决大模型在实际应用中面临的一些问题,特别是“幻觉”问题而诞生的,也是最重要的一种优化方案。其基本思想可以简单表述如下:

将传统的生成式大模型与实时信息检索技术相结合,为大模型补充来自外部的相关数据与上下文,以帮助大模型生成更丰富、更准确、更可靠的内容。这允许大模型在生成内容时可以依赖实时与个性化的数据和知识,而不只是依赖训练知识。简单的说:RAG给大模型增加了一个可以快速查找的知识外挂。

34706404365d4dbbb5c70e5c6b65549a.png

d95dce952aac7cf4b24983a36feeca6a.png

用一个例子帮助理解RAG的概念:

如果把大模型比喻成一个经过大量知识与技能训练的优秀学生,把大模型响应的过程比喻成考试,那么这个优秀学生在考试时仍然可能会遇到没有掌握的知识,从而编造答案(幻觉)。

RAG就是在这个学生考试时临时给他的一本参考书。我们可以要求他在考试时尽量参考这本书作答,那么在遇到与这本书中的知识相关的问题时,他的得分是不是就高多了呢?

03

模拟简单的RAG场景

假如你需要开发一个在线的自助产品咨询工具,允许客户使用自然语言进行交互式的产品问答,比如“请介绍一下您公司这款产品与××产品的不同之处”。为了让客户有更好的体验,你决定使用大模型来构造这样的咨询功能并将其嵌入公司的官方网站。如果你直接使用通用大模型,那么结果很可能如图1-10所示。

5727c9691698789de2625c5dbe922cbf.png

不出意外,大模型显然不具备贵公司的最新手机产品知识,因此无法回答客户的问题(有时候可能会尝试编造答案)。现在,如果你使用RAG的思想,那么可以先从企业私有的知识库中检索出下面一段相关的补充知识。

4342d419f50af44d0a7c267fabaeb359.png

你把检索出的补充知识组装到提示词中,将其输入大模型,并要求大模型基于提供的知识来回答你的问题。大模型很聪明地“吸收”了补充的外部知识,并结合自己已经掌握的知识,成功推理并给出了答案:

467bc991ea0e23ee6694c50494125785.png

是的,RAG本质上就是一种借助“外挂”的提示工程,但绝不仅限于此。因为在这里简化了很多细节,只是为了展示RAG最核心的思想:给大模型补充外部知识以提高输出答案的质量。

04

RAG与模型微调

要想提高大模型在特定行业与场景中输出的适应性与准确性,除了使用RAG,还可以使用自己的数据对大模型进行微调。简单地说,微调就是对基础模型在少量(相对于预训练的数据量来说)的、已标注的数据上进行再次训练与强化学习,以使得模型更好地适应特定的场景与下游任务。显然,微调是另外一种给大模型“灌输”新知识的方法。两者的主要差异在于:

  • RAG无需额外的训练,随时可以提供补充的知识,调试简单。缺点是受到上下文空间的限制,且回答时性能略差(毕竟要现学现用)

  • 微调需要专门的数据准备和训练时间,技术要求相对较高,效果较难预测,不太适合更新频繁的知识。好处是应用层面会更简单

91d88d3c4ed9bb685a5f85352fb008b2.png

以前面的例子来说明微调和RAG的区别:

如果大模型是一个优秀学生,正在参加一门考试,但是这门考试中有很多知识是这位学生没有学习过的,现在使用RAG和微调两种方法对这位学生提供帮助。

* RAG:在考试时给他提供某个领域的参考书,要求他现学现用,自己翻书理解后给出答案。

* 模型微调:在考试前一天对他进行突击辅导,使他掌握了新的领域知识,然后让他参加考试。

无法确切地说在什么场景中必须使用RAG、在什么场景中必须使用微调。结合当前的一些研究及普遍的测试结果,可以认为在以下场景中更适合考虑微调的方案(在不考虑成本的前提下):

(1)需要注入较大数据量且相对稳定、迭代周期较长的领域知识;需要形成一个相对通用的领域大模型用于对外服务或者运营。

(2)执行需要极高准确率的部分关键任务,且其他手段无法满足要求,此时需要通过高效微调甚至全量微调来提高对这些任务的输出精度,比如医疗诊断。

(3)在采用提示工程、RAG等技术后,无法达到需要的指令理解准确、输出稳定或其他业务目标。

在除此之外的很多场景中,可以优先考虑使用RAG来增强大模型生成。当然,在实际条件允许的前提下,两者的融合应用或许是未来更佳的选择。

05

初步认识RAG架构

最后,我们从技术层来看一个最基础、最常见的RAG应用的逻辑架构与流程。

d168abaa95556f717220d7af40c9baf7.png

注意:在这张图中仅展示了一个最小粒度的RAG应用的基础原理。通常情况下,可以把一个简单的RAG应用从整体上分为数据索引(Indexing)与数据查询(Query)两个大的阶段,而在每个阶段都包含不同的处理环节。以上面的举例来解释:

  • 索引阶段就是编写考试时需要的参考书,这本书要容易快速查找特定知识。

  • 查询阶段就是考试时使用这本书的过程,先查找参考资料,然后解答问题。

在实际RAG应用中,对于不同的应用场景、客观条件、工程要求,会有更多的模块、架构与流程的优化设计,以应对众多的技术细节与挑战。比如,自然语言表达的输入问题可能千变万化,你从哪里检索对应的外部知识?你需要用怎样的索引来查询外部知识?你怎样确保补充的外部知识是回答这个问题最需要的呢?就像上面例子中的学生,如果考试的知识点是英语语法,你却给他一本《微积分》,那显然是于事无补的。

诸如这一类的问题都属于更深入的高级RAG模块与优化的范畴,感兴趣的同学可以自行学习,这里我们推荐一本非常全面的RAG应用的学习书籍:

RAGFlow软件介绍 生成文档的摘要或关键点。 阅读详情

相关推荐

【AI大模型应用开发】【RAG评估】0. 综述:一文了解RAG评估方法、工具与指标

本文主要总结了当前比较流行的RAG评估方法和指标。当前AI技术的快速发展,RAG和RAG评估是当前比较有前景的发展方向,不断有新的评估工具和理论被提出,让我们持续跟进,了解这些工具和理论,从而在使用时知道如何选择。

同学小张的博客 6832

7种RAG工具,让你的LLMs发挥最大效用

很棒的内容,对吧?随着大型语言模型(LLMs)在各个行业中的广泛应用,利益相关者的需求将变得更加复杂,因为请求变得更加多样化。所以,如果你想跟上最新的讨论、框架和技术,以便从你的LLM中获得最大的收益,那么你会想要在4月23日至25日参加ODSC East会议。在ODSC East会议上,有一个完整的专题讨论会专门致力于大型语言模型。你可以向业界领袖、研究人员以及人工智能领域的前沿人物学习。利用ReAct、LLMs和LangChain实现复杂推理和行动。

基咯咯 6579

STM32驱动AD2S1210实现旋变解码与角度读取

旋转变压器作为一种耐高温、抗振动的角度传感器,在工业伺服、机器人关节和电动汽车电驱等场景中占据重要地位。其输出信号需要经过专用转换芯片处理才能被MCU高效使用。AD2S1210是一款典型的旋变数字转换器(RDC),内部采用Type II型跟踪环,将模拟SIN/COS信号实时解算为数字角度与速度,降低了处理器负担并提升抗干扰能力。本文基于STM32平台,详细介绍了AD2S1210的硬件接线、SPI通信配置、寄存器初始化流程,以及读取位置数据时的SAMPLE脉冲时序等关键实现。同时总结了常见故障如全FF、角度跳

weixin_34194829的博客 196

一文带你了解大模型的RAG(检索增强生成) | 概念理论介绍+ 代码实操(含源码)

RAG的全称是Retrieval-Augmented Generation,中文翻译为检索增强生成。它是一个为大模型提供外部知识源的概念,这使它们能够生成准确且符合上下文的答案,同时能够减少模型幻觉。本文介绍了 RAG 的概念及其背后的一些理论,本文通过Python、LangChain将其实现,在此过程中使用了 OpenAI的ChatGPT接口(可以自己搭建chatGLM3)、Weaviate矢量数据库(可以自己搭建Milvus )、OpenAI 嵌入模型实现了 RAG 管道。

机器学习社区 3万+

PAT|中国大学MOOC-浙江大学翁恺-C语言程序设计习题集(更新中)

##2-0. 整数四则运算 时间限制:400 ms 内存限制:65536 kB 代码长度限制:8000 B 判题程序:Standard 作者:乔林(清华大学) 本题要求编写程序,计算2个正整数的和、差、积、商并输出。题目保证输入和输出全部在整型范围内。 输入格式: 输入在一行中给出2个正整数A和B。 输出格式: 在4行中按照格式“A 运算符 B = 结果”顺序输出和、差、积、商。 输入样例: 3 ...

小鱼波波波 6万+

AGI 之 【Dify】 之 Dify 在 Windows 端本地部署调用 Ollama 本地下载的大模型, API 形式 Python 调用 进行简单聊天接口测试

AGI,即通用人工智能(Artificial General Intelligence),是一种具备人类智能水平的人工智能系统。它不仅能够执行特定的任务,而且能够理解、学习和应用知识于广泛的问题解决中,具有较高的自主性和适应性。AGI的能力包括但不限于自我学习、自我改进、自我调整,并能在没有人为干预的情况下解决各种复杂问题。本节将介绍如何使用 Dify 平台调用 Ollama 部署的本地模型来创建一个聊天应用。通过 API 的方式发起聊天,可以让前端自由布置所需的聊天形式。

仙魁XAN 1万+

【AI大模型】写给小白的大模型应用科普:RAG篇

因为这个行业不同于其他行业,知识体系实在是过于庞大,知识更新也非常快。作为一个普通人,无法全部学完,所以我们在提升技术的时候,首先需要明确一个目标,然后制定好完整的计划,同时找到好的学习方法,这样才能更快的提升自己。这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费。

Android23333的博客 922

S型速度曲线C程序实现

S型速度曲线C语言程序实现 前言 S型曲线相较于梯形速度曲线具有运行更加平稳的特点,S型曲线共有八种运行情况,感兴趣可以查阅相关文献 代码段 #include <stdio.h> #include <math.h> #define FP64 double int main(void) { /**************************** 定义相关变量(需要映射到PLC寄存器才能进行监控) ***********************/ FP6

LSX312441548的博客 8394

写给全网小白的AI大模型应用科普:RAG 篇 |

写给全网小白的AI大模型应用科普:RAG 篇 |

2401_82469710的博客 1019

ruoyi-nbcio基于ruoyi的flowable前端支持自定义表单组件的自动获取方法

ruoyi-nbcio基于ruoyi的flowable前端支持自定义表单组件的自动获取方法

宁波阿成的博客 609

从零到一,打造你的无人机侦察兵!树莓派+Python+MQTT,实时目标检测全攻略

物联网、人工智能与计算机视觉三大前沿技术的深度融合。

u013558123的博客 1476

【AI大模型】写给小白的大模型应用科普,RAG篇,收藏这一篇就够了!!

当前大模型被普遍看好的两个专业应用方向是RAG(Retrieval-Augmented Agenerated,检索增强生成)与Agent(AI智能体)。本篇首先尝试用通俗易懂的语言帮助大家认识RAG这一重要应用形式。

2401_85325557的博客 656

YOLO26涨点改进 | 检测头Head创新改进篇 | 利用RFAConv感受野注意力卷积改进YOLO26检测头,RFAHead感受野注意力检测头,助力小目标检测高效涨点

YOLO26作为轻量化目标检测模型的新一代标杆,凭借高效的Backbone与Neck结构,在实时检测场景中表现突出,但原生检测头仍存在核心痛点——感受野固定、小目标特征感知薄弱、多尺度目标适配不足,导致在小目标密集、复杂背景遮挡等场景中漏检率偏高、定位精度不足。

qq_36130719的博客 170

写给小白的大模型应用科普:AI Agent篇

AI Agent(智能体)是结合大语言模型(LLM)的自主任务执行系统,不仅能回答问题,还能主动完成复杂任务。它通过"大脑"(LLM)、"记忆"、"规划能力"和"工具使用"四个组件,实现理解需求、拆分任务、调用工具和执行操作的全流程。典型应用包括智能客服、编程助手、个人助理等场景。虽然当前面临任务规划错误、工具调用失误等可靠性挑战,但未来将向更自主、行业化、个性化的方向发展。AI Agent的进化标志着人工智能从"被动

2401_85373396的博客 1113

Floyd (弗洛伊德)算法简述

Floyd在1962年由Robert Floyd以其当前公认的形式出版。算法作为三个嵌套for循环的现代公式首先由Peter Ingerman在1962年描述。Floyd 算法是解决图论问题的比较经典的算法,是解决给定的加权图中顶点间的最短路径的一种算法,可以正确处理有向图的最短路径问题。

慕羽★的博客 2万+

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

【AI大模型科普】越来越火的大模型应用——RAG,到底是个啥?

当前被普遍看好的两个大模型专业应用方向,分别是RAG(Retrieval-Augmented Agenerated,检索增强生成)与Agent(AI智能体)。

Gaga246的博客 1049

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

上一篇: 【干货】7种常用数据分析模型和方法,建议收藏!
下一篇: 雷军的大学时候的论文:不需要参考文献
菜鸟学Python
博客等级 码龄9年 8087粉丝 571原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值