前言
大语言模型的核心优势在于其预训练阶段所依赖的海量语料
这些语料大多来源于开放网络,数据覆盖从日常用语到科普知识的广泛主题,为模型提供了多样化的语料来源
但这种语料来源更注重逻辑,在专业性和权威性上存在明显不足
导致模型在专业知识服务领域中表现出”逻辑严谨、精确欠佳;广度有余、深度不足”等问题
相比之下,专业领域的核心知识资源—如图书、期刊、报纸中经过严格审校的优质内容—通常并未在开放网络中免费提供
这些权威文献往往以受限访问的形式存在,通常需要专业组织认证、付费订阅或通过特定渠道获取
因此,模型在预训练阶段难以接触到这些高质量的专业语料,导致其在涉及专业问题时的生成质量难以达到人类专家的水平
大语言模型主要依赖上下文的统计关系进行语言生成,而非直接”理解”或”内化”知识
这种基于概率的生成机制使其在处理日常语言任务时表现出较强的泛化能力,也就是我们常说的”正确的废话”
传统 LLM 的局限性:
- 知识截止点:模型训练数据有时间限制,无法获取最新信息
- 幻觉问题:模型可能生成看似合理但实际错误的信息
- 领域专业性不足:对特定领域的深度知识掌握有限
- 个性化缺失:无法基于用户的个人知识库进行回答
基本概念
RAG 的解决方案:RAG 通过引入外部知识库,让 AI 模型在生成回答前先检索相关信息,从而显著提高回答的准确性和时效性
核心思想:让模型在回答问题时能够参考外部知识库中的信息,就像人类在考试时可以查阅资料一样
基本流程
RAG系统主要包括以下三个步骤:
(1). 索引(向量化):将外部知识库中的文档进行预处理
由于嵌入模型通常有处理长度的限制,预处理中最核心的一步是进行”文本分块”(Chunking)
即将长文档按照一定规则切割成较小的、语义完整的文本块
此外也包括传统的分词、去停用词等
然后将这些文本块转换为向量表示(由嵌入模型(Embedding Model)自动完成),并存储到向量数据库中
这个过程就像是为知识库中的每一篇文档建立一个索引,以便后续能够快速检索
从技术角度来说,向量化的目地是捕捉文本的语义信息
无论用户查询和知识库在语言表达上如何不同,只要它们的语义相近,其向量表示就会具有较高的相似度
向量化及文本分块的质量直接影响后续检索阶段的准确性,因此选择合适的嵌入模型与分块策略至关重要
(2). 检索:当用户提出问题时,系统首先将问题转换为向量表示,然后在向量数据库中进行检索,找到与问题最相关的文档或文档片段
这个过程类似于在图书馆中通过索引查找相关书籍
在这一阶段,用户输入的查询关键词将会被采用相同的嵌入模型进行向量化
并利用相似度搜索算法与向量知识库中的数据相匹配
这里通常采用”Top-K 检索”机制(即提取出相似度得分最高的前 K 个结果)进行两步走的操作:
首先进行”粗筛”(召回),放宽条件提取出一个较大的 Top-K 集合(如前 20 个片段),以防遗漏
为了进一步提升匹配的精准度并剔除字面相似但语义无关的噪声
系统会在粗筛之后引入”重排序”(Reranking)步骤
即使用专门的打分模型对这批粗筛片段与用户问题的深层逻辑相关性进行二次精确评估
最终仅截取保留得分最高、最优质的少数几个片段(如极其精准的 Top-3)
然后将这批经过重排的 Top-K 结果与用户查询组合成复合提示词
检索阶段的效率和准确性通常依赖于向量检索技术及重排序机制
其主要目的是将用户查询与知识库中的相关内容进行有效匹配,从而为生成阶段提供可靠且精准的知识来源
(3). 生成:将检索到的文档或文档片段与原始问题一起输入到语言模型中,模型根据这些信息生成回答
通过引入外部知识,模型能够生成更准确、更有依据的回答
这一步骤核心在于如何有效融合检索到的知识和用户输入
因此大语言模型的理解和生成能力决定了本阶段的准确性和效率,也决定了输出内容的流畅性和逻辑性
工作流程可以简单分为两个主要阶段:知识库构建(离线处理)和查询响应(实时处理):

与其他技术的对比
与传统的语言模型微调(Fine-tuning)技术相比,RAG 具有以下优势:
- 时效性:RAG 能够实时获取外部知识库中的最新信息,而微调需要重新训练模型,无法及时反映知识的更新
- 灵活性:RAG 可以轻松地接入不同的知识库,适用于各种领域和任务,而微调通常针对特定的数据集和任务进行,通用性较差
- 成本效益:RAG 不需要对大规模的模型进行微调,降低了计算成本和时间成本
- 微调存在”灾难性遗忘”问题,即在学习新知识时丢失部分旧知识
与信息检索(IR)系统相比,RAG 的优势在于:
- 自然语言处理能力:RAG 能够理解用户的自然语言问题,并生成自然语言回答,而传统的 IR 系统通常只能返回相关的文档列表
- 知识整合能力:RAG 能够将检索到的知识与模型的先验知识进行整合,生成更全面、更准确的回答