大语言模型的外挂数据库:RAG检索增强生成

2024-06-03 16:28

本文主要是介绍大语言模型的外挂数据库:RAG检索增强生成,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks
Lewis P, Perez E, Piktus A, et al. Retrieval-augmented generation for knowledge-intensive nlp tasks[J]. Advances in Neural Information Processing Systems, 2020, 33: 9459-9474.

RAG结合了信息检索和文本生成两种方法,旨在突破传统问答系统的局限。通过将外部数据检索的相关信息输入大语言模型,大语言模型能够基于这些信息生成回答,进而增强答案生成的能力。RAG能够处理更广泛、更复杂的问题。使用RAG后可以有效解决大语言模型细分领域的幻觉和知识过期问题。

1、RAG的和核心组件

(1)信息检索
(2)文本生成

2、RAG工作流程

(1)最基础的RAG
在这里插入图片描述

(2)增加预处理查询的RAG
在这里插入图片描述

(3)带有聊天历史的RAG
在这里插入图片描述

(4)增加自动排序的RAG
在这里插入图片描述

3、RAG在Chatbot中的应用

(1)提高回应的相关性和准确性
(2)处理复杂查询
(3)增强个性化和上下文理解能力

4、RAG面临的挑战

(1)检索与生成的协同工作:检索到的内容与生成的内容能否紧密结合是一个关键问题。
(2)计算效率:执行检索和生成着两个步骤可能导致系统响应延迟,使整个系统的运行速度变慢,因此对时间敏感的应用而言,RAG可能不太适用。
(3)数据噪声:外部检索的数据可能带有噪声,这会影响生成内容的准确性。

5、RAG与Fine-tuning

RAG和Fine-tuning都是强大的工具,可以增强大语言模型应用的性能,但它们针对的是优化过程的不同方面。两者是截然不同的两种技术,不是替代关系,而是关联关系,在不同场景下应该选择不同的方案。

对比项RAGFine-tuning
需要获取外部数据吗yesno
需要改变模型行为模式吗noyes
幻觉有最小化吗yesno
训练数据充足吗noyes
数据动态性高吗yesno
数据可解释度如何yesno

参考

  • Chatbot从0到1(第2版):对话式交互实践指南
  • 浅谈RAG的十大挑战

这篇关于大语言模型的外挂数据库:RAG检索增强生成的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1027499

相关文章

C语言中%zu的用法解读

《C语言中%zu的用法解读》size_t是无符号整数类型,用于表示对象大小或内存操作结果,%zu是C99标准中专为size_t设计的printf占位符,避免因类型不匹配导致错误,使用%u或%d可能引发... 目录size_t 类型与 %zu 占位符%zu 的用途替代占位符的风险兼容性说明其他相关占位符验证示

Oracle数据库定时备份脚本方式(Linux)

《Oracle数据库定时备份脚本方式(Linux)》文章介绍Oracle数据库自动备份方案,包含主机备份传输与备机解压导入流程,强调需提前全量删除原库数据避免报错,并需配置无密传输、定时任务及验证脚本... 目录说明主机脚本备机上自动导库脚本整个自动备份oracle数据库的过程(建议全程用root用户)总结

C语言进阶(预处理命令详解)

《C语言进阶(预处理命令详解)》文章讲解了宏定义规范、头文件包含方式及条件编译应用,强调带参宏需加括号避免计算错误,头文件应声明函数原型以便主函数调用,条件编译通过宏定义控制代码编译,适用于测试与模块... 目录1.宏定义1.1不带参宏1.2带参宏2.头文件的包含2.1头文件中的内容2.2工程结构3.条件编

Go语言并发之通知退出机制的实现

《Go语言并发之通知退出机制的实现》本文主要介绍了Go语言并发之通知退出机制的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录1、通知退出机制1.1 进程/main函数退出1.2 通过channel退出1.3 通过cont

Go语言编译环境设置教程

《Go语言编译环境设置教程》Go语言支持高并发(goroutine)、自动垃圾回收,编译为跨平台二进制文件,云原生兼容且社区活跃,开发便捷,内置测试与vet工具辅助检测错误,依赖模块化管理,提升开发效... 目录Go语言优势下载 Go  配置编译环境配置 GOPROXYIDE 设置(VS Code)一些基本

虚拟机Centos7安装MySQL数据库实践

《虚拟机Centos7安装MySQL数据库实践》用户分享在虚拟机安装MySQL的全过程及常见问题解决方案,包括处理GPG密钥、修改密码策略、配置远程访问权限及防火墙设置,最终通过关闭防火墙和停止Net... 目录安装mysql数据库下载wget命令下载MySQL安装包安装MySQL安装MySQL服务安装完成

MySQL进行数据库审计的详细步骤和示例代码

《MySQL进行数据库审计的详细步骤和示例代码》数据库审计通过触发器、内置功能及第三方工具记录和监控数据库活动,确保安全、完整与合规,Java代码实现自动化日志记录,整合分析系统提升监控效率,本文给大... 目录一、数据库审计的基本概念二、使用触发器进行数据库审计1. 创建审计表2. 创建触发器三、Java

python生成随机唯一id的几种实现方法

《python生成随机唯一id的几种实现方法》在Python中生成随机唯一ID有多种方法,根据不同的需求场景可以选择最适合的方案,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习... 目录方法 1:使用 UUID 模块(推荐)方法 2:使用 Secrets 模块(安全敏感场景)方法

SQL server数据库如何下载和安装

《SQLserver数据库如何下载和安装》本文指导如何下载安装SQLServer2022评估版及SSMS工具,涵盖安装配置、连接字符串设置、C#连接数据库方法和安全注意事项,如混合验证、参数化查... 目录第一步:打开官网下载对应文件第二步:程序安装配置第三部:安装工具SQL Server Manageme

C#连接SQL server数据库命令的基本步骤

《C#连接SQLserver数据库命令的基本步骤》文章讲解了连接SQLServer数据库的步骤,包括引入命名空间、构建连接字符串、使用SqlConnection和SqlCommand执行SQL操作,... 目录建议配合使用:如何下载和安装SQL server数据库-CSDN博客1. 引入必要的命名空间2.