<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>第 1 章 RAG 基础概念 on 《从零学AI指南手册》</title>
		<link>https://mlwithme.github.io/agent/chapter01/</link>
		<description>Recent content in 第 1 章 RAG 基础概念 on 《从零学AI指南手册》</description>
		<generator>Hugo</generator>
		<language>zh_CN</language>
		
		
		
		
			<atom:link href="https://mlwithme.github.io/agent/chapter01/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>1.1 RAG 提出背景</title>
				<link>https://mlwithme.github.io/agent/chapter01/454f0942222e471e/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://mlwithme.github.io/agent/chapter01/454f0942222e471e/</guid>
				<description>&lt;h1 id=&#34;第-1-章-rag-基础概念&#34;&gt;第 1 章 RAG 基础概念&lt;a class=&#34;anchor&#34; href=&#34;#%e7%ac%ac-1-%e7%ab%a0-rag-%e5%9f%ba%e7%a1%80%e6%a6%82%e5%bf%b5&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;p&gt;大型语言模型 （Large Langage Model, LLM)）通过大量但固定的语料训练而来，这限制了它们对私有信息或最新信息进行推理的能力。微调是缓解这一问题的一种方法，但通常不适合事实性信息的处理而且成本相对高昂。在这样的背景下，检索增强生成 （Retrieval Augmented Generation, RAG） 便逐渐成为了一种主流且强大的机制。 RAG 利用从外部数据源检索到的文档作为知识库，通过上下文学习来增强 LLM 的生成能力。&lt;/p&gt;&#xA;&lt;h1 id=&#34;11-rag-提出背景&#34;&gt;1.1 RAG 提出背景&lt;a class=&#34;anchor&#34; href=&#34;#11-rag-%e6%8f%90%e5%87%ba%e8%83%8c%e6%99%af&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;h2 id=&#34;111-大模型的局限&#34;&gt;1.1.1 大模型的局限&lt;a class=&#34;anchor&#34; href=&#34;#111-%e5%a4%a7%e6%a8%a1%e5%9e%8b%e7%9a%84%e5%b1%80%e9%99%90&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;很多人第一次把大模型接入业务时，都会有一种错觉：“模型这么强，只要把问题问清楚，它应该什么都能答对吧？”但现实往往是——模型回答得很自信，却经常都是错的，这就是大家常说的，一本正经地胡说八道。&lt;/p&gt;&#xA;&lt;p&gt;例如你问大模型：某某公司 2026 年的差旅报销标准是多少？&lt;/p&gt;&#xA;&lt;p&gt;这个时候模型便会根据自己固有的知识来进行回答，并且回答通常具备三个特点：①语言非常专业；②逻辑非常完整；③ 但内容完全不对。这时候很多人的第一反应是：是不是提示词写得不够好？是不是模型还不够大？要不要再多试几次？&lt;/p&gt;&#xA;&lt;p&gt;但问题其实不在你，也不在模型，而是在于一个非常重要、但经常被忽略的事实是：大模型不是数据库，也不是搜索引擎。你可以把它理解为：一个读过大量书籍的人，但在回答问题时，不能临时翻书，只能依赖“记忆中最像的内容”来作答。&lt;/p&gt;&#xA;&lt;p&gt;这会带来3个天然限制：&lt;/p&gt;&#xA;&lt;p&gt;① 知识是静态的：模型一旦训练完成，它的知识就冻结了，它不知道你公司昨天刚更新了一版制度。&lt;/p&gt;&#xA;&lt;p&gt;② 不知道你的私有数据：公司内部文档、业务规则、技术细节模型在训练时根本没见过，所以自然也就无法准确回答。&lt;/p&gt;&#xA;&lt;p&gt;③ 会生成“听起来很合理的错误答案”：因为它的目标是“生成最可能的文本”，而不是“返回真实存在的资料”。&lt;/p&gt;&#xA;&lt;p&gt;所以，这也是为什么大模型的幻觉不是缺陷，而是结构性问题。&lt;/p&gt;&#xA;&lt;h2 id=&#34;112-rag-出现的动机&#34;&gt;1.1.2 RAG 出现的动机&lt;a class=&#34;anchor&#34; href=&#34;#112-rag-%e5%87%ba%e7%8e%b0%e7%9a%84%e5%8a%a8%e6%9c%ba&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;很多人此时会想到一个看似合理的方案：“那我把公司数据拿去模型微调不就行了？”听起来很对，但在大多数知识型场景下，并不合适。&lt;/p&gt;&#xA;&lt;p&gt;原因很简单，微调并不能让模型“学会查文档”、它只是让模型更倾向于某种回答风格。并且更关键的是数据一变就要重新训练，不仅成本高、而且周期长，这并不适合制度、文档、FAQ 这类高频变动内容。一句话总结就是：微调解决的是“怎么回答”，但解决不了“基于什么资料回答”。&lt;/p&gt;&#xA;&lt;p&gt;讲到到这里，其实我们的需求已经非常清晰了，我们不是想让模型“记住所有内容”，而是希望它——在回答之前，先去查一查真正的资料，这正是 RAG 检索增强生成的核心思想。&lt;/p&gt;&#xA;&lt;p&gt;一句话，RAG 等于先检索相关资料，然后再让大模型生成答案。你可以把它理解为一个非常人类化的过程：例如新人客服回答问题前会先查知识库，技术支持工程师解决问题前会先翻文档，最后再用自己的语言把答案组织出来。如图1-1所示，便是最基础的一个 RAG 处理流程。&lt;/p&gt;&#xA;&lt;div align=center&gt;&lt;img width=&#34;500&#34; src=&#34;https://mlwithme.github.io/images/agent/202603011721.jpg&#34;/&gt; &lt;/div&gt;&lt;center&gt;图 1-1. RAG 处理流程图&lt;/center&gt;&#xA;&lt;p&gt;根据图1-1可以知道，大模型在回答用户之前都会向量库中检索与用户请求相关的文本资料，让后将其与用户请求一起喂给大模型，最后大模型再基于参考内容给出正确的回答。&lt;/p&gt;&#xA;&lt;h2 id=&#34;113-rag-的能力&#34;&gt;1.1.3 RAG 的能力&lt;a class=&#34;anchor&#34; href=&#34;#113-rag-%e7%9a%84%e8%83%bd%e5%8a%9b&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;一旦引入 RAG大模型的角色就发生了变化，此时大模型不再凭“记忆”作答而是基于真实存在的文档进行回答。正因如此，这让它在很多场景中真正变得可用，例如：企业内部制度 、流程问答、技术文档、API 文档助手、私有知识库 、智能问答系统等。&lt;/p&gt;&#xA;&lt;p&gt;当然，更重要的是回答内容可以追溯来源，错了能定位是哪份文档的问题，进而降低“模型胡说”的情况。所以可以用一句话概括 RAG 的价值，RAG 让大模型第一次真正站在你的数据上说话。&lt;/p&gt;</description>
			</item>
			<item>
				<title>1.2 RAG 流程概览</title>
				<link>https://mlwithme.github.io/agent/chapter01/d7623d619f884b25/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://mlwithme.github.io/agent/chapter01/d7623d619f884b25/</guid>
				<description>&lt;h1 id=&#34;12-rag-流程概览&#34;&gt;1.2 RAG 流程概览&lt;a class=&#34;anchor&#34; href=&#34;#12-rag-%e6%b5%81%e7%a8%8b%e6%a6%82%e8%a7%88&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;p&gt;在上一节中，我们介绍了 RAG 出现的背景以及要解决的问题。我们知道，大语言模型虽然拥有强大的知识理解和生成能力，但其知识来源于预训练阶段的数据，因此无法获取用户私有数据，也无法掌握训练完成后产生的新知识。&lt;/p&gt;&#xA;&lt;p&gt;为了解决这一问题，RAG 通过引入外部知识库，使模型能够在回答问题时动态获取相关信息，从而提升回答的准确性、时效性和可解释性。本节将从整体视角出发，介绍 RAG 的基本工作流程以及各个阶段的核心任务，帮助读者建立对 RAG 的全局认识。&lt;/p&gt;&#xA;&lt;h2 id=&#34;121-rag-处理流程&#34;&gt;1.2.1 RAG 处理流程&lt;a class=&#34;anchor&#34; href=&#34;#121-rag-%e5%a4%84%e7%90%86%e6%b5%81%e7%a8%8b&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;从用户视角来看，RAG 的工作流程其实非常简单。当用户提出一个问题时，系统并不会直接将问题发送给大语言模型，而是首先从外部知识库中查找与问题最相关的信息，然后再将这些信息与用户问题一起发送给模型进行回答。因此，可以将 LLM 看作一种新型智能操作系统的“内核”，通过连接外部实时信息来向模型动态注入知识内容。&lt;/p&gt;&#xA;&lt;p&gt;整个过程可以概括为3个步骤：用户提出问题、系统从知识库中检索相关内容、以及大语言模型结合检索结果生成最终答案。对于 RAG 的整体工作机制，可以通过图 1-2 进行直观理解。&lt;/p&gt;&#xA;&lt;div align=center&gt;&lt;img width=&#34;600&#34; src=&#34;https://mlwithme.github.io/images/agent/202602051753.jpg&#34;/&gt; &lt;/div&gt;&lt;center&gt;图 1-2. RAG 处理全流程（由NanoBanana Pro 模型生成）&lt;/center&gt;&#xA;如图 1-2 所示，当用户输入问题后，系统首先在知识库中寻找与问题最相关的文档片段，然后将这些片段作为参考资料与用户问题一起提交给大语言模型。最终，大语言模型基于检索到的信息生成答案。这种方式使模型能够利用外部知识进行推理和回答，从而突破预训练知识的限制。&#xA;&lt;h2 id=&#34;122-rag-的-3-个核心阶段&#34;&gt;1.2.2 RAG 的 3 个核心阶段&lt;a class=&#34;anchor&#34; href=&#34;#122-rag-%e7%9a%84-3-%e4%b8%aa%e6%a0%b8%e5%bf%83%e9%98%b6%e6%ae%b5&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;从系统实现的角度来看，RAG 通常由3个核心阶段组成：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;索引（Indexing）：构建知识库，使文档能够被高效检索；&lt;/li&gt;&#xA;&lt;li&gt;检索（Retrieval）：根据用户问题查找最相关的知识内容；&lt;/li&gt;&#xA;&lt;li&gt;生成（Generation）：结合检索结果生成最终答案。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;对于索引阶段来说，它的目标是将原始文档，例如企业知识库、网页内容、产品手册等，加工成适合检索的形式，并建立知识库，包括文档加载、文档切分、向量化以及向量存储。&lt;/p&gt;&#xA;&lt;p&gt;对于检索阶段来说，它的作用是当用户发起问题时系统首先会使用与索引阶段相同的嵌入模型将用户问题转换为向量表示，随后在向量数据库中寻找与该问题语义最接近的文档片段，并选择其中的 Top-K 返回。&lt;/p&gt;&#xA;&lt;p&gt;对于生成阶段来说，在完成检索后，系统会将用户问题与检索到的文档内容组合成一个新的提示词。例如：&lt;/p&gt;&#xA;&lt;blockquote class=&#39;book-hint &#39;&gt;&#xA;&lt;p&gt;你是一个问答助手，请根据以下提供的参考资料回答用户问题。如果参考资料中不存在相关信息，请明确说明。&lt;/p&gt;&#xA;&lt;p&gt;参考资料： {retrieved_documents}&lt;/p&gt;&#xA;&lt;p&gt;用户问题： {question}&lt;/p&gt;&#xA;&lt;/blockquote&gt;&lt;p&gt;随后，将构造好的 Prompt 提交给大语言模型进行推理。此时，大语言模型不仅能够利用自身预训练阶段掌握的知识，还能够参考实时检索到的外部信息，从而生成更加准确和可靠的回答。&lt;/p&gt;&#xA;&lt;p&gt;至此，我们已经完成了对 RAG 整体工作流程的介绍。通过本章内容，相信读者已经对 RAG 的基本组成和运行机制有了初步认识。从下一章开始，我们将正式进入 RAG 开发实践，逐步学习构建一个完整 RAG 系统所需的核心技术与实现方法。&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
