<!-- Canonical: https://www.tokenmap.com.cn/research/rag-question-answering-workflow -->

[返回全部研究](<https://www.tokenmap.com.cn/research>)

词元映射研究知识检索

# RAG 知识库问答：原理与检索流程

**前言**

- 在把AI大模型能力接入微信后，发现很多朋友想要落地在类似客服的应用场景。 但目前大模型存在幻觉，一不留神就胡乱回答，这在严肃的商用场景下是不可接受的。

- 当我想要解决此问题时，发现虽然资料很多，但是多数太偏“技术向”，对于很多和我一样的非技术从业者来说，犹如天书一般。有落地需求的朋友们，即使完成了通路搭建，也无法真正的应用。

- 落地场景，幻觉是不得不直面的问题。而非技术从业者的小白们，很难找到一个“说人话”的文章，让他们完全了解并应用。

- 而我对此比较感兴趣，同时作为产品经理，有一些用户思维和技术基础。因此我斗胆在整理、学习了多位前辈的成果后，写一篇讲给“小白”们的教程。

**一、对话示例**

如果我直接讲理论部分，我相信小白强迫自己看了前200字就会关掉窗口。因此，我们先将这个过程具象化。

以下是一个问答机器人的界面。这是一个示例，你可以把右侧的对话当做是微信的对话框，这些对话交互是可以在任何一个受支持的窗口下实现的。

![图片展示了一个问答机器人配置及对话交互界面。左侧应用配置部分有三处关键配置被红框标出，分别是AI模型，显示为“gpt- turbo”；提示词，有具体的提示内容示例；知识库，有检索模式等相关设置选项。右侧是与“机器人”的一轮对话，提问为“你是谁？你似乎在乔纳森的探险故事里为什么绑架他？”，“机器人”给出了相应回复，下方还显示了相关文档来源。此图直观呈现了上下文提及的问答机器人配置及对话情况。](<https://cdn.tokenmap.com.cn/paper/website/media/61fcaf913e77159ddb6e387c623cf5bca80bfc5d2edbaba294e95fe037b5485b.png>)

上方页面左侧画红框的地方，是这个“问答机器人”的配置，右侧是与“机器人”的一轮对话。

**左侧有三处配置：**

- AI模型

- 提示词

- 知识库。

-

**模型、提示词、知识库 三者可以想象成：**

- **大语言模型：**是一个学习过无数本书、拥有无穷智慧的人。他读过无数的书、看过无数的段子，因此对公共知识、学识技能、日常聊天十分擅长。然而，在工作场景下，只会聊天侃大山可不行，你想让他帮你干活。这个时候，就需要“提示词”出场了，

- **提示词：**是你告诉这个全知全能的人，他是一个什么样的角色、他要专注于哪些技能，让他能够按照你的想法，变成一个你需要的“员工”。

- **知识库：**相当于你给这个“聪明”员工的发放了一本工作手册。即使是看过再多的书、浏览过再多的文字，也不会准确的知道见到老板娘过来吃饭要打三折，张梦飞过去吃饭要打骨折。而知识库，就是把这些内容写在了工作手册上。让这个聪明的员工，见到有人来的时候，就翻一翻手册，然后再做出反应。

-

我的设定：

- AI模型：这里使用的是阿里千问模型。

- 提示词：这里设定的角色是“美嘉”，是按照美嘉的人设、背景和对话风格做的设定。

- 知识库：这里放的是《爱情公寓》全季的剧情，让“美嘉”拥有了自己过往的“记忆”，知道自己做过什么、好朋友是谁等等。

-

**图中右侧是一个十分简单的问答，**

我问： “你是谁？你和子乔在台球厅吵架那次是为了什么吵架？”

她的回复是： “我是陈美嘉，那次在台球厅和吕子乔吵架是因为他约会被人撞见，我讽刺他脸大影响信号，他还反击我。后来谈到过去的事情，我指责他忘恩负义，他就说我平。最后，我伤心地说要分手，因为他之前甩过我。”

其中，她是陈美嘉，这里是人设中的设定。吵架的经过是知识库中的内容。

在我提问了之后，大模型去知识库里找到了相关内容，然后回复了我。这就是一个简单的正确回复的demo示例。

**然而，我们会发现，有时候她的回答会十分不准确。**

![图片展示了一个AI问答界面。用户提问“一菲给你找过一个学校的工作吗？”，AI回复“不是的，一菲给我找的是一个男朋友，沈临风，不过那是在她考上了博士之后的事情”。回复下方显示引用了“爱情公寓2.docx”和“爱情公寓.docx”，有4条引用、3条上下文，耗时3.12s。结合上下文可知，这是一个基于知识库问答的错误场景示例，知识库中有“一菲为美嘉找了一份助教工作”的内容，但AI未依据正确知识库内容回答。](<https://cdn.tokenmap.com.cn/paper/website/media/c080ed8e8d2674dbbefa6d310391b2acba26ae84a858877a64b9997df868cee1.png>)

![图片展示了知识库更新数据的内容，其中红色框突出显示“初当老师的一菲在学校为美嘉找到了一份助教的工作”。这与上下文提到的基于知识库问答中常见的错误场景相呼应，即AI在回答问题时，未根据正确知识库内容作答，而是给出牛头不对马嘴的回答，如图二所示，体现了AI在知识库问答中的不足之处。](<https://cdn.tokenmap.com.cn/paper/website/media/9c3b11bf2c049ba2b989f041644d14111331d2420cd93ac4acca8f5608f80ce6.png>)

图二明显回答的牛头不对马嘴。

图三是知识库截图，其中是有“一菲为美嘉找了一份助教工作”的内容的。

但是回答这个问题时，AI并没有根据正确的知识库内容回答。

这，就是基于知识库问答中的一个非常常见的错误场景。在其他情况下，甚至有可能出现报价错误、胡编乱造等等。这在严肃场景中，是不能接受的出错。

现在应该能够直观的理解，为什么需要让大模型根据知识库回答的更加准确、更符合我们的要求。

在AI领域中，优化AI更准确回答问题的过程，有一个更加专业的术语，叫做 **RAG**。接下来，咱们进入正题，一步一步探索，如何优化回答。

**二、基础概念**

如果我们要优化幻觉问题和提高准确性，就务必要了解清楚从“问题输入”--“得到回复”，这个过程中，究竟发生了什么。然后针对每一个环节，逐个调优，以达到效果最佳化。

因此，我们先深入其中了解问答全貌。

### **1、RAG介绍**

- RAG（Retrieval-Augmented Generation），即检索增强生成，是一种结合信息检索和文本生成能力的技术，它由两部分组成：一个“检索器”和一个“生成器”。检索器从外部知识中快速找到与问题相关的信息，生成器则利用这些信息来制作精确和连贯的答案。这种结合使得RAG非常适合处理需要广泛知识的任务，如问答系统，能够提供详细而准确的回答。

简单来说，就是通过检索的模式，为大语言模型的生成提供更多信息，从而使大模型生成的答案更符合要求。

### **2、检索原理**

首先我们需补个课，简单了解一下大模型中的“向量”： （同时建议了解下LLM的实现原理）

- 可以把 **向量**想象成空间中的 **点位**，我们对话交流中的，每个词或短语都在这个空间中对应一个向量点位。

- 当系统需要找到与一个特定词或短语相关的内容时，它会查看这个词在虚拟空间中点的位置，寻找直线距离最近的点。在这个空间中，距离越近的点，代表词义或内容上的关联度越高。

简单来说，通过比较这些点的距离，检索器可以快速找到语义上接近的词语或信息，从而高效地检索相关内容。这就像在一个城市地图上找最近的餐馆，距离越近，越可能是你想去的地方。

![图片展示了一个网络结构图，以球体为背景，球体表面由许多节点和连接的线条构成，节点大小不一，部分节点颜色较深。该图与文档中介绍RAG工作原理的内容相关，用于形象地呈现问题解析阶段中输入向量化的过程，即问题被模型预处理后输入嵌入模型转化为向量，此图直观地展示了向量在节点间的连接关系，帮助理解RAG在处理问题时的向量化操作。](<https://cdn.tokenmap.com.cn/paper/website/media/20372b57d716da36d788fdbdb714fdf77341976c35f429a3d8f704b7b352ac51.png>)

理解了向量，我们来看看收到一个对话时，RAG的完整的工作流程。

**三、RAG工作原理**

**RAB的处理过程简单可分为四个阶段：**

**①、问题解析阶段**

**②、知识库检索阶段**

**③、信息整合阶段**

**④、大模型生成回答**

![图片展示了基于知识库的问答过程，分为知识库交互和大模型交互两部分。知识库交互中，文档（PDF/网页等资料）经数据提取、Embedding、创建索引后形成向量知识库，再进行向量相似性计算、文档排序和信息抽取。大模型交互则从用户提问开始，经文本预处理、Embedding、检索，最后通过信息整合和大模型处理生成回答。该图与上下文紧密相关，直观呈现了RAG工作原理中各阶段的具体流程。](<https://cdn.tokenmap.com.cn/paper/website/media/a4f940bf7bff9799932c018ddd85cfce2d798e7eff3171f8e851e0e820c99669.png>)

**①、问题解析阶段：**

**1、输入向量化**

- 问题会被模型预处理，然后输入进嵌入模型（Embedding Modle）转化为向量。以便后续检索时，能够把问题语句与向量数据库中的其他上下文信息进行比对。

-

具体进行了什么操作呢？ （了解即可）

- 1. 文本预处理：

- 2. 这包括去除无关字符、标准化文本（例如将所有字符转换为小写）、分词等，以清洁和准备文本数据。

- 3. 嵌入表示：

- 4. 将预处理后的文本（词或短语）转换为向量。这通常通过使用预训练的嵌入模型来完成，如Word2Vec、GloVe、BERT等。这些模型将每个词或短语映射到一个高维空间中的一个点（即向量）。

- 5. 特征提取：

- 6. 对于整个问题句子，可能会应用进一步的特征提取技术，比如句子级别的嵌入，或使用深度学习模型（如BERT）直接提取整个句子的表示。这个表示能够捕捉句子的上下文信息，不仅仅是单个词。

- 7. 向量优化：

- 8. 在某些情况下，问题的向量表示可能会根据具体任务进行优化，例如通过调整模型参数来更好地与检索系统的其他部分协同工作。

**②、知识库检索阶段：**

此阶段，首先需要有一个知识库，那么知识库是如何完成制作，并被检索的呢？

我们需要先了解一个概念，在大模型的检索中，并不是依靠传统的关键字去搜索。而是依靠问题在空间中的向量位置，去寻找距离这个向量最近的其他词句，然后完成检索。

所以，要在向量中进行检索，我们的知识库其实也是被转化成了了一个巨大的向量库。

**1、文档向量化：**

- 知识库中的文档也需要被转换成向量形式。这使得文档内容能够在数值级别上与问题向量进行比较。在我们使用知识库工具时，上传文档就会帮助我们完成文档的向量化。这一步就是依靠Embedding Modle完成的。

**2、知识库检索：**

- 根据前一步输出的问题向量，检索器开始在一个庞大的向量空间中搜索与问题相关的内容（既向量距离最接近）。检索器根据问题的关键词和上下文，选出最相关的信息片段。

在这一步，检索器从知识库里，检索到了一些和用户问题最相关的内容。

检索器具体进行了什么操作呢？ （了解即可）

- 1. 相似性计算：

- 2. 使用一种相似性度量方法（如余弦相似性）来计算问题向量和各个文档向量之间的相似度。这一步是为了找出与问题内容最为接近的文档。

- 3. 排序与选择：

- 4. 根据相似性得分，所有文档会被排序。系统通常会选择得分最高的几个文档，认为这些文档与问题最相关。

- 5. 信息抽取：

- 6. 从选定的高相关性文档中抽取具体的信息片段或答案。这可能涉及到进一步的文本处理技术，如命名实体识别、关键短语提取等。

**③、信息整合阶段：**

**1、信息融合：**

- 这里将接收到上一步中检索到的全部信息。然后把这些信息连带用户问题和系统预设，被整合成一个全新的上下文环境，为生成回答提供基础。

-

具体进行了什么操作呢？

- 1. 信息筛选与确认：

- 2. 首先，系统会对检索器提供的信息进行评估，筛选出最相关和最可信的内容。这通常涉及到对信息的来源、时效性和相关性进行验证。

- 3. 消除冗余：

- 4. 在多个文档或数据源中，可能会有重复的信息。系统需要识别和去除这些冗余内容，以防在生成回答时出现重复或相互矛盾的信息。

- 5. 关系映射：

- 6. 系统将分析不同信息片段之间的逻辑和事实关系，如因果、对比、顺序等。这有助于构建一个结构化的知识框架，使得信息在语义上更加连贯。

- 7. 上下文构建：

- 8. 将筛选和结构化的信息组织成一个连贯的上下文环境。这通常包括对信息进行排序、归类和整合，使其形成一个统一的叙述或解答框架。

- 9. 语义融合：

- 10. 在必要时，系统可能会进行语义融合，即合并意义相近但表达不同的信息片段，以减少语义上的重复并增强信息的表达力。

- 11. 预备生成阶段：

- 12. 最后，整合好的上下文信息被编码成适合生成器处理的格式，如将文本转化为适合输入到生成模型的向量形式。

**④、大模型生成回答**

**1、生成器 ：**

- 最终全新的上下文被一起传递给大语言模型。随后，大语言模型（LLM）根据提供的信息来回答问题。

- 因为这个上下文包括了检索到的信息，因此大语言模型相当于同时拿到了问题和参考答案，通过LLM的全文理解，最后生成一个准确和连贯的答案。

-

在生成过程中，系统基于整合好的上下文信息来构建最终的回答时。这个过程具体包括以下关键步骤：

- 1. 上下文向量化：

- 2. 将整合后的上下文信息转化为向量。这通常通过一个预训练的语言模型进行，例如BERT或GPT。这些向量能够捕捉上下文中的语义信息，为生成回答提供必要的输入。

- 3. 生成模型激活：

- 4. 使用一个基于Transformer的生成模型（如GPT）接收向量化的上下文。这个模型利用自注意力机制来理解上下文中的各种关系和信息。

- 5. 逐词生成回答：

- 6. 生成模型开始逐词构建回答。模型在每一步生成一个词，同时考虑到之前已生成的词和整个上下文的语义。这个过程是迭代的，直到整个回答构建完成。

- 7. 语言流畅性和准确性优化：

- 8. 在回答生成的过程中，模型会优化语言的流畅性和逻辑性。确保生成的文本不仅在语法上正确，而且在逻辑上连贯，与用户问题紧密相关。

- 9. 回答评估与调整：

- 10. 完成初步生成后，系统可能会对回答进行评估，检查其准确性、相关性和用户满意度。如果需要，可以对回答进行微调或完全重新生成。

**⑤、输出回答：**

- 最终，生成的答案呈现给用户。

**简要总结RAG的全流程：**

- 1. **问题解析阶段：**

- 2. 接收并预处理问题，通过嵌入模型（如Word2Vec、GloVe、BERT）将问题文本转化为向量。这一步确保问题向量能有效用于后续检索。

- 3. **知识库检索阶段：**

- 4. 知识库中的文档同样向量化后，比较问题向量与文档向量，选择最相关的信息片段。抽取相关信息传递给下一步骤

- 5. **信息整合阶段：**

- 6. 接收检索到的信息，与上下文构建形成融合、全面的信息文本。整合信息准备进入生成阶段。

- 7. **大模型生成回答：**

- 整合后的信息被转化为向量并输入到LLM（大语言模型）。模型逐词构建回答，最终输出给用户。

**四、RAG实例**

看理论有点懵是吗？为了更理解，我们来一起看看实例。

![图片展示的是调试预览中的对话示例。右侧用户提问“你好？你在干嘛呢”，左侧AI回复称在群里看趣事，还提及张伟、子乔和一菲等人物相关情节。回复下方显示有“11条引用”和“3条上下文”，并标注了引用文档为“爱情公寓.docx”，时间显示为13:12:5，另有“查看引用”和“查看详情”按钮。该图片与上文提到的“调试预览中的对话示例，回复中有11条引用，3条上下文”内容相契合，直观呈现了相关对话及引用情况。](<https://cdn.tokenmap.com.cn/paper/website/media/54ac4dba867540e57a8d11ecda009c02620d95104ab46298a90afd27588dd41a.png>)

这是调试预览中的对话示例。

在回复中，可以看到这里有写11条引用，3条上下文，我们具体来看下，有什么处理。

**一、知识库检索部分**

![图片展示了知识库检索部分的完整响应界面。界面中有“知识库搜索”和“AI对话”两个选项卡，当前选中“知识库搜索”。下方显示模型名为知识库搜索，运行时长5秒，模型是Embedding - 1，总Tokens为924。问题/检索词部分有多个问题，如“你好，你在干嘛呢”等。搜索模式为语义检索，相似度为0.85。该图片与上下文紧密相关，直观呈现了知识库检索时的参数设置及问题输入情况。](<https://cdn.tokenmap.com.cn/paper/website/media/6dbf1030e64a4e03c03cd6c543683e721c9fbe14d49464d504184c19874cba4b.png>)

**1、把输入的问题，通过Embedding做了向量化**

![图片展示了RAG系统中知识库检索部分的相关设置界面。界面中有“检索模式”“相似度”“单次搜索上限”“结果重排”“问题优化模型”等参数设置项，其中“检索模式”为“语义检索”，“相似度”为0.85，“单次搜索上限”为1400，“结果重排”为false，“问题优化模型”为“qwen-turbo”。问题优化结果部分列出了三个问题，分别是“你能分享一下你当前的任务或功能吗？”“你是如何工作的？”“能告诉我你的主要职责是什么吗？”引用内容部分显示了“#1 综合排名”和“#5 语义检索 1069.5408”等内容。该图片与上文介绍的知识库检索流程相关，直观呈现了检索设置情况。](<https://cdn.tokenmap.com.cn/paper/website/media/7b12748031c54e6dd1ad54e38c5f9430d6c35ca7e458a63816473998d2fbd145.png>)

**2、使用qwen语言模型把问题做了优化、添加了接近的检索词**

**3、知识库向量检索，抽取条件包含相似度0.85**

![图片展示了知识库检索抽取的内容块。上方有“引用内容”输入框，下方列出4个内容块，每个块有编号、综合排名、语义检索值及内容摘要。如#1内容块综合排名为1069.5408，语义检索值为1069.5408，内容摘要是关于张伟、小黑、子乔等人的聚会及张伟在大面前的表现等。该图片与上下文紧密相关，直观呈现了知识库检索抽取的内容块情况，帮助理解知识库检索的输出形式。](<https://cdn.tokenmap.com.cn/paper/website/media/923de95689e022e71f48c06be1f8847b6528ef6d223d666ffb655a11de526586.png>)

**4、通过检索一共抽取出了11个内容块（chunk）**

**二、大模型对话部分**

（因为我刷新后丢失了记录，改成说了一句：你好，所以下边的问题，变成了你好）

![图片展示的是一个AI对话系统的完整响应界面。界面中有“知识库搜索”和“AI对话”两个标签，当前选中“AI对话”。下方显示模型名为“AI对话”，运行时长6.16s，模型为“baichuan2-13b-chat-v1”，总Tokens为3194，问题/检索词为“你好”，上下文总长度3，最大响应Tokens为450。完整记录部分有“金属安全防护”等内容，还包含对提问的回复。该图片与上文介绍的AI对话系统相关，呈现了其运行参数及对话内容。](<https://cdn.tokenmap.com.cn/paper/website/media/cc2280a39aa9494cb90f999a19fb39a9ffcef8442955e3caf8e62aced605758a.png>)

![图片展示了人机对话场景，人类输入“你好”，AI回复“你好！我了解到，现在正值“学雷锋日”，大家都准备为单亲家庭的小朋友们送一份礼物来表达他们的爱心。然而，其中一位小朋友提出了一个过高的礼物清单，这让一位节俭的张伟感到困扰。尽管如此，他还是决定满足孩子的要求。但他完成礼物购买后发现，这个礼物的实际接收者竟然是胡一菲。她决定帮助张伟追回这笔礼物费用。每个人都在面临着自己的难题，所以当他们收到小黑的派对邀请时他们决定去参加派对来放松一下心情。在派对期间，张伟试图在演艺大帝的面前展示自己，但总是出现尴尬的情况。吕一乔则试图通过明一的非来接近一位潜在的投资商，但这导致了更多的麻烦。总的来说，这是一个充满挑战和麻烦的一天。”](<https://cdn.tokenmap.com.cn/paper/website/media/5a24045d1ec347e3acf198e9f5a942a6d82014c8c16adc6e3408f9937c340454.png>)

**5、此处将①②一起传递给了LLM（大语言模型），最终得到了③AI的回答。**

①System：我设置的Prompt（提示词）

②Human：知识库检索的到的信息（下图两个<data>中间的内容就是知识库检索到的信息）。

③AI：最终收到的回复信息。

## 继续探索

[全部研究](<https://www.tokenmap.com.cn/research>)

[!\[图片\](<https://cdn.tokenmap.com.cn/paper/website/media/099524a655650974a30da3bf36f06912bb90f60b4979560d140e7bb700aabe91.png>)

模型实测

### 编程智能体的代码修复轨迹与 Harness 对照

DeepSeek V4 Pro、GLM-5.3 接连更新，豆包推出了 Seed-Evolving，DeepSeek 还发布了自己的 Harness。模型能力在涨，给模型提供工具和执行环境的 Harness 也在进化。](<https://www.tokenmap.com.cn/research/coding-agent-execution-trajectories>)

[!\[图片\](<https://cdn.tokenmap.com.cn/paper/website/media/ade857cef09291a717028457f79933984766492797dac06e4a5ca5f9dc01792f.png>)

模型实测

### DeepSeek、GLM 与 Kimi 的真实任务对比

说实话，现在的大模型已经多到让人有点选择困难了。](<https://www.tokenmap.com.cn/research/deepseek-glm-kimi-task-comparison>)

[!\[图片\](<https://cdn.tokenmap.com.cn/paper/website/media/f5f58d8cf68c45464ea27801580251f7dfce851241f38eceda00d088b875b263.png>)

模型实测

### Doubao Seed 2.1 Pro 工程任务实测

6 月 23 日，火山引擎在北京举办 2026 夏季 FORCE 原动力大会，正式发布豆包大模型 2.1。](<https://www.tokenmap.com.cn/research/doubao-seed-21-pro-engineering-tests>)
