news 2026/5/16 15:17:04

大模型应用开发(十七)_RAG架构概述

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
大模型应用开发(十七)_RAG架构概述

RAG(Retrieval-Augmented Generation,检索增强生成)架构概述。这部分是理解 RAG 系统设计与实现的核心内容。


5.1 RAG 架构总体思路

RAG 架构 = 检索(Retrieval) + 生成(Generation)

核心目标是:

让大语言模型(LLM)能够基于外部知识回答问题,从而实现知识增强、事实准确、可解释性强的生成。

传统大模型的知识来自预训练语料,无法实时更新;RAG 架构通过外部检索模块动态获取最新资料,使生成结果更加可靠。


5.2 RAG 架构的基本结构

RAG 的架构通常分为四层或五层结构:

┌─────────────────────────────┐ │ 用户交互层 (UI/API) │ ← 用户提问、接口调用 └────────────┬────────────────┘ ↓ ┌─────────────────────────────┐ │ 查询理解层 (Query Layer) │ ← 分词、改写、嵌入向量 └────────────┬────────────────┘ ↓ ┌─────────────────────────────┐ │ 检索层 (Retrieval Layer) │ ← 向量数据库检索、重排序 └────────────┬────────────────┘ ↓ ┌─────────────────────────────┐ │ 生成层 (Generation Layer) │ ← 大语言模型生成回答 └────────────┬────────────────┘ ↓ ┌─────────────────────────────┐ │ 知识库层 (Knowledge Base) │ ← 存储外部文档、语料 └─────────────────────────────┘

5.3 RAG 架构核心模块解析

模块功能说明
1. 数据预处理模块文档切分与向量化把知识源(如 PDF、网页、数据库)拆分为小块(chunk),生成文本嵌入向量。
2. 知识库模块向量数据库/索引存储存储嵌入向量及原文,常用:FAISS、Milvus、Chroma、Pinecone。
3. 检索模块相似度搜索 + 过滤根据用户问题的嵌入向量,检索最相关的文档段落。
4. 重排序(可选)优化检索结果质量用 cross-encoder 或 reranker 模型重新打分。
5. Prompt 构造模块拼接上下文将检索结果 + 用户问题拼接成模型输入模板。
6. 生成模块(LLM)基于上下文生成回答调用大语言模型(如 GPT-4、Llama3)生成最终回答。
7. 后处理模块(可选)格式化输出引用来源、高亮关键词、生成摘要等。

5.4 典型RAG数据流(Data Flow)

[1] 用户输入问题 ↓ [2] 将问题向量化 (Embedding) ↓ [3] 在向量数据库中检索相似文本 ↓ [4] 选取最相关的上下文 (Top-k) ↓ [5] 将上下文 + 问题拼接为 Prompt ↓ [6] 输入到大语言模型生成回答 ↓ [7] 输出答案 + 引用来源

5.5 RAG 架构关键技术点

技术环节核心方法说明
文本切分(Chunking)固定长度、语义分段、句法切分保证检索粒度合适
向量化(Embedding)bge-large-zh, text-embedding-3-large生成高维语义表示
向量检索(Similarity Search)余弦相似度、内积、ANN索引快速检索相似文本
重排序(Re-ranking)CrossEncoder、ColBERT提升上下文质量
Prompt 构造Context + Question + Instruction控制生成逻辑
生成模型(LLM)GPT, Llama, Qwen, Mistral基于上下文生成回答
引用标注Source highlighting提升可解释性

5.6 RAG 典型实现方式

架构层级实现示例(LangChain)
文档加载DocumentLoader.from_pdf("doc.pdf")
切分RecursiveCharacterTextSplitter(chunk_size=512)
向量化OpenAIEmbeddings()
存储FAISS.from_documents(docs, embeddings)
检索retriever.get_relevant_documents(query)
生成llm_chain.run({"context": context, "question": query})

5.7 RAG架构的变体与优化方向

类型特点说明
Vanilla RAG标准检索+生成最常用形式
Re-ranking RAG检索后重排序提升上下文质量
Multi-hop RAG多轮检索与生成支持复杂问题
Graph RAG基于知识图谱检索关系型问答
Agentic RAGAgent 自主规划检索和生成具备多步推理能力
Streaming RAG流式检索与生成适用于大规模文档

5.8 RAG 架构的优势与挑战

1.优势

知识可更新:修改知识库即可生效

幻觉减少:生成内容基于真实文本

可解释:可提供引用来源

灵活性强:适配多领域场景

成本低:无需重新训练模型


2.挑战

❌ 检索质量决定回答质量(Garbage In, Garbage Out)

❌ 上下文长度受限(Token 限制)

❌ 文档切分策略影响结果

❌ 多轮问题可能需多步推理

❌ 对多语言、多模态支持有限


5.9 RAG 架构发展趋势

方向描述
多模态 RAG支持图像、表格、音频等内容检索
Graph RAG融合知识图谱结构化信息
Memory RAG与长期记忆结合,支持上下文保持
Agentic RAG自主规划检索、判断何时调用外部知识
混合检索 RAG结合语义向量 + 关键字(BM25)检索
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/9 20:22:25

冰 挂——冬日的风景线

冬日群峰,俨然一座童话秘境。溪流收住奔涌的脚步,倒挂悬崖,凝作晶莹剔透的冰景。 有的如乳白软酪,柔润饱满,铺满整面山壁;有的似银白玉柱,清透晶亮,挺立于崖下石阶;有的像…

作者头像 李华
网站建设 2026/5/11 17:36:35

Linux SSH隧道代理转发及多层转发

描述 SSH 协议是 Linux 系统中使用较为频繁的协议之一,通常用于远程管理主机或服务器,默认使用 22 端口,可类比 Windows 系统中的 telnet(23 端口),这里要介绍的是 ssh 除了远程连接外的另一强大特性&…

作者头像 李华
网站建设 2026/5/9 20:36:30

Codebuddy使用CloudBase MCP辅助AI编码基于Spec工作流开发的坦克大战小游戏

目录引言一、什么是基于Spec的工作流二、基于Spec的工作流实现方式1、专为规范驱动设计的IDE2、集成规范驱动功能的工具或插件三、实践开发坦克大战小游戏1、IDE Codebuddy插件安装CloudBase MCP2、需求澄清3、技术方案设计4、任务分解5、技术实现总结引言 在上一篇文章《浅谈…

作者头像 李华
网站建设 2026/5/5 13:22:04

Java真的不行了,一天收到586份简历

这是小红书上一位招聘Java的人事发布的Java人员找工作现状。 Java以前有多火,现在就有多难挤进这条赛道,岗位越来越少,就业人越来越多,技术越来越新,时代越来越进步,这十分要求还在传统Java道路上的人&…

作者头像 李华
网站建设 2026/5/11 7:22:58

“N皇后”问题解法

C实现N皇后问题(回溯法详解OJ适配)一、核心问题分析不同行:由于每个皇后占一行,可简化为“逐行放置”(每行仅放一个皇后)不同列:同一列不能有两个皇后不同对角线:主对角线&#xff0…

作者头像 李华