大语言模型的外挂数据库: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

相关文章

Java利用docx4j+Freemarker生成word文档

《Java利用docx4j+Freemarker生成word文档》这篇文章主要为大家详细介绍了Java如何利用docx4j+Freemarker生成word文档,文中的示例代码讲解详细,感兴趣的小伙伴... 目录技术方案maven依赖创建模板文件实现代码技术方案Java 1.8 + docx4j + Fr

Ubuntu中远程连接Mysql数据库的详细图文教程

《Ubuntu中远程连接Mysql数据库的详细图文教程》Ubuntu是一个以桌面应用为主的Linux发行版操作系统,这篇文章主要为大家详细介绍了Ubuntu中远程连接Mysql数据库的详细图文教程,有... 目录1、版本2、检查有没有mysql2.1 查询是否安装了Mysql包2.2 查看Mysql版本2.

Oracle数据库常见字段类型大全以及超详细解析

《Oracle数据库常见字段类型大全以及超详细解析》在Oracle数据库中查询特定表的字段个数通常需要使用SQL语句来完成,:本文主要介绍Oracle数据库常见字段类型大全以及超详细解析,文中通过... 目录前言一、字符类型(Character)1、CHAR:定长字符数据类型2、VARCHAR2:变长字符数

Win11安装PostgreSQL数据库的两种方式详细步骤

《Win11安装PostgreSQL数据库的两种方式详细步骤》PostgreSQL是备受业界青睐的关系型数据库,尤其是在地理空间和移动领域,:本文主要介绍Win11安装PostgreSQL数据库的... 目录一、exe文件安装 (推荐)下载安装包1. 选择操作系统2. 跳转到EDB(PostgreSQL 的

Java编译生成多个.class文件的原理和作用

《Java编译生成多个.class文件的原理和作用》作为一名经验丰富的开发者,在Java项目中执行编译后,可能会发现一个.java源文件有时会产生多个.class文件,从技术实现层面详细剖析这一现象... 目录一、内部类机制与.class文件生成成员内部类(常规内部类)局部内部类(方法内部类)匿名内部类二、

SpringBoot实现数据库读写分离的3种方法小结

《SpringBoot实现数据库读写分离的3种方法小结》为了提高系统的读写性能和可用性,读写分离是一种经典的数据库架构模式,在SpringBoot应用中,有多种方式可以实现数据库读写分离,本文将介绍三... 目录一、数据库读写分离概述二、方案一:基于AbstractRoutingDataSource实现动态

使用Jackson进行JSON生成与解析的新手指南

《使用Jackson进行JSON生成与解析的新手指南》这篇文章主要为大家详细介绍了如何使用Jackson进行JSON生成与解析处理,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 核心依赖2. 基础用法2.1 对象转 jsON(序列化)2.2 JSON 转对象(反序列化)3.

C# WinForms存储过程操作数据库的实例讲解

《C#WinForms存储过程操作数据库的实例讲解》:本文主要介绍C#WinForms存储过程操作数据库的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、存储过程基础二、C# 调用流程1. 数据库连接配置2. 执行存储过程(增删改)3. 查询数据三、事务处

java中使用POI生成Excel并导出过程

《java中使用POI生成Excel并导出过程》:本文主要介绍java中使用POI生成Excel并导出过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录需求说明及实现方式需求完成通用代码版本1版本2结果展示type参数为atype参数为b总结注:本文章中代码均为

Java的IO模型、Netty原理解析

《Java的IO模型、Netty原理解析》Java的I/O是以流的方式进行数据输入输出的,Java的类库涉及很多领域的IO内容:标准的输入输出,文件的操作、网络上的数据传输流、字符串流、对象流等,这篇... 目录1.什么是IO2.同步与异步、阻塞与非阻塞3.三种IO模型BIO(blocking I/O)NI