RAG应用全流程

news2024/10/6 4:13:34

在这里插入图片描述

RAG全流程

  • 前提
    • 训练一个语义模型(高精度,低精度)
    • 训练一个大模型
    • 一个知识库
    • 一个精度高知识向量库(知识分割后输入高精度语义模型得到)
    • 一个精度低知识向量库(知识分割后输入低精度语义模型得到)
  • 应用流程细化
    • 用户输入问题处理
    • 大模型增强理解
    • 语义模型向量转换
    • 低精度向量数据库检索
    • 高精度向量数据库检索
    • 高精度相似度计算
    • 知识库知识提取
    • 大模型生成回答

前提

训练一个语义模型(高精度,低精度)

为了实现高效的问题理解和信息检索,我们训练了一个语义模型,它能够将输入的问题转换为高精度和低精度的向量表示。高精度向量用于精确匹配和理解问题的语义细节,而低精度向量则用于快速检索和筛选相关信息。

训练一个大模型

为了能够处理复杂的问题并生成详尽的回答,我们训练了一个大模型。这个模型能够理解问题的深层含义,结合知识库中的信息,生成准确、连贯的回答。

一个知识库

我们构建了一个包含丰富知识的知识库,它为大模型提供了必要的背景信息和支持。知识库中的知识被精心组织和索引,以便快速检索和利用。

一个精度高知识向量库(知识分割后输入高精度语义模型得到)

为了提高知识检索的精度,我们创建了一个高精度的知识向量库。这个库中的知识被分割成小块,并输入到高精度语义模型中,转换成向量表示。这些向量能够准确地捕捉到知识的语义特征,为问题理解和回答生成提供了有力的支持。

一个精度低知识向量库(知识分割后输入低精度语义模型得到)

为了实现快速的知识检索,我们构建了一个低精度的知识向量库。与高精度知识向量库类似,知识被分割成小块,并输入到低精度语义模型中,转换成向量表示。这些向量虽然精度较低,但仍然能够保留知识的主要语义信息,为快速筛选和初选相关知识点提供了便利。

应用流程细化

用户输入问题处理

当用户输入一个问题,系统首先对问题进行预处理,包括去除无关字符、分词等操作,以确保输入的问题能够被系统正确理解和处理。

大模型增强理解

预处理后的问题将被输入到大模型中,大模型会对问题进行深入理解,提取问题的关键信息,并生成一个初步的理解表示。

语义模型向量转换

大模型生成的初步理解表示将作为输入,被送入到语义模型中。语义模型会将其转换为高精度和低精度的向量表示。高精度向量能够更准确地表达问题的语义信息,而低精度向量则在保持主要语义信息的同时,降低了计算复杂度。

低精度向量数据库检索

使用转换得到的低精度向量,系统将在低精度知识向量数据库中进行检索,找到与问题最相关的Top n个向量索引。

高精度向量数据库检索

利用从低精度向量数据库中得到的Top n个向量索引,系统在高精度知识向量数据库中取出对应的n个高精度向量。

高精度相似度计算

系统将计算用户问题的高精度向量与从高精度知识向量数据库中取出向量之间的相似度,并取Top m个最相似的向量索引。

知识库知识提取

根据Top m个向量索引,系统在知识库中找到对应的知识条目,这些知识条目可能与用户的问题高度相关。

大模型生成回答

最后,系统将结合用户原始输入或经过大模型增强的输入,以及从知识库中提取的相关知识,一起作为输入送入到大模型中,生成一个针对用户问题的详细回答。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

粗俗理解多层感知器

一、前言 参考资料和图片均来自以下链接:https://www.youtube.com/watch?vaircAruvnKk&listPLZHQObOWTQDNU6R1_67000Dx_ZCJB-3pihttps://www.youtube.com/watch?vbfmFfD2RIcghttps://www.youtube.com/watch?vKuXjwB4LzSAhttps://www.youtube.com/watch?vIl…

C#知识|事件集中响应,多个按钮关联同一事件(实例练习)

哈喽,你好,我是雷工! 本节学习窗体Controls集合、控件事件的统一关联及如何优化重复代码。 01 事件集中响应 原理:就是相同的控件,可以关联同一个事件响应方法。 02 示例演示 2.1、示例功能 该示例实现窗体中选择…

433M无线射频信号控制继电器--第三天

1.先sbit(位地址访问p1^1,p1^2,p1^3口) 当按下A键时D0输入高电平,继电器IO口导通,则接通电源或者灯亮 当按下C键时D1口输入高电平,继电器IO口为高电平,不导通 2.433m无线模块知识 433m无线模块基础知识 -…

容斥原理以及Nim基础(异或,SG函数)

容斥原理&#xff1a; 容斥的复杂度为O&#xff08;2^m)&#xff0c;所以可以通过&#xff0c;对于实现&#xff0c;一共2^n-1种&#xff0c;我们可以用二进制来实现 下面是AC代码&#xff1a; #include<bits/stdc.h> using namespace std; typedef long long LL; cons…

奈氏准则和香农定理

一、奈奎斯特和香农 哈里奈奎斯特&#xff08;Harry Nyquist&#xff09;(左) 克劳德艾尔伍德香农&#xff08;Claude Elwood Shannon&#xff09;(右) 我们应该在心里记住他们&#xff0c;记住所有为人类伟大事业做出贡献的人&#xff0c;因为他们我们的生活变得越来越精彩&…

数字旅游以科技创新为核心竞争力:推动旅游服务的智能化、高效化,满足游客日益增长的旅游需求

一、引言 随着科技的飞速发展&#xff0c;数字旅游作为旅游业与信息技术结合的产物&#xff0c;正以其独特的魅力改变着传统旅游业的格局。科技创新作为数字旅游的核心竞争力&#xff0c;不仅推动了旅游服务的智能化、高效化&#xff0c;更满足了游客日益增长的旅游需求。本文…

挑战一周完成Vue3项目Day5:数据大屏+菜单权限+按钮权限

一、数据大屏 国内echarts镜像站&#xff1a;ISQQW.COM x ECharts 文档&#xff08;国内同步镜像&#xff09; - 配置项 echarts图表集&#xff1a;echarts图表集 1.数据大屏适配问题解决 &#xff08;1&#xff09;vw与vh单位解决适配问题 vw/vh&#xff1a;新增单位&…

顺序循环队列--c语言实现

#include <stdio.h> #include <stdlib.h> #include <stdbool.h>#define MAX_SIZE 100 // 假设队列的最大长度为100// 队列结构体 typedef struct {int data[MAX_SIZE]; // 存储队列元素的数组int front; // 队头指针int rear; // 队尾指针 } SeqQueue;// 初…

AI学习指南-专栏前言

前言 人工智能AI作为当下最火热的技术之一&#xff0c;我们每个人似乎都被动的置身于这场科技变革中&#xff0c;AI越来越多的出现在我们的身边&#xff0c;也总能听到这样的言论&#xff0c;例如“N年后AI会取代某某行业”&#xff0c;AI出现之后&#xff0c;好像大多数人都陷…

【研发日记】Matlab/Simulink避坑指南(十一)——Delay周期Bug

文章目录 前言 背景介绍 问题描述 分析排查 解决方案 总结归纳 前言 见《研发日记&#xff0c;Matlab/Simulink避坑指南(六)——字节分割Bug》 见《研发日记&#xff0c;Matlab/Simulink避坑指南(七)——数据溢出钳位Bug》 见《研发日记&#xff0c;Matlab/Simulink避坑指…

图像分割模型实际分隔效果测试(Clipseg + GroundingDINO + Yoloworld)

✨背景 对于设计的工作流来说&#xff0c;智能图像分割也是一个很重要的课题&#xff0c;尤其是像照片换脸、照片高清写真等等的工作流&#xff0c;可能要多次把人物的脸部或者手部抠图出来进行合成&#xff0c;工作流如果可以直接智能分割图像并合成&#xff0c;就可以避免自…

20240503安装HEVC解码器播放H265格式的8K视频

20240503安装HEVC解码器播放H265格式的8K视频 2024/5/3 9:55 缘起&#xff1a;由于youtube支持8K视频了&#xff0c;想尝尝鲜&#xff01; 主摄像头当然是选择SONY的【夜摄/弱光场景】&#xff0c;根据优选&#xff0c;小米&#xff08;MI&#xff09;13Ultra 最佳了。 在开始播…

设计模式动态代理

什么是设计模式? 一个问题通常有n种解法&#xff0c;其中肯定有一种解法是最优的&#xff0c;这个最优的解法被人总结出来了&#xff0c;称之为设计模式。 设计模式有20多种&#xff0c;对应20多种软件开发中会遇到的问题。 关于设计模式的学习&#xff0c;主要学什么&#…

项目管理-项目范围管理2/2

项目管理&#xff1a;每天进步一点点~ 活到老&#xff0c;学到老 ヾ(◍∇◍)&#xff89;&#xff9e; 何时学习都不晚&#xff0c;加油 项目范围管理&#xff0c;过程 6个&#xff0c;包括“规收定 创确控”&#xff1a; 规划范围管理收集需求定义范围创建WBS确认范围控制…

JS 笔记9 认识JavaScript

相关内容&#xff1a;JS对象、属性、常用事件处理过程、运算符、if...else、for、…… <script type"text/javascript"></script> type属性用来指定MIME(Multipurpose Internet Mail Extension)类型&#xff0c;主要是告诉浏览器目前使用的是哪一种Scri…

先电2.4的openstack搭建

先电2.4版本的openstack&#xff0c;前期虚拟机部署参考上一篇2.2版本&#xff0c;基本步骤是一样的&#xff0c;准备两个镜像文件CentOS-7.5-x86_64-DVD-1804.iso&#xff0c;XianDian-IaaS-V2.4.iso [rootcontroller ~]# cat /etc/sysconfig/network-scripts/ifcfg-eno16777…

【软件测试】软件测试基础

1. 需求1.1. 需求的概念1.2. 为什么要有需求1.3. 测试人员眼中的需求 2. 测试用例2.1. 为什么需要测试用例2.2. 什么是测试用例2.3. 一个简单的测试用例 3. 软件测试的整体流程4. bug4.1. 如何描述一个bug4.2. bug的级别4.3. bug生命周期 1. 需求 1.1. 需求的概念 简单的来说…

如何在iOS设备(iPhone,iPad等)上恢复丢失的照片

如果你像现代90%的人一样拥有智能手机&#xff0c;那么你很可能使用口袋里的微型电脑拍摄大部分&#xff08;如果不是全部&#xff09;照片&#xff0c;而不是标准的傻瓜相机或数码单反相机。 像任何数字设备一样&#xff0c;存储和保存这些照片可能是一个变化无常的过程&…

nvm 切换 Node 版本失败

创建vue3项目时&#xff0c;需要切换到更高版本的 node&#xff0c;于是使用 nvm (node 包版本管理工具)进行版本切换 切换版本时&#xff0c;显示成功&#xff0c;但再次查看当前 node 版本时&#xff0c;发现没切换过来。 解决方法&#xff1a; where node 查看node的安装…

spring高级篇(七)

1、异常处理 在DispatcherServlet中&#xff0c;doDispatch(HttpServletRequest request, HttpServletResponse response) 方法用于进行任务处理&#xff1a; 在捕获到异常后没有立刻进行处理&#xff0c;而是先用一个局部变量dispatchException进行记录&#xff0c;然后统一由…