聊聊最近“大火”的RAG
来源:互联网
时间:2026-07-29 15:42:11
要说大语言模型最实用的落地场景之一,复杂的问答聊天机器人绝对算一个。这类应用能针对特定数据源进行精准回答,背后支撑它的核心技术就是检索增强生成(RAG)。
这篇文章专注于概念讲解,不涉及具体代码实现,但会帮你把RAG的来龙去脉彻底理清。
什么是RAG
RAG,全称检索增强生成,顾名思义,就是给大语言模型装上一个“外设检索器”。它从外部数据源中实时捞取相关信息,把这些内容作为上下文塞给LLM,让模型生成的答案不再依赖它那有限的训练记忆,而是基于真实、新鲜的参考材料。
这套流程拆开来看,大致包含这几个环节:
- :先把长文本切碎成小片段,再用Transformer编码器把每个片段转成向量——这样机器才能高效地“理解”和“翻找”。
分块与向量化
- :给这些向量建个快速查找的目录,类似书后的索引页。
搜索索引
- :搜出来的结果太多太杂?需要二次排序、去重,把最相关的内容挑出来交给LLM。
重排和过滤
- :把用户问的问题转成模型能听懂的语言格式。
查询转换
- :负责接收用户输入、返回回答,是对话界面的核心。
聊天引擎
- :判断哪些问题应该送去LLM回答,哪些走其他流程。
查询路由
- :像个调度员,协调各个组件顺畅运转。
智能体
- :最后把LLM的输出和检索到的上下文整合成一句连贯的自然语言回答。
响应合成
RAG最大的优势,就是把检索的“精准查证”和LLM的“流畅生成”结合起来。但也要留意两个硬伤:一是模型知识仍有边界,超纲的问题它还是抓瞎;二是数据安全——把私域数据传到第三方平台始终是个风险点。
说白了,大模型没学过的知识,它要么答不上来,要么胡编乱造。RAG正好补上这块短板,让回答有据可依。
RAG架构
一个典型的RAG应用,主要由两大模块构成:
- :从外部数据源把原始数据拉进来,预处理、切分、向量化,最后建成索引。这部分通常是离线提前准备好的。
索引
- :用户在运行时发起查询,系统从索引里捞回相关片段,再喂给LLM做最终生成。
检索与生成
从原始数据到最终答案,完整的链路长这样:
索引(Indexing)
- :用DocumentLoaders把文档、网页、数据库等加载进来。
加载(Load)
- :用文本分割器把大文档切成小块。块太大既不好检索,也可能超出模型的上下文窗口。
切片(Split)
- :把这些分好块的文本存进向量数据库(VectorStore),配合词嵌入模型(Embeddings)建好索引,以便后续搜索。
存储(Store)
检索和生成(Retrieval and Generation)
- :拿到用户问题后,用Retriever从已有的向量库中找出最相关的切片。
检索(Retrieve)
- :将用户问题 + 检索出的上下文片段,一起发给ChatModel/LLM,让它生成最终回答。
生成(Generate)

-
- 关于宇宙的好的网名有哪些
- 角色扮演 | 1
- 网名