什么是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 实现,内存占用低、查询速度快 -
相关推荐
装不满的克莱因瓶1 天前
学习并掌握 LangChain 检索器的作用,实现让 LLM 动态调用知识库功能
人工智能·python·ai·langchain·llm·agent·智能体
大熊猫侯佩1 天前
赛博代码遗孤:我与 AI 特工共生的 11 条末世生存法则
agent·ai编程·cursor
养肥胖虎1 天前
多Agent开发笔记:为什么4个Codex加1个Claude会把cpu跑满
vscode·agent·codex
码农大坚果1 天前
智能体开发实战03|上下文工程降本80%
agent
码农大坚果1 天前
智能体开发实战01|Agent是什么
agent
摘笑1 天前
我花了3天让AI Agent学会查数据库,才发现MCP这玩意是真的香
agent·ai编程·mcp
阿里云云原生1 天前
重磅发布!AgentScope Java 2.0:为企业级分布式智能体提供原生工程底座
agent
canonical_entropy1 天前
制品生命周期与收敛拓扑:CodeStable 与 AGE 的模式差异
aigc·agent·ai编程
canonical_entropy1 天前
控制层和方向层的分野:OpenProse、Natural-Language Agent Harnesses 与 AGE的比对分析
aigc·agent·ai编程
guyoung1 天前
BoxAgnts 运行时(5)——MCP 只是开始,运行时才是关键
agent·ai编程·mcp