什么是RAG?

大模型看不见哪些数据?
1.知识截至日期之前的的数据

2. 私有数据

3. 实时数据

因为大模型的数据是静态的,封闭的,但是业务是动态的,私有的

当然,我们可以把数据放入prompt里面

但是context window是有限的,全部放进去费token,还会稀释注意力

所以提出了RAG

RAG的核心思路是:先检索,再回答

就是不把所有的数据都塞进prompt,而是在每次回答之前,先检索最相关的几段,只把这几段放入prompt

RAG名字的含义:
Retrieval(检索):从知识库找出和当前问题最相关的内容

Augmented(增强):加入prompt

Generation(生成):大模型基于增强后的上下文生成回答


RAG的两大阶段:

1. 离线阶段

把私有数据处理成大模型能快速检索的格式,存进向量数据库

  1. 加载文档
  2. 文本切块(Chunking):按章节,小节标注
  3. 向量化(Embedding):每个chunk通过一个Embedding模型转换成向量(Vector)
  4. 存入向量数据库:优化了海量数据找最邻近的操作,能快速找到最相似的几条

2. 在线阶段

  1. 问题向量化:使用同一个Embedding模型,将用户问题转换成向量
  2. 语义搜索:用问题向量去向量库找最相似的几条
  3. 构造增强prompt:检索到的chunk放入prompt
  4. 大模型生成回答

传统的关键词搜索是逐字匹配,只能找到完全一样的,而向量库是语义搜索,可以找到意思差不多的,准确率高得多


RAG在Agent里面处于什么位置?

RAG本质上就是一个特殊的工具

当大模型认为这个问题需要访问私有数据时,就会通过Function Call下达指令调用知识库检索工具

agent执行这个工具调用,就是触发了RAG的在线流程

将结果回传给大模型


什么是向量数据库

向量数据库是为了在海量数据中,毫秒级找到最相似的topk条

秘诀是**ANN(Approximate Nearest Neighbor,近似最近邻)**搜索

不保证找到绝对最相似的,而是差不多最相似的

使用HNSW(Hierarchical Navigable Small World,分层可导航小世界图)

把向量组织成一个多层的结构

高层(稀疏层):只有少量节点,负责大范围快速跳转

低层(稠密层):精细定位最终的近邻候选


主流向量数据库

数据库 核心定位 适合场景 关键优势 主要缺点
Chroma 本地轻量级向量库 本地开发、功能验证、快速原型 Python 原生 API,零配置、几行代码启动 不适合生产,无高可用、分布式特性
Pinecone 全托管云向量库 创业公司 / 小团队快速上生产 无需运维,API 直接调用 数据在第三方,合规有顾虑;按量收费,规模大成本高
Milvus 开源生产级向量库 私有化部署、数据不出内网、大规模场景 功能最全,支持分布式 / 持久化,国产维护活跃 部署运维复杂度高,学习曲线较陡
Weaviate 开源多模态向量库 多模态搜索、简化 Embedding 流程 内置 Embedding 集成,支持文本 / 图片 / 音频 -
Qdrant 高性能轻量向量库 资源受限 / 高并发生产环境 Rust 实现,内存占用低、查询速度快 -
相关推荐
泯泷3 小时前
同样是多 Agent,为什么有的稳,有的却天天翻车?
人工智能·llm·agent
阿里云云原生3 小时前
关于 DeepSeek 的 SuperAgent,以及我们的实践
云原生·agent
威哥爱编程4 小时前
模拟面试智能体开发实战 04:面试聊到哪算哪?用状态机把整场面试编排起来
python·agent·harmonyos
威哥爱编程4 小时前
模拟面试智能体开发实战 03:AI 面试官太客气?人设 Prompt 让它像个真考官
python·agent·harmonyos
七夜zippoe5 小时前
Agent 上线第一天就炸了:6 个生产事故的根因分析与修复记录
大数据·ai·agent·根因分析·修复记录
用户95179422510297 小时前
最小循环:让 Agent 跑起来(I1)
python·agent
武子康7 小时前
攻击动作做对了,游戏规则就对了吗?H3-World 与三条控制路线的分工
大数据·人工智能·agent
ZhengEnCi7 小时前
Agent 任务规划怎么选:ReAct 与 Plan-and-Execute 的成本账与适用边界
agent
vivo互联网技术7 小时前
AI Agent 技术全景解析 —— 从提示词工程到高级智能体构建
人工智能·agent