当前位置: 首页 > news >正文

小白学RAG:大模型 RAG 技术实践总结

节前,我们组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、今年参加社招和校招面试的同学。

针对大模型技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备面试攻略、面试常考点等热门话题进行了深入的讨论。

汇总合集:

《大模型面试宝典》(2024版) 发布!


RAG (Retrieval-Augmented Generation) 是一种结合信息检索与生成模型的技术。其主要目标是通过检索大量信息并使用生成模型进行处理,从而提供更加准确和丰富的回答。RAG技术在处理大规模文本数据时表现尤为出色,能够从海量信息中迅速找到相关内容并生成合适的响应。

智谱RAG方案具体设计了如何将RAG技术应用到智能客服领域。方案包括以下几个关键环节:

  • 信息检索模块:从预先构建的知识库中快速找到与用户问题相关的内容。

  • 生成模块:利用先进的生成模型对检索到的信息进行加工和处理,生成符合上下文的答案。

  • 集成与优化:将检索和生成模块无缝集成,并通过持续的训练和优化提高系统的准确性和效率。

unsetunsetRAG 综述unsetunset

RAG技术在大模型(LLM, Large Language Models)中的应用非常广泛,是大模型落地最多的场景之一。通过RAG,客户可以咨询车辆功能、维护、最新技术或政策法规相关信息,从而提升客户服务与支持的效率。具体应用场景包括外部客服,结合RAG的LLM提供24/7客户服务,快速检索产品信息;文档撰写,通过RAG检索相关资料,生成高质量文档;图像生成与数据处理和分析,以及内部知识库的建立和维护。

在这里插入图片描述

RAG是一种将信息检索(Retrieval)与生成模型(Generation)结合的技术,通过先检索相关信息,再生成准确和上下文相关的回答或内容,来增强语言模型的性能。RAG技术通常包含以下三个关键步骤:

1. 索引 (Indexing)

在索引阶段,系统会对大量的文档、数据或知识库进行预处理和索引,以便于快速检索。索引的过程包括将文本数据转换为易于搜索的格式,并构建高效的数据结构,使得在需要时可以快速找到相关信息。

2. 检索 (Retrieval)

检索阶段是RAG技术的核心之一。当用户提出问题或请求时,系统会从预先索引的文档或知识库中快速检索出最相关的信息。检索模块通常使用高级搜索算法和相似度计算来找到与用户输入最匹配的内容。

3. 生成 (Generation)

在生成阶段,系统会使用先进的生成模型(如GPT等)对检索到的信息进行处理和整合,生成连贯且上下文相关的回答或内容。生成模型利用检索到的信息作为背景知识,确保生成的结果更加准确和有针对性。

RAG的优势

RAG(Retrieval-Augmented Generation)技术结合了信息检索和生成模型的优势,解决了许多传统语言模型的局限性,具体优势如下:

1. 减少模型的生成幻觉

生成幻觉(Hallucination)是指语言模型在生成内容时,有时会产生不准确或虚假的信息。RAG通过首先检索相关的真实信息,然后生成基于这些信息的回答,从而显著减少生成幻觉的发生,提高回答的准确性和可信度。

2. 知识及时更新

由于RAG依赖于外部知识库或文档的检索,系统可以更容易地通过更新这些外部资源来保持最新的知识。这意味着即使模型本身没有重新训练,也能通过更新检索数据库来反映最新的信息和变化。

3. 避免人工整理FAQ

传统的FAQ系统需要人工整理和维护,而RAG技术能够自动从大量的文档和知识库中检索和生成答案,减少了人工整理和更新FAQ的负担,提高了效率。

4. 增加了答案推理

RAG技术不仅能够检索相关信息,还可以利用生成模型进行复杂的答案推理。这使得系统不仅能够提供直接的事实性回答,还能对复杂问题进行更深层次的分析和解答。

5. 增加内容生成的可追溯性

由于RAG在生成答案时依赖于检索到的真实文档和数据,生成的内容具有可追溯性。用户可以追溯到答案来源,验证信息的准确性和可靠性,增强了系统的透明度和用户信任。

6. 增加问答知识范围的管理权限

通过使用RAG技术,系统管理员可以更好地管理和控制问答知识的范围。管理员可以通过更新和管理检索数据库,确保系统回答的内容在预期的知识范围内,避免提供不相关或不准确的信息。

RAG vs Long Context

RAG和长文本(Long Context)技术在处理大量文本时,针对成本因素有着不同的优势。

以GPT-4为例,对于一篇20万字的小说提问:

  • 长文本(Long Context):如果将整个20万字的文本输入给模型,大约需要9元。

  • RAG:而对于RAG,只需召回约6*600个字(即3,600字),然后再输入给模型,这大约只需要0.25元。

这里的关键点在于RAG技术的使用,它不需要将所有20万字的文本都输入给模型,而是根据需要从文本中召回并选择性地输入给模型,从而大大降低了成本。相比之下,长文本的处理需要更高的成本,因为它要求模型处理更大量的文本。

技术交流

前沿技术资讯、算法交流、求职内推、算法竞赛、面试交流(校招、社招、实习)等、与 10000+来自港科大、北大、清华、中科院、CMU、腾讯、百度等名校名企开发者互动交流~

我们建了算法岗面试与技术交流群, 想要进交流群、需要源码&资料、提升技术的同学,可以直接加微信号:mlc2040。加的时候备注一下:研究方向 +学校/公司+CSDN,即可。然后就可以拉你进群了。

方式①、微信搜索公众号:机器学习社区,后台回复:技术交流
方式②、添加微信号:mlc2040,备注:技术交流+CSDN

unsetunset智谱RAG方案unsetunset

智谱RAG方案是一套完整的技术解决方案,旨在实现基于RAG(Retrieval-Augmented Generation)技术的智能问答系统。以下是该方案的技术方案全景:

在这里插入图片描述

文件上传与解析
  • 文件上传:用户上传需要检索的文档或知识库。

  • 文件解析:对上传的文件进行解析,提取其中的文本内容。

切片与索引
  • 切片:将文档内容按照设定的切片长度进行分割。

  • 路由:根据切片内容构建索引,以便快速检索。

数据库构建与优化
  • Small to Big:从小规模数据构建起,逐步扩展至大规模数据库。

  • 剔除无关信息:在构建数据库时,剔除无关信息,提高检索效率。

  • 识别目录、标题等:识别文档中的目录结构、标题等元信息,方便用户检索。

查询处理与优化
  • Query改写:对用户提出的查询进行改写,以提高召回率和准确性。

  • Query拓展:对查询进行语义补全,以丰富搜索结果。

  • 排序:使用rerank模型对搜索结果进行排序,提高结果的相关性。

文章类型匹配与索引
  • 文章类型匹配规则:根据文章类型制定不同的匹配规则,以确保搜索结果的准确性。

  • Query索引:将用户提问进行向量化,并建立查询索引,加速检索过程。

多路召回与语义检索
  • 多路召回:使用多种召回方法,如关键词检索等,以增加召回率。

  • 语义检索:利用语义相似度算法,提高检索结果的相关性。

用户提问与答案输出
  • 用户提问:用户通过系统提出问题。

  • 输出答案:根据用户提问,系统从数据库中检索相关内容,并生成准确的回答。

Query拆解与LLM prompt模板
  • Query拆解:将用户提问进行拆解,以识别关键信息。

  • LLM prompt模板:根据拆解的信息,构建LLM(Large Language Models)的输入模板,以便于生成回答。

在文档解析与切片过程中,首先对文章内容进行解析,将图片转换成特定标识符以便后续处理,将表格改写成模型易于理解的HTML格式,并过滤掉页眉页脚等无关信息,以确保保留主要内容。

同时,还需要提取文档的结构信息,包括目录和标题,以便于后续检索和理解文档的结构,并确保知识的连续和完整性。在原始文档切片的基础上,扩展更多粒度更小的文档切片,当检索到粒度细致的切片时,会递归检索到其原始大切片,然后将原始节点作为检索结果提交给LLM(Large Language Models)进行处理。

在这里插入图片描述

在这里插入图片描述

unsetunsetRAG实践unsetunset

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

unsetunset未来展望unsetunset

在这里插入图片描述

在这里插入图片描述

相关文章:

小白学RAG:大模型 RAG 技术实践总结

节前,我们组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、今年参加社招和校招面试的同学。 针对大模型技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备面试攻略、面试常考点等热门话题进行了深入的讨论。 汇总合集…...

Doris Connector 结合 Flink CDC 实现 MySQL 分库分表

1. 概述 在实际业务系统中为了解决单表数据量大带来的各种问题,我们通常采用分库分表的方式对库表进行拆分,以达到提高系统的吞吐量。 但是这样给后面数据分析带来了麻烦,这个时候我们通常试将业务数据库的分库分表同步到数据仓库时&#x…...

ModbusTCP、TCP/IP都走网线,一样吗?

在现代通信技术中,Modbus/TCP和TCP/IP协议是两种广泛应用于工业自动化和网络通信领域的协议。尽管它们都运行在网线上,但它们在设计、结构和应用场景上有着明显的区别。 Modbus/TCP协议是什么 Modbus/TCP是一种基于TCP/IP的应用层协议,它是Mo…...

网络学习(13)|Spring Boot中获取HTTP请求头(Header)内容的详细解析

文章目录 方法一:使用HttpServletRequest实现原理代码示例优点缺点适用场景 方法二:使用RequestContextHolder实现原理代码示例优点缺点适用场景 方法三:使用RequestHeader注解实现原理代码示例优点缺点适用场景 总结 在Spring Boot应用中&am…...

【漏洞复现】宏景eHR pos_dept_post SQL注入漏洞

0x01 产品简介 宏景eHR人力资源管理软件是一款人力资源管理与数字化应用相融合,满足动态化、协同化、流程化、战略化需求的软件。 0x02 漏洞概述 宏景eHR pos_dept_post 接囗处存在SQL注入漏洞,未经过身份认证的远程攻击者利用此漏洞执行任意SQL指令,…...

82. 删除排序链表中的重复元素 and II

链接直达: 保留重复元素 不保留重复元素 题目: 1: 给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。示例 1:输入:head [1,1,2] 输出:[1…...

C++ 判断目标文件是否被占用(独占)(附源码)

在IM软件中发起文件发送时,如果要发送的是某word文件,并且该word文件被office打开,则会提示文件正在被占用无法发送,如下所示: 那文件被占用到底是如何判断出来的呢?其实很简单,调用系统API函数CreateFile,打开该文件(OPEN_EXISTING),传入FILE_SHARE_READ共享读标记…...

计划任务 之 一次性的计划任务

计划任务 作用:定时自动完成特定的工作 计划任务的分类: (1)一次性的计划任务 例如下周三对系统的重要文件备份一次 (2)周期性重复计划任务 例如每天晚上12:00备份一次 一次性的任务计划&#xff1a…...

非比较排序之计数排序

目录 一、什么是计数排序 二、思路 三、代码实现 一、什么是计数排序 计数排序是一种非比较型的排序算法,它通过统计待排序数据中每个元素出现的次数,然后根据这个次数来进行排序。计数排序的具体步骤如下: 首先找出待排序数据中的最大值…...

Django路由与会话深度探索:静态、动态路由分发,以及Cookie与Session的奥秘

系列文章目录 Django入门全攻略:从零搭建你的第一个Web项目Django ORM入门指南:从概念到实践,掌握模型创建、迁移与视图操作Django ORM实战:模型字段与元选项配置,以及链式过滤与QF查询详解Django ORM深度游&#xff…...

第7章 用户输入和 while 循环

第7章 用户输入和 while 循环 7.1 函数 input()的工作原理7.1.1 编写清晰的程序7.1.2 使用 int()来获取数值输入7.1.3 求模运算符 7.2 while 循环简介7.2.1 使用 while 循环7.2.2 让用户选择何时退出7.2.3 使用标志7.2.4 使用 break 退出循环7.2.5 在循环中使用 continue7.2.6 …...

xshell远程无法链接上VM的centos7

1、现象如下, 2.1解决办法:查证后发现这个默认的设置为vmnet0 2.2解决办法:重启win10的虚拟机网卡(先禁用再启用) 3.参考文章:Xshell连接不上虚拟机centos7_centos7的nat模式可以ping通网络,但是用xshell连…...

拥抱AI-图片学习中的卷积神经算法详解

一、定义 卷积神经算法(Convolutional Neural Networks, CNN)是深度学习领域中的一种重要算法,特别适用于处理图像相关的任务。以下是卷积神经算法的详细解释: 1. 基本概念 定义:卷积神经网络是一类包含卷积计算且具…...

超详解——深入详解Python基础语法——基础篇

目录 1 .语句和变量 变量赋值示例: 打印变量的值: 2. 语句折行 反斜杠折行示例: 使用括号自动折行: 3. 缩进规范 缩进示例: 4. 多重赋值(链式赋值) 多重赋值的应用: 5 .多…...

系统架构设计师【论文-2017年 试题2】: 论软件架构风格(包括写作要点和经典范文)

题目:论软件架构风格 (2017年 试题2) 软件体系结构风格是描述某一特定应用领域中系统组织方式的惯用模式。体系结构风格 定义一个系统家族,即一个体系结构定义一个词汇表和一组约束。词汇表中包含一些构件和 连接件类型&#xff…...

Spring Boot 事务传播机制详解

Spring Boot 事务传播机制详解 1. 事务传播机制概述 Spring Boot 中的事务传播机制用于处理多个事务方法之间相互调用时的事务行为,保证数据的完整性和一致性。当务传播机制定义了在调用一个事务方法时,当前事务该如何传播或传递。Spring Boot 中的事务…...

【机器学习】生成对抗网络 (Generative Adversarial Networks | GAN)

生成对抗网络 (Generative Adversarial Networks | GAN) 介绍 生成对抗网络 (Generative Adversarial Networks,简称GAN) 是一种强大的深度学习模型,用于生成具有逼真感的图像、音频和文本等内容。GAN 的核心理念是通过训练两个神经网络,生…...

[ADS信号完整性分析]深入理解IBIS AMI模型设计:从基础到实践

在高速数字设计领域,信号完整性(SI)分析对于确保系统性能至关重要。IBIS AMI(Algorithmic Model Interface)模型作为一种强大的工具,能够帮助设计师在系统层面上评估和优化SERDES(串行器/解串器…...

Plotly : 超好用的Python可视化工具

文章目录 安装:开始你的 Plotly 之旅基本折线图:简单却强大的起点带颜色的散点图:数据的多彩世界三维曲面图:探索数据的深度气泡图:让世界看到你的数据小提琴图:数据分布的优雅展现旭日图:分层数…...

Linux电话本的编写-shell脚本编写

该电话本可以实现以下功能 1.添加用户 2.查询用户 3.删除用户 4.展示用户 5.退出 代码展示: #!/bin/bash PHONEBOOKphonebook.txt function add_contact() { echo "Adding new contact..." read -p "Enter name: " name …...

蓝牙开发 基础知识

零、基础知识 0.1、Android 应用可通过 Bluetooth API 执行以下操作 扫描其他蓝牙设备查询本地蓝牙适配器的配对蓝牙设备建立 RFCOMM 通道通过服务发现连接到其他设备与其他设备进行双向数据传输管理多个连接 0.2、蓝牙进行通信的四大必需任务 设置蓝牙查找局部区域内的配对…...

QNX 7.0.0开发总结

1 QNX编译 1.1 基本概念 QNX可以直接使用Linux Makefile编译库和二进制,在Makefile文件中指定CCaarch64-unknown-nto-qnx7.0.0-g,或者CCx86_64-pc-nto-qnx7.0.0-g,保存退出后,运行source /qnx_sdk_path/qnxsdp-env.sh,…...

Golang使用讯飞星火AI接口

一、API申请 https://www.bilibili.com/video/BV1Yw411m7Rs/?spm_id_from333.337.search-card.all.click&vd_source707ec8983cc32e6e065d5496a7f79ee6 注册申请,需要在此页面获取appid、apisecret、apikey https://www.xfyun.cn/ https://console.xfyun.cn/ser…...

矫正儿童发音好帮手

《言语构音语音训练手册——下颌、唇部、舌部构音运动障碍》教辅书 儿童言语构音语音问题越来越受到家长的关注,大多数家长受到儿童说话晚、口齿不清、发音错误等问题的困扰,国外报道2岁儿童言语构音语音障碍达到17%,3岁达4%~7.5%&#xff0…...

wordpress主题导航主题v4.16.2哈哈版

1.下载授权接口源码onenav-auth-api-v2.zip ,在宝塔新建一个网站,域名为 auth.iotheme.cn,设置wordpress伪静态,申请ssl证书。将上面源码解压后上传到此网站根目录。 2. 在宝塔根目录etc下 hosts 中添加 127.0.0.1 auth.iotheme.…...

内存分布图

1.基本数据类型和常量存放在常量池中。 2.类的成员存放在堆中,如果成员是其他类对象也存放在堆中 3.数组和数组的内容放在堆中 4.类对象存放在栈中。 5.单独的对象存放在栈中。 6.引用数据类型存放在堆或栈中。 Java中对象到底存在堆中还是栈中_java对象在堆还…...

如何发布自己的NPM插件包?

安装 Node.js : 如果没有安装的,Nodejs下载安装:http://nodejs.cn/download/ 首先确保你已经安装了 Node.js 和 npm。你可以通过运行以下命令来检查是否已经安装: node -v npm -v初始化项目: 创建一个新的项目文件夹…...

计算广告读书杂记-待整理

不知不觉已经在字节干了两年多广告研发,也跳槽去了一家广告公司继续深耕,借着这个劲,重新读一遍《计算广告》这本书,并将一些重点概念进行记录。...

No module named _sqlite3解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…...

防飞单,赢市场:售楼处客流统计管理新篇章

在竞争激烈的房地产市场中,售楼处作为楼盘销售的重要窗口,其管理效率和服务质量直接关系到楼盘的销售业绩和品牌形象。然而,传统的客户人数统计方式往往存在诸多不足,如数据不准确、统计效率低下等,这些问题给售楼处的…...

科创纵横 网站建设/山西网络推广专业

事务的定义 我们常说事务事务,事务在软件设计中事务很重要,那么到底什么是事务呢? 事务(Transaction),一般是指要做的或所做的事情。在计算机术语中指访问并访问并有有可能更新数据库中各种数据项的一个程序执行单元。事务通常由高…...

双语cms网站/营销软件有哪些

2019独角兽企业重金招聘Python工程师标准>>> 为了更好的控制多线程,JDK提供了一套线程框架Executor来帮助程序员有效的进行线程控制。Java.util.concurrent 包是专为 Java并发编程而设计的包,它下有很多编写好的工具: 脑图地址&am…...

上海网站设计的公司/百度云

最近在忙一个移动警务的项目,需要获取SIM卡的信息,来做身份的验证。考虑到获取:国际移动设备识别码(IMEI:International Mobile Equipment Identification Number)和国际移动用户识别码(IMSI&am…...

苏州做视频网站广告公司/网站平台怎么推广

Ecshop这款程序虽然目前已经开发的相当成熟了,可是后台的一些功能还是比较烂,原因只有一个那就是它属于开源程序,很多站长们使用这款程序搭建商城,可是由于自己的疏忽不小心忘记了账号密码,这时候再想登陆到后台去就需…...

平板电脑可以做网站吗/中国营销传播网

第一 ,eclipse 中如何 插件安装 参看 Android 开发环境配置环境变量 (附图) http://blog.csdn.net/janronehoo/article/details/6505289 第二 ,viplugin 插件安装地址 http://viplugin.com/ viPlugin是Eclipse的一个插件…...

长治网站建设电话/软文广告范文

地下城礼包不断,才在商城上架3款(777、2999、11800)礼包后,体验服8.08又有新礼包“空域之怒海霸主”(19900),上一篇已介绍过,主要是2个新道具的出现,宠物BUFF技能宝珠和装扮跨界石,而一次更新出1个礼包太少…...