【AI学习】检索增强生成(Retrieval Augmented Generation,RAG)

article/2025/8/12 20:39:29

1,介绍

出自论文《Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks》,RAG是权宜之计,通过RAG将问题简单化、精简化、剔除噪声,让LLM更容易理解、生成内容。RAG:检索增强技术=检索+生成(重排)。

1)场景

通过集成外部知识从而减少特定领域LLM幻觉问题,相比微调和强化学习陈本极低。

2,基本原理和架构

在这里插入图片描述

RAG系统可以分为检索和生成两个阶段:

1)检索过程

通过检索找到与用户查询密切相关的知识库(KB)内容:

1> 切片(Chunking,切块)

将文档划分为较小的、语义上有意义的片段;文档可以支持多模态(Word、TXT、CSV、Excel、PDF、PPT、Images、Audio/Video等)转换为文本,最终还是对文本进行处理。

太大数据检索准确率下降,太小丢失上下文信息,找到平衡点。分块方式:

  1. 固定大小分块(Fixed-size chunking)、
  2. 递归分块(Recursive chunking)、
  3. 基于文档(Document-based chunking)
    文档有一定的格式如html或者带标题、
  4. 语义分块(Semantic chunking):
    余弦定理。
  5. LLM分块

除此之外分块之前还会做一些数据清洗已提高RAG的准确率:冗余消除、专有名词、数据增强(同义词近义词翻译库)、用户反馈、过期文档。

2>创建嵌入(Create embeddings)

嵌入模型将每个信息块压缩为向量表示;常用的模型:

  1. Word2Vec
  2. Sentence2Vec
  3. BERT
  4. GPT系列

3>索引(Indexing)

将嵌入向量存入向量库中(键值对),从而实现高效且可扩展的搜索功能。
查询路由(Query Routing):根据查询的内容和意图将查询定向到特定流水线的技术,使 RAG 系统能够有效地处理各种场景。

4>相似性搜索(Similarity search,rank)

用户查询也通过相同的向量化过程转换为向量表示;同时去向量库中检索,这样用户查询就可以在相同的维度空间中进行比较。
计算用户查询嵌入与之前存入的文本块嵌入之间的相似性分数,返回相似度最高的几个信息。

2)生成过程

生成过程将检索到的信息与用户查询结合,形成增强的查询,通过prompt(提示模板)组合后传递给LLM查询、润色,以生成丰富上下文的响应。

5>Reranker 模型(重排序)

Reranker 是信息检索系统中的核心组件,用于对初步筛选的候选结果进行重新排序,以提升最终输出的相关性和用户体验。

a)原理
  1. 特征融合
    结合文本 / 内容特征(如关键词匹配)、用户行为特征(如点击率)、上下文特征(如时间、地理位置)等多维度数据。
    利用嵌入向量(如用户和物品的 Embedding)计算语义相似度。
  2. 排序函数
    通过机器学习模型(如逻辑回归、树模型、深度学习)学习样本对(Query - 文档对)的排序规则。
    常用损失函数:Pairwise Loss(如 RankNet)、Listwise Loss(如 LambdaMART)。
  3. 反馈机制
    结合离线评估(NDCG、MAP)和在线反馈(A/B 测试)优化模型。
b)场景
模型类型代表算法 / 模型特点
传统模型LambdaMART、RankNet基于梯度提升树或神经网络,依赖人工特征工程。
深度学习模型BERT-Pairwise、ESIM利用预训练语言模型捕捉复杂语义关系,支持端到端训练。
交互式模型DSSM、双塔模型通过用户与物品的交互行为学习联合嵌入空间,适用于推荐系统。
多模态模型MM-Ranker(文本 + 图像)融合多模态特征(如商品图片与描述),提升跨模态场景排序效果。
c)常见模型/算法
  1. 搜索引擎
    对搜索结果进行精排,如 Google 的 RankBrain。
  2. 推荐系统
    电商平台(如亚马逊)的商品推荐、社交媒体的内容流排序。
  3. 广告系统
    优化广告与用户查询的匹配度,提升点击率(CTR)和转化率(CVR)。
  4. 问答系统
    对候选答案进行置信度排序,筛选最优解。

3,RAG流水线组件

  1. 嵌入模型
    嵌入用户查询;
    提取用户文档md、word、纯文本,通过数据清晰和降噪,转换文档为要素;
    文档分块,
  2. 向量数据库
    从向量数据库中检索相关文档信息块;
  3. 提示模板
    将检索内容填充到LLM提示中;
  4. LLM
    答案生成。

http://www.hkcw.cn/article/MFOQulspQJ.shtml

相关文章

LINUX 61 rsync定时同步;软链接

定时同步报错 [rootbackup ~]# cat rsync_java.sh !/bin/bash rsync -av user3192.168.235.10::app /backup/app1_java &&/dev/null [rootbackup ~]# cd /backup [rootbackup backup]# ls app1_java [rootbackup backup]# cd app1_java [rootbackup app1_java]# ls 1.…

[Android] APK安装器 V20160330-6.0

【应用名称】APK安装【应用版本】V20160330-6.0版本【软件大小】154KB【适用型号】安卓【应用说明】此版本兼容性极强,Android6-Android15都可以用,兼容平板和手机,已经过测试! 软件优点: 不占内存,大小比…

017搜索之深度优先搜索——算法备赛

深度优先搜索 如果说广度优先搜索是逐层扩散,那深度优先搜索就是一条道走到黑。 深度优先遍历是用递归实现的,预定一条顺序规则(如上下左右顺序) ,一直往第一个方向搜索直到走到尽头或不满足要求后返回上一个叉路口按…

电子电路:时钟脉冲与上升沿的详细解析

一、时钟脉冲的量子物理本质 1. 电磁波能量量子化 时钟脉冲本质是电磁能量的周期性传递,其最小能量单元为: E = h f E = hf E=hf 其中 h = 6.626 10 − 34 J ⋅ s h=6.62610^{-34} \ Js h=6.62610−34 J⋅s(普朗克常数), f f f 为时钟频率。当3GHz CPU运行时,单个时…

HTTPS

HTTPS 是什么 它其实就是网站的保镖版 HTTP。平常你用普通HTTP上网,你浏览器和网站服务器之间传的东西,不管是密码、聊天内容还是信用卡号,都是“裸奔”的,谁都能半路偷看或者篡改。 HTTPS 就不同了,它在你们开始传东…

LTSPICE仿真电路:(三十)压流变换器

1.压流转换器(NPN型三极管) 压流转换器:将电压转换为电流信号。 直接看仿真 这个电路是负反馈电路,分析使用续断虚短,输入信号是3V,所以在Rset电阻处的电压始终是3V ,Uce为6V(发射…

电动机定子铁芯冲槽模设计与多物理场仿真优化

摘要 本文系统阐述电动机定子铁芯冲槽模的设计规范与仿真验证方法。通过分析冲裁机理,提出模具材料选型、间隙计算、结构优化的关键技术方案,并借助ANSYS Workbench平台进行应力-疲劳联合仿真,为高精度冲槽模设计提供理论依据和工程实践参考…

window 显示驱动开发-复制深度模具值

Microsoft Direct3D 运行时调用用户模式显示驱动程序的 Blt 函数,将深度模具值从视频内存复制到系统内存,反之亦然。 驱动程序和硬件必须从或转换到驱动程序支持的所有不透明深度模具格式 (,即 D3DDDIFORMAT 枚举类型定义的所有格式&#xff…

pc端小卡片功能-原生JavaScript金融信息与节日日历

代码如下 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>金融信息与节日日历</title><…

Redis最佳实践——购物车优化详解

Redis在电商购物车高并发读写场景下的优化实践 一、购物车业务场景分析 典型操作特征 读/写比例 ≈ 8:2高峰QPS可达10万单用户最大商品数500操作类型&#xff1a;增删改查、全选/反选、数量修改 技术挑战 高并发下的数据一致性海量数据存储与快速访问实时价格计算与库存校验分…

[网页五子棋][对战模块]处理连接成功,通知玩家就绪,逻辑问题(线程安全,先手判定错误)

文章目录 处理连接成功通知玩家就绪逻辑图问题 1&#xff1a;线程安全问题 2&#xff1a;先手判定错误两边都是提示&#xff1a;轮到对方落子![image.png](https://i-blog.csdnimg.cn/img_convert/c570cd26eadbe87ed467bc4edaa7945e.png) 处理连接成功 实现 GameAPI 的 afterC…

Python训练打卡Day39

图像数据与显存 知识点回顾 图像数据的格式&#xff1a;灰度和彩色数据模型的定义显存占用的4种地方 模型参数梯度参数优化器参数数据批量所占显存神经元输出中间状态 batchisize和训练的关系 一、图像数据的格式 1.1灰度图像 作为图像数据&#xff0c;相较于结构化数据&#x…

pycharm打印时不换行,方便对比观察

原来&#xff1a; 优化&#xff1a; import torch torch.set_printoptions(linewidth200) 优化结果&#xff1a;

Practice 2025.6.1—— 二叉树进阶面试题(2)

文章目录 二叉树进阶面试题(2)Leetcode_144 二叉树的前序遍历(使用非递归)Leetcode_94 二叉树的中序遍历(使用非递归)Leetcode_145 二叉树的后序遍历(使用非递归) 二叉树进阶面试题(2) 本篇文章将继续进行二叉树的进阶面试题的讲解&#xff0c;其中&#xff0c;本部分将重点针…

DOCKER使用记录

1、拉取镜像 直接使用docker pull <image>&#xff0c;大概率会出现下面的报错信息&#xff1a; (base) jetsonyahboom:~$ docker pull ubuntu:18.04 Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while …

Vert.x学习笔记-EventLoop与Context的关系

Vert.x学习笔记 1. EventLoop 的核心作用2. Context 的核心作用3. EventLoop 与 Context 的关系1. 事件循环&#xff08;EventLoop&#xff09;的核心职责2. 上下文&#xff08;Context&#xff09;的核心职责3. 事件循环与上下文的关系&#xff08;1&#xff09;一对一绑定&am…

LTSPICE仿真电路:(三十一)HOWLAND电流源

1.HOWLAND电流源 推导过程&#xff1a;这个运放是正负反馈都存在&#xff0c;但负反馈是大于正反馈的&#xff0c;因正反馈多出一个Rload&#xff0c;所以可以使用虚短续断&#xff0c;运放的U等于U-&#xff0c;负反馈处得出Uout与U-的关系&#xff0c;再利用正相端节点电流算…

LLaMA-Factory - 批量推理(inference)的脚本

scripts/vllm_infer.py 是 LLaMA-Factory 团队用于批量推理&#xff08;inference&#xff09;的脚本&#xff0c;基于 vLLM 引擎&#xff0c;支持高效的并行推理。它可以对一个数据集批量生成模型输出&#xff0c;并保存为 JSONL 文件&#xff0c;适合大规模评测和自动化测试。…

引擎下线缺陷检测系统ENAgent

引擎下线缺陷检测系统ENAgent采用信号处理技术以及人工智能技术对引擎生产线下线的各种引擎在生产线上进行缺陷实时检测&#xff0c;通过振动信号、声纹信号等信号融合集成&#xff0c;在线实时判断其是否存在缺陷以及进行故障诊断。ENAgent系统采用全Python语言&#xff0c;以…

【量化交易学习】布林线(BOLL)指标

目录 1. 布林线&#xff08;BOLL&#xff09;指标定义与构成1.1 定义1.2 布林线的构成 2. BOLL&#xff08;布林线&#xff09;的应用场景3. BOLL指标的研判标准3.1 BOLL指标中的上、中、下轨线的意义3.2 BOLL指标中的上、中、下轨线之间的关系3.3 K线和布林线上、中、下轨之间…