title: RAG(1) author: Gamehu tags:
后续团队需要做企业大脑,会用到RAG,先比较完整的了解下RAG,把零碎知识补的完整一些,做个记录。
标准RAG系统的运行流程可以分为两大阶段:索引阶段(Indexing Phase)(预处理数据)和运行时阶段(Runtime Phase)(查询处理)。以下是详细的流程描述,我会结合常见的流程图示例来说明。RAG的核心是先从外部知识库中检索相关信息,然后用这些信息增强LLM的生成,以减少幻觉并提供更准确的回答。
{% asset_img 3.jpg https://www.6clicks.com %}
这个流程图展示了RAG的高层结构:从数据源到最终输出的完整路径。
这一阶段发生在系统启动前,用于将外部数据转化为可检索的形式。通常是离线过程,目的是创建向量数据库以支持高效查询。
这一阶段的输出是一个可查询的向量数据库。
{% asset_img 1.jpg danielp1.substack.com %} 这个图更详细地展示了索引和检索的子步骤,包括分块、嵌入和重排序。
这是用户交互时的核心流程,对应你之前描述的“检索 + 生成”。
步骤4: 提示构建(Prompt Construction)
将检索到的Top-K chunks(原始文本)与query拼接成一个Prompt。模板示例:
系统提示: 你是一个助手,使用以下上下文回答问题。
上下文: [chunk1] [chunk2] ... [chunkK]
问题: [query]
回答:
注意:这里不直接传递向量,只传递文本。Prompt长度需控制在LLM上下文窗口内(e.g., 8K-128K tokens)。
步骤5: 生成(Generation)
将Prompt输入LLM(e.g., GPT-4、LLaMA),LLM基于Prompt生成回答。生成过程使用解码算法如beam search或greedy decoding。
步骤6: 输出响应(Output Response)
返回生成的文本给用户。可选:后处理,如引用来源或验证事实。
{% asset_img 2.webp k2view.com %} 结构化和非结构化数据的融合,以及Prompt + Context的输入到LLM。
一句话概括:RAG就像给AI装了个"外挂搜索引擎",问啥先从知识库里找答案,再让AI组织回答。
比喻:就像给图书馆每本书都贴上标签,方便以后快速找书。
用户问问题 → AI先去"图书馆"翻书 → 找到相关内容 → 组织答案给用户
↓ ↓ ↓ ↓
"什么是RAG?" 搜"指纹"匹配 挑出3-5段 "RAG是检索增强生成..."
找相关段落 最相关的书 用这些内容回答
详细拆解:
通俗理解:RAG就是让AI"不瞎编,先查资料",回答前先翻书确认事实!
https://www.6clicks.com/resources/blog/understanding-rag-retrieval-augmented-generation-explained https://danielp1.substack.com/p/navigating-retrieval-augmented-generation