RAG学习笔记系列(一)

RAG 介绍

RAG 全称为 Retrieval Augmented Generation(检索增强生成)。是基于LLM构建系统的一种架构。
RAG 基本上可以理解为:搜索 + LLM prompting。根据用户的查询语句,系统会先使用搜索算法获取到相关内容作为上下文,然后将用户查询语句和获取到的上下文一起注入到 prompt 中,然后将 prompt 提供给 LLM 来生成回答内容。

RAG初步实现在这里插入图片描述

RAG 初步实现可以简单分解为以下步骤:

  1. 将待检索文本分割成块
  2. 使用 Transformer Encoder 模型将文本嵌入为向量(embedding),并将向量存储
  3. 构建一个 prompt,可以让模型根据搜索到的内容对用户提出的问题进行回答

使用时

  1. 使用相同的 Transformer Encoder 模型,将用户的查询文本转换成向量
  2. 使用查询的向量从向量存储中找到 top-k 的结果
  3. 将用户提的问题和查询到的文本块一起作为上下文整合到 prompt 中
def question_answering(context, query):prompt = f"""Give the answer to the user query delimited by triple backticks ```{query}```\using the information given in context delimited by triple backticks ```{context}```.\If there is no relevant information in the provided context, try to answer yourself, but tell user that you did not have any relevant context to base your answer on.Be concise and output the answer of size less than 80 tokens."""response = get_completion(instruction, prompt, model="gpt-3.5-turbo")answer = response.choices[0].message["content"]return answer

高级RAG

高级 RAG 架构如下图所示:
在这里插入图片描述
图中,绿色元素为 RAG 核心技术点,蓝色元素为文本。(本架构图对一些细节进行省略,不宜按照本图进行实施)
RAG 核心技术点

		 1. 分块和矢量化2. 搜索索引构建3. 重排序和过滤4. 查询转换5. 聊天引擎6. 查询路由7. RAG 中的 Agent8. 响应合成

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

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

相关文章

JavaScript如何设置定时器,怎么清除定时器

在JavaScript中,你可以使用setTimeout()和setInterval()函数来设置定时器,以及使用clearTimeout()和clearInterval()函数来清除定时器。 setTimeout() setTimeout()函数用于在指定的毫秒数之后执行一个函数或计算表达式。它返回一个表示定时器的ID&…

pnpm 报错: ERR_PNPM_META_FETCH_FAIL

今天突然遇到一个报错,pnpm 报错: ERR_PNPM_META_FETCH_FAIL  GET https://registry.npm.taobao.org/vue%2Fcli-service: request to https://registry.npm.taobao.org/vue%2Fcli-service failed, reason: certificate has expired问题原因:…

when语法学习及判断主机别名实例

目录 1、概念 2、实例配置 2.1 编写剧本体验when的用法 2.2 执行剧本文件 2.3 使用ansible临时命令进行测试 1、概念 when是用于判断的语法,将其用在每个动作的下方进行判断,使得只有在满足条件才会执行。 2、实例配置-判断主机别名 在每个客户端中…

移动端uniapp下载文件并保存到手机,下载准考证保存到手机

移动端uniapp下载文件并保存到手机,下载准考证保存到手机 1. 使用uni.request下载文件 uni.request({ url: http://example.com/file_url, // 要下载的文件的URL method: GET, responseType: arraybuffer, // 响应类型为arraybuffer (二进制形式) success: functi…

Compose 基础组件

文章目录 Compose 基础组件Modifier 修饰符Scaffold 脚手架 Compose 基础组件 Modifier 修饰符 在传统视图体系中,使用XML文件描述组件的样式,而在Compose中使用Modifier,每个基础的Composable组件都有一个modifier参数,通过Mod…

使用CCS软件查看PID曲线

在刚开始学习PID的时候,都需要借助PID的曲线来理解比例,积分,微分这三个参数的具体作用。但是这些曲线生成一般都需要借助上位机软件或者在网页上才能实现。如果是在单片机上调试程序的话,想要看曲线,一般就是通过串口…

【YOLOv5】使用yolov5训练模型时报错合集

文章目录 前言问题1 -- VsCode终端无法进入Anaconda创建的虚拟环境【问题描述】【问题分析】【解决方式】方法一方法二 问题2 -- 怎么在VsCode中为项目配置Anaconda创建的虚拟环境【问题描述】【解决方式】 问题3 -- yolov5训练模型时报错RuntimeError: result type Float cant…

web自动化测试系列-selenium常用方法定位(五)

目录 1.selenium的定位方法 2.操作案例 3.实现代码 前面我们介绍了html页面元素主要是通过标签和属性来进行定位 ,只要满足唯一,无论是标签还是属性 ,都能进行定位 。当然 ,我们要通过selenium来进行定位 ,同样还是…

富格林:利用正规方法提升出金收益

富格林悉知,黄金现货是众多黄金产品当中交易规则优势较为明显的存在,尤其是近段时间的行情走势十分强劲,这使得投资者们获得了更充足的做单机会。然而,要想在炒黄金的市场上取得成功,除了对市场有深刻的理解外&#xf…

总结:css中水平居中

css水平居中功能很常用,但一直没有系统的总结过,今天来总结水平下常见的方式: 1. 文本或内联元素的居中: 使用 text-align: center; 属性可以让内部的文本和内联元素在容器中水平居中。 .container {text-align: center; }2. 块…

小公司应该选择docker swarm还是k8s

对于小公司选择 Docker Swarm 还是 Kubernetes(简称 K8s)作为容器编排平台,应考虑以下几个关键因素: 技术复杂度与学习曲线: Docker Swarm:因其与 Docker 紧密集成,使用 Docker Compose 语法作…

MongoDB聚合运算符:$ne

文章目录 语法举例 $ne聚合运算符用于比较两个值是否不相等&#xff0c;如果他们的值不相等&#xff0c;返回true&#xff1b;如果他们的值相等&#xff0c;返回false。 语法 { $ne: [ <expression1>, <expression2> ] }$ne可以用来比较任何类型的值&#xff0c;…

【C++风云录】梦幻般的机器人世界:探索ROS、PCL、OpenCV和更多顶尖技术

机器人技术与计算机视觉世界&#xff1a;ROS、PCL、OpenCV等综合指南 前言 本文旨在深入探讨ROS&#xff08;机器人操作系统&#xff09;、PCL&#xff08;点云库&#xff09;、OpenCV&#xff08;开源计算机视觉库&#xff09;、Eigen&#xff08;线性代数库&#xff09;、B…

基于SpringBoot的在线五子连珠的设计与实现,前端采用vue框架;后端采用SpringBoot,mybatis

介绍 基于SpringBoot的在线五子连珠的设计与实现&#xff0c;主要是设计一款五子棋游戏&#xff0c;涉及登录注册的功能&#xff0c;人机对战、联机对战和积分排行榜的功能。其中人机对战中&#xff0c;电脑采用的是采用了一种基于局面分析的评分算法来确定机器人的下一步落子…

线程池学习(通俗易懂)

线程池 线程池是什么ThreadPoolExecutor模拟实现线程池结语 线程池是什么 假设我们要频繁的创建线程和销毁线程,但是创建线程和销毁线程是有成本的. 所以我们可以提前创建一批线程,后面需要使用的时候,直接拿就可以了,这就是线程池. 当线程不再使用的时候,就归还到池子里.为什…

图片懒加载

看下tuniu的页面&#xff0c;这有两个属性src和data-src <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><t…

SpringBoot3 + Kotlin + mybatis-plus + Swagger3后端开发样例

前言&#xff1a; Kotlin 是一种在 JVM&#xff08;Java 虚拟机&#xff09;、Android 和浏览器端运行的静态类型编程语言。以下是关于 Kotlin 的总结介绍&#xff1a; 1、语言特性&#xff1a; 简洁性&#xff1a;Kotlin 旨在提供简洁且安全的代码&#xff0c;同时保持与 Jav…

什么是反向 ETL?为什么它很有价值?

提取、转换、加载 &#xff08;ETL&#xff09; 过程已经成熟并被广泛采用。 它只涉及从各种源系统中获取数据&#xff0c;将其转换为标准化数据模型&#xff0c;然后将其加载到数据仓库中。从那里&#xff0c;您的团队使用其商业智能 &#xff08;BI&#xff09; 和分析工具中…

云轴科技ZStack入选中国信通院《高质量数字化转型产品及服务全景图(2023年度)》

近日&#xff0c;由中国互联网协会主办、中国信通院承办的“2024高质量数字化转型创新发展大会”暨“铸基计划”年度会议在北京成功召开。 本次大会发布了2024年度行业数字化转型趋势&#xff0c;总结并展望了“铸基计划”2023年取得的工作成果及2024年的工作规划。同时&#…

谷粒商城实战(013 业务-认证服务-短信验证)

Java项目《谷粒商城》架构师级Java项目实战&#xff0c;对标阿里P6-P7&#xff0c;全网最强 总时长 104:45:00 共408P 此文章包含第211p-第p219的内容 介绍 认证中心要集成 社交登录、OAuth2.0、单点登录 等功能 OAuth 2.0&#xff1a; 问题解决&#xff1a; OAuth 2.0 主要…