一图窥探RAG技术发展现状

2023年除了大语言模型,听到最多的当属RAG(检索增强生成技术了),在实际业务场景落地过程中,由于大模型目前的一定局限和能力现状以及Token限制、训练成本等多种因素的影响下,RAG不得不成为大家选择快速试错、落地的一种选择和方案。

RAG技术通过查询处理、数据检索、文档优化、增强生成、语义理解、文档结构化和自我增强等多步骤,实现了对用户问题的深度理解和高效回答。🔍📈 从自然语言到数据库查询,再到精准答案,RAG技术让AI的每一步都更加智能和人性化,让我们从这一张图来了解RAG技术体系的全貌。#RAG #人工智能 #自然语言处理 #技术前沿"

一、在RAG技术体系中将用户的问题路由到最合适的数据源或处理路径

一般有语义路由和逻辑路由两种方式。语义路由和逻辑路由可能结合使用,以实现更高效和准确的信息检索。语义路由帮助系统理解查询的深层含义,而逻辑路由确保查询按照正确的逻辑被处理。这种结合可以提高系统对复杂查询的处理能力,尤其是在需要理解用户意图和执行复杂逻辑操作的场景中。

  1. 语义路由(Semantic Routing)

    • 语义路由侧重于理解查询的语义内容,即查询的实际含义和意图。
    • 在RAG系统中,语义路由可能涉及到自然语言处理(NLP)技术,如语义分析、实体识别和意图识别,以确保系统能够准确理解用户的问题。
    • 语义路由的目标是将用户的查询映射到最相关的数据源或处理路径,即使这些路径可能不是直观的或直接的。
    • 例如,如果用户询问“最近的天气如何?”,语义路由会识别出这是一个关于天气查询的问题,并将其路由到提供天气信息的服务或数据库。
  2. 逻辑路由(Logical Routing)

    • 逻辑路由则更侧重于查询的结构和形式,它根据查询的逻辑结构来确定处理路径。
    • 在RAG系统中,逻辑路由可能涉及到对查询语句的解析,识别出查询中的逻辑关系,如AND、OR、NOT等操作。
    • 逻辑路由的目标是确保查询按照既定的规则和顺序被正确处理,以便系统能够生成准确的回答。
    • 例如,如果用户提出一个复杂的SQL查询,逻辑路由会确保查询中的各个部分按照正确的逻辑顺序被执行。

二、RAG技术涉及的以下几个关键过程

  1. 查询处理

    • 用户提出问题后,系统首先需要构建一个有效的查询(Query Construction)。
    • 系统将自然语言查询转换为数据库查询语言,如SQL或Cypher(Text-to-SQL, Text-to-Cypher)。
  2. 数据检索与排名

    • 系统从多种数据源(如关系型数据库、图数据库、向量数据库)检索相关文档(Retrieval)。
    • 对检索到的文档进行排名(Ranking),以确定哪些文档最相关。
  3. 文档处理与优化

    • 对文档进行精炼(Refinement),可能包括重新排名、过滤或压缩,以提高相关性。
    • 自动生成元数据(Auto-generate metadata)以辅助检索。
    • 对文档进行分块优化(Chunk Optimization),以便于处理和生成回答。
  4. 检索增强与生成

    • 使用RAG-Fusion等技术将检索到的信息与生成的回答结合起来。
    • 主动检索(Active Retrieval)确保在初始检索不相关时能够重新检索或从新数据源获取信息。
  5. 语义理解和微调

    • 使用语义分割器(Semantic Splitter)来处理文档,提高理解的准确性。
    • 对模型进行微调(Fine-tuning),如使用ColBERT等先进的嵌入模型,以提高检索和生成的质量。
  6. 文档摘要与结构化

    • 构建文档摘要的树状结构(Tree of document summarization),以便于在不同抽象层次上理解和回答。
    • 优化文档转换为紧凑形式的工具(如RAPTOR),提高检索效率。
  7. 自我增强与迭代

    • 自我增强的RAG(Self-RAG)和重复回答检索(RRR)允许系统自我改进其检索和生成过程。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/378903.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

WebSocket+Http实现功能加成

WebSocketHttp实现功能加成 前言 首先,WebSocket和HTTP是两种不同的协议,它们在设计和用途上有一些显著的区别。以下是它们的主要特点和区别: HTTP (HyperText Transfer Protocol): 请求-响应模型: HTTP 是基于请求-响应模型的协…

Three.js学习8:基础贴图

一、贴图 贴图(Texture Mapping),也翻译为纹理映射,“贴图”这个翻译更直观。 贴图,就是把图片贴在 3D 物体材质的表面,让它具有一定的纹理,来为 3D 物体添加细节的一种方法。这使我们能够添加…

TCP和UDP相关问题(重点)——7.TCP的流量控制怎么实现的?

流量控制就是在双方通信时,发送方的速率和接收方的速率不一定是相等的,如果发送方发送的太快,接收方就只能把数据先放到接收缓冲区中,如果缓冲区都满了,那么处理不过来就只能丢弃,所以需要控制发送方的速率…

【Go】三、Go并发编程

并发编程 我们主流的并发编程思路一般有:多进程、多线程 但这两种方式都需要操作系统介入,进入内核态,是十分大的时间开销 由此而来,一个解决该需求的技术出现了:用户级线程,也叫做 绿程、轻量级线程、协…

猫头虎分享已解决Bug || Spring Error: Request method ‘POST‘ not supported

博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通鸿蒙》 …

06-OpenFeign-使用HtppClient连接池

默认下OpenFeign使用URLConnection 请求连接&#xff0c;每次都需要创建、销毁连接 1、添加ApacheHttpClient依赖 <!-- 使用Apache HttpClient替换Feign原生httpclient--><dependency><groupId>org.apache.httpcomponents</groupId><artifact…

springboo冬奥会科普平台源码和论文

随着信息技术和网络技术的飞速发展&#xff0c;人类已进入全新信息化时代&#xff0c;传统管理技术已无法高效&#xff0c;便捷地管理信息。为了迎合时代需求&#xff0c;优化管理效率&#xff0c;各种各样的管理平台应运而生&#xff0c;各行各业相继进入信息管理时代&#xf…

EMC学习笔记(二十二)降低EMI的PCB设计指南(二)

降低EMI的PCB设计指南&#xff08;二&#xff09; 1.电源和地概述2.电感量3.两层板和四层板4.单层和双层设计中的微控制器接地5.信号返回地6.模拟、数字信号与大功率电源7.模拟电源引脚和模拟参考电源8.四层板电源设计参考注意事项 tips&#xff1a;资料主要来自网络&#xff0…

Apache网站部署

站点添加及linux防火墙和selinux启动和停止 apache站点添加 linux系统防火墙和selinux起停 1、防火墙firewall操作 查看防火墙的状态&#xff0c;如下&#xff08;默认开启&#xff09;&#xff1a; systemctl status firewalld 关闭服务 systemctl stop firewalld 关闭…

《向量数据库指南》——Milvus Cloud「删除」:眼见未必为实

“执行 Collection 中的 delete 操作后,再次调用 num_entities 检查集合中的数据的条数,和删除前一致, delete 不能从物理层面上删除数据吗?”“删除的数据还能被查到是为什么?”“请问下删除 collection 后,磁盘大小没有恢复,该怎么处理?”社区中关于“删除”讨论最多…

EMC学习笔记(二十一)降低EMI的PCB设计指南(一)

降低EMI的PCB设计指南&#xff08;一&#xff09; 1.概述2.射频3.连接器与过孔元件4.静态引脚和动态引脚和输入5.基本回路6.差模与共模 tips&#xff1a;资料主要来自网络&#xff0c;仅供学习使用。 1.概述 印刷电路板(PCB)的一般布局准则&#xff0c;基本上都有相对的文件进…

2024.2.5

#include<stdio.h> #include<string.h> #include<math.h> #include<stdlib.h> typedef int datatype; //定义结点结构体 typedef struct Node {datatype data;struct Node *next; }*node; //创建结点 node creat_node() {node s(node)malloc(sizeof(st…

基于SSM的网络在线考试系统(有报告)。Javaee项目。ssm项目。

演示视频&#xff1a; 基于SSM的网络在线考试系统&#xff08;有报告&#xff09;。Javaee项目。ssm项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&#xff0c;通过Spring …

(十八)springboot实战——spring securtity注解方式的授权流程源码解析

前言 在上一节内容中&#xff0c;我们介绍了如何在FilterSecurityInterceptor过滤器中处理用户的授权流程&#xff0c;并分析了其源码&#xff0c;spring security还提供了方法级别的授权方式&#xff0c;通过EnableMethodSecurity注解启用权限认证流程&#xff0c;只需要在方…

【数据结构】链表OJ面试题4(题库+解析)

1.前言 前五题在这http://t.csdnimg.cn/UeggB 后三题在这http://t.csdnimg.cn/gbohQ 给定一个链表&#xff0c;判断链表中是否有环。http://t.csdnimg.cn/Rcdyc 记录每天的刷题&#xff0c;继续坚持&#xff01; 2.OJ题目训练 10. 给定一个链表&#xff0c;返回链表开始…

【doghead】uv_loop_t的创建及线程执行

worker测试程序,类似mediasoup对uv的使用,是one loop per thread 。创建一个UVLoop 就可以创建一个uv_loop_t Transport 创建一个: 试验配置创建一个: UvLoop 封装了libuv的uv_loop_t ,作为共享指针提供 对uv_loop_t 创建并初始化

【CV论文精读】【MVDet】Multiview Detection with Feature Perspective Transformation

0.论文摘要 合并多个摄像机视图进行检测减轻了拥挤场景中遮挡的影响。在多视图检测系统中&#xff0c;我们需要回答两个重要问题。首先&#xff0c;我们应该如何从多个视图中聚合线索&#xff1f;第二&#xff0c;我们应该如何从空间上相邻的位置聚集信息&#xff1f;为了解决…

【机器学习】数据清洗之识别缺失点

&#x1f388;个人主页&#xff1a;甜美的江 &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏 &#x1f917;收录专栏&#xff1a;机器学习 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共同学习、交流进步…

Android Studio 安装Flutter插件但是没法创建项目

Android Studio 安装Flutter插件但是没法创建项目 如果你在Android Studio已经安装了Dart、Flutter插件&#xff0c;但是不能创建Flutter项目。 原因是因为Android Studio的版本更新&#xff0c;Android APK Support这个插件没被选中。 一旦勾选这个插件之后&#xff0c;就能…

超级干货:ArcGIS的那些花样技巧

本篇是工作过程中收集的一些ArcGIS相关的技巧和问题解决思路。总有一些坑是你也踩过的&#xff0c;希望可以帮到你。 1、筛选工具中的SQL语句用法 DLMC IN (水田,水浇地) 筛选DLMC字段值为水田或水浇地的图斑 DLMC IS NOT NULL 筛选DLMC字段值不为空的图斑 DLMC LIKE(%水%…