Agent学习--RAG(1)

最近经过了一段时间的学习,察觉到自己本身对于RAG的掌控还只停留在运用,但还不太懂其中的底层逻辑,换言之,就跟我们平时用智能体平台一样,使用者只需要将文件上传,就会看到有分块的设置选项,知识库节点会显示用的是倒排索引、重排等方法,虽然这看起来不会影响使用,但是从长远来看却是会降低使用的效率。

主要是因为,许多智能体平台的开发初衷是为了让初学者也可以自如地通过配置工作流、chatflow、agent来实现各种不同的功能,但实际上,节点里agent的配置(提示词工程),知识检索这些内容,都需要用户来完成,或许一些简单的功能可以实现,但是只要稍微复杂一些,没有基础的用户变会一头雾水。

基于打下坚实基础的目的,打算重新温习agent的相关知识,并梳理、记录一些关键的要点

核心思想

RAG的核心思想,主要就是在其流程上:分块-检索-增强-生成。

  • 分块:核心在于分块的策略,一般是用正则去区分符号,将不同的段落分成块,但核心点是,不同的文本,并不是简单地用段落去分就行的,本质是在保证语义完整、检索精准的前提下,避免检索到大量的不相关文本。像学术类文本这种架构清晰,概念可能跨越多个段落的,就很适合用递归分块,如果是邮件类,或者产品描述这类自然语言居多的,就比较适合用语义分块

  • 检索:将用户问题转为向量在向量数据库中进行检索,检索的方式一般是关键词匹配+语义相似度检索。但是这里很容易漏掉一个知识点:为什么用向量数据库,向量数据库是如何高效匹配的。实际上,类比为生活中的例子,普通的数据库匹配可以看作是一页一页地去做匹配,但是向量数据库则是会先看目录,定位到具体的位置再去匹配,效率会显著提升。这是因为向量数据库在匹配时,会用到许多索引,起到可以"跳着匹配"的作用。比如,倒排索引便是这样,将不同分词与文档块像字典对应那样,这样在匹配时,就可以先看分词对应哪些文档块,再进行匹配,并进一步通过RRF评分进行重排、筛选,从而提高效率

  • 增强:将检索到的文档块,用户原始问题,系统指令(规则,执行步骤等)打包成一个结构化的提示词,让模型知道可以参考什么来回答,回答时要注重什么,必要的时候可以给出一些例子供模型学习

  • 生成:LLM根据提示词来生成答案

相关推荐
通信小呆呆11 天前
当算法有了“五感”:多模态数据融合如何向人体感官协同学习?
人工智能·学习·算法·机器学习·机器人
H__Rick11 天前
自动对焦学习-3
人工智能·学习·计算机视觉
Daisy Lee11 天前
量化学习-第1章-什么是量化金融
学习·金融·datawhale
Alsn8611 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
YM52e11 天前
买菜计算器小应用 - HarmonyOS ArkUI 开发实战-PC版本
学习·华为·harmonyos·鸿蒙·鸿蒙系统
小雨下雨的雨11 天前
HarmonyOS ArkUI训练营入门-组件掌握系列-Animation 动画效果实现-PC版本
学习·华为·harmonyos·鸿蒙
cqbzcsq11 天前
CellFlow虚拟细胞论文阅读
论文阅读·人工智能·笔记·学习·生物信息
秋名山码民11 天前
Graph RAG 深度解析:从向量检索到知识推理的技术演进
大数据·人工智能·rag
YangYang9YangYan11 天前
2026初入职场学习数据分析的价值
学习·数据挖掘·数据分析
guslegend11 天前
理论学习:什么是 Coding Agent?
学习