惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Engineering at Meta
Engineering at Meta
人人都是产品经理
人人都是产品经理
大猫的无限游戏
大猫的无限游戏
博客园 - 三生石上(FineUI控件)
量子位
腾讯CDC
The Cloudflare Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
云风的 BLOG
云风的 BLOG
Vercel News
Vercel News
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
L
LangChain Blog
aimingoo的专栏
aimingoo的专栏
The Hacker News
The Hacker News
T
The Exploit Database - CXSecurity.com
B
Blog
S
SegmentFault 最新的问题
P
Privacy & Cybersecurity Law Blog
T
Threatpost
博客园 - 聂微东
T
Tailwind CSS Blog
The Last Watchdog
The Last Watchdog
C
Check Point Blog
N
Netflix TechBlog - Medium
D
DataBreaches.Net
爱范儿
爱范儿
IT之家
IT之家
S
Secure Thoughts
M
MIT News - Artificial intelligence
NISL@THU
NISL@THU
C
Cisco Blogs
TaoSecurity Blog
TaoSecurity Blog
有赞技术团队
有赞技术团队
A
Arctic Wolf
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
P
Proofpoint News Feed
Spread Privacy
Spread Privacy
Schneier on Security
Schneier on Security
Simon Willison's Weblog
Simon Willison's Weblog
G
GRAHAM CLULEY
雷峰网
雷峰网
Project Zero
Project Zero
博客园 - Franky
H
Heimdal Security Blog
A
About on SuperTechFans
Security Latest
Security Latest
Webroot Blog
Webroot Blog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Hugging Face - Blog
Hugging Face - Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More

博客园 - Yaopengfei

第五节:Claude Code的用法实操汇总 第十五节:LlamaIndex框架使用2() 第十四节:LlamaIndex框架介绍和入门1(基本用法、提示词、节点等) 第三节:Trae的基本使用 和 Skill的详细用法 第二节:Python基础2 第十三节:FastApi入门以及AI智能体案例落地实操 第二节:GitHub Copilot 用法(基于VSCode/VS、添加DeepSeek/千问等任意模型) 第一节:AI工具总览(Copilot、Cursor、Claude Code、OpenCode、Codex、Trae等) 第一节:Python基础1(数据类型、命名规范、输入输出、运算符、类型转换等) 第十节:预检索-索引优化(摘要、父子、假设问题、元数据、混合索引) 第十二节:MinerU处理复制PDF 和 综合性金融案例实战 第十一节:多检索查询、混合检索(多检索+RRF重排)、检索后优化(文档压缩) 博文阅读密码验证 - 博客园 第七节:LangChain框架Chain链和Agent代理详解 第六节:LangChain框架Model和数据检索详解 第五节:LangChain框架简介和快速入门(模型、模板、解释器、向量、RAG、代理) 第四节:补充pip相关指令大全 第三节:RAG基础(概念、工作流程、文档分块、向量和Embedding、RAG案例等等) 博文阅读密码验证 - 博客园 第一节:Python相关环境安装和配置(Python、PyCharm、Anaconda) 第三十六节:EFCore10.0新增功能和中断性变更 第七节:框架版本大升级(CoreMvc10.x + EFCore10.x) 第五十二节:Core10.0中OpenApi自定义文档(Swagger) 博文阅读密码验证 - 博客园 第三节:C#13、C#14新语法(数字字符串比较、Null分配、扩展成员新写法等等) 第二节:如何理解Embedding以及基于内存库简单实操
第九节:RAG进阶和Advanced RAG简介
Yaopengfei · 2026-04-24 · via 博客园 - Yaopengfei

一. RAG进阶

1. RAG流程回顾

 加载文件 => 读取文本 => 文本分割 =>文本向量化 =>存入向量数据库 =>问句向量化 =>在文本向量中匹配出与问句向量最相似的 top k 个 =>匹配出的文本作为上下文和问题一起添加到 prompt 中 =>提交给 LLM 生成回答

2. RAG存在的问题

A. 文本向量构建索引的过程中:

  • 加载过程:输入原始文档 --> 文档分割 --> 向量处理存入数据库

  • 内容缺失:  原本的文本中就没有问题的答案

  • 文档加载准确性和效率 比如pdf文件的加载,如何提取其中的有用文字信息和图片信息等

  • 文档切分的粒度 文本切分的大小和位置会影响后面检索出来的上下文完整性和与大模型交互的token数量,怎么控制好文档切分的度,是个难题。

B. 检索增强回答的过程中

  • 查询过程: 用户提交问题 --> 查询重写器对问题进行重新表述 --> 检索器去数据库检索相关内容 --> 对检索的块进行重排生成列表 --> 合并整理列表中的块 --> 读取合并之后的块 --> 生成响应返回给用户

  • Missed Top Ranked: 错过排名靠前的文档,获取的并不是排名靠前的。

  • Not in Context: 提取上下文与答案无关

  • 格式错误:  例如需要Json,给了字符串

  • 答案不完整: 答案只回答了问题的一部分

  • 未提取到答案: 提取的上下文中有答案,但大模型没有提取出来

  • Incorrect Specificity: 答案不够具体或过于具体

3. RAG优化

(1) 内容缺失

 A. 增加响应的知识库

   B. 更好的prompt设计:大模型在找不到答案的情况下,输出“根据当前知识库,无法回答该问题”(不让他胡乱回答)等提示

(2) 文档加载的准确性和效率

   优化文档读取器,针对不同格式(html、word、pdf等),采用专门的读取器,比如:langchain中,读取网页,采用WebBaseLoader

(3) 文档切分粒度

   通常采用 langchain_text_splitters 进行递归分割,保持分割块间有一定的重叠量

(4) 错过排名靠前的文档

重排方案:首先检索出 topN 个知识块(N > K,过召回),然后再对这 topN 个知识块进行重排序,取重排序后的 K 个知识块当作上下文。重排是利用另一个排序模型或排序策略,对知识块和问题之间进行关系计算与排序

(5) LLM提取的上下文与答案无关

   内容缺失 或 错过排名靠前文档 的具体表现

(6) 格式错误

   优化prompt,让LLM返回正确的格式

(7) 答案不完整

   精简问题,一次只提一个,然后可以拆分成多个小问题进行提问

二. Advanced RAG简介

1.  说明

 Advanced RAG重点聚焦“检索增强”,即优化Retrieval阶段,增加了预检索(Pre-Retrieval) 后检索(Post-Retrieval) 阶段。

2.  预检索过程

   最常用的预检索方式,就是优化索引,通常有:摘要索引、父子索引、假设性问题索引、元数据索引、混合索引。

3.  后检索过程

   后检索过程主要是:重新排序和压缩上下文。

!

  • 作       者 : Yaopengfei(姚鹏飞)
  • 博客地址 : http://www.cnblogs.com/yaopengfei/
  • 声     明1 : 如有错误,欢迎讨论,请勿谩骂^_^。
  • 声     明2 : 原创博客请在转载时保留原文链接或在文章开头加上本人博客地址,否则保留追究法律责任的权利。