更新日期:2026年4月9日 星期四 北京时间
开篇引入:为什么每个AI开发者都需要理解RAG?

检索增强生成(Retrieval-Augmented Generation,简称RAG)是目前大语言模型(Large Language Model,LLM)应用开发中最核心、最高频的技术之一。无论是Kimi AI助手、DeepSeek等国产大模型,还是GPT-4这类国际主流模型,都深度依赖RAG技术来实现实时联网、文档问答和知识库构建等能力。
但是,很多开发者在使用Kimi AI助手等工具时,往往陷入“只会用、不懂原理”的困境:

知道Kimi可以联网,但说不清RAG技术是如何将结果与模型生成能力融合的;
能调用RAG接口,但面试时被问到“检索器、排序器、生成器三模块”就卡壳;
概念混淆——RAG和SFT(Supervised Fine-Tuning,监督微调)有什么区别?长上下文和RAG是什么关系?
本文将以Kimi AI助手的核心技术路线为切入点,系统讲解RAG的原理、流程、代码实现和面试要点,帮助读者建立从概念理解到动手实践的完整知识链路。
一、痛点切入:为什么需要RAG?
传统LLM的三大“记忆困境”
大型语言模型虽然表现惊艳,但并非无所不知。主要有三个硬伤:
1. 知识截止问题:模型的知识受限于训练数据的截止日期。例如,训练于2024年的模型,无法回答2025年发生的事情。
2. 幻觉问题:当模型不确定答案时,可能“自信地编造”看似合理但完全错误的信息——这种现象被称为“幻觉”(Hallucination)。
3. 私有知识缺失:企业内部的私有文档、产品手册、最新的行业数据,模型根本没有“见过”。
传统方式:直接问LLM关于公司内部流程的问题 如果公司数据不在训练集里,模型会给出不准确甚至错误的回答 response = llm.generate("我们公司最新版的报销审批流程是什么?") ❌ 可能输出过时的流程,或者干脆编造一个不存在的流程
RAG如何解决这些问题?
RAG通过一种 “开卷考试” 的模式,完美解决了上述问题-29:
核心思想:在回答问题前,先从外部知识库(如公司文档、产品手册、网页等)中检索出最相关的信息,然后将这些信息连同用户的问题一起“喂”给LLM,让它基于给定的材料进行回答。
Kimi AI助手就是这一思想的典型实践——用户只需在对话框点击“联网”按钮,Kimi就会自动检索网络信息,再结合自身能力生成答案-15。
二、核心概念:什么是RAG?
标准定义
RAG,全称 Retrieval-Augmented Generation(检索增强生成),由Facebook AI Research(FAIR)团队于2020年首次提出-15。
它是一种结合“外部知识检索”和“大语言模型生成”的混合架构:先从知识库中检索相关文档,再让模型基于这些文档生成回答-39。
生活化类比
想象你在参加一场重要的考试:
传统LLM = 闭卷考试,所有知识全靠“死记硬背”的训练内容,遇到没背过的题目就“蒙答案”;
RAG模式 = 开卷考试,允许你翻阅参考资料(外部知识库),然后在参考材料的基础上作答,答案自然更准确、更可靠。
RAG的核心价值
| 维度 | 传统LLM | RAG增强模型 |
|---|---|---|
| 知识时效性 | 限于训练数据截止日期 | 可检索最新信息 |
| 幻觉率 | 高(容易编造答案) | 低(有参考资料可循) |
| 知识更新成本 | 需重新训练/微调 | 只需更新知识库 |
| 私有知识接入 | 不支持 | 支持企业文档接入 |
RAG允许开发人员为生成模型提供最新的研究、统计数据或新闻,从而保持信息的时效性和相关性,有效缓解知识截止问题和模型幻觉-15。
三、关联概念:RAG vs 长上下文 vs SFT
概念B:长上下文(Long Context)
定义:长上下文是指大语言模型在一次对话中能够“记住”和处理的Token数量上限。
典型数据:Kimi K2.5支持256K上下文窗口-,Kimi Linear架构更在128K到1M范围内实现了5到6倍的解码速度提升-1。
RAG vs 长上下文的区别与联系
很多初学者容易把这两个概念混为一谈,理解它们的区别至关重要:
| 对比维度 | RAG | 长上下文 |
|---|---|---|
| 本质 | 检索-生成范式 | 模型架构能力 |
| 信息来源 | 外部知识库(实时检索) | 对话历史(内部记忆) |
| 计算成本 | 低(只检索相关内容) | 高(需要处理全部上下文) |
| 信息上限 | 理论上可无限扩展 | 受限于上下文窗口大小 |
| 典型场景 | 知识库问答、联网 | 长文档分析、长对话 |
概念C:SFT(监督微调)
定义:监督微调(Supervised Fine-Tuning)是通过标注数据对预训练模型进行针对性训练,让模型“记住”特定领域的知识。
一句话总结三者的关系:
SFT是“死记硬背”,RAG是“开卷查阅”,长上下文是“扩充考场”——三者各有侧重,相互配合。
| 对比维度 | RAG | SFT |
|---|---|---|
| 原理 | 让模型“查资料” | 在模型内部“灌知识” |
| 优势 | 更新快、灵活 | 推理更自然 |
| 劣势 | 依赖检索质量 | 更新成本高 |
这也是Kimi K2.5技术路线的核心逻辑——通过Token效率提升降低计算成本,通过长上下文提升推理能力,再通过多智能体协作放大任务处理能力,三者形成乘数效应-2。
四、概念关系总结
理解了以上概念,我们可以用一句话来总结它们的逻辑关系:
RAG是一种“检索-生成”范式,长上下文是模型接收信息的能力上限,SFT是“内部灌输知识”的方法——三者本质不同,但可以协同使用。
面试速记版:
RAG → 问模型:你去查一下资料再回答
长上下文 → 模型能记住多少信息
SFT → 让模型把特定知识背下来
五、代码示例:从零搭建一个RAG应用
理解了概念,接下来动手实现一个最简RAG系统。我们使用 langchain 框架和FAISS向量数据库来演示核心流程。
环境准备
pip install langchain langchain-community faiss-cpu sentence-transformers完整代码示例
from langchain.text_splitter import RecursiveCharacterTextSplitter from langchain_community.embeddings import HuggingFaceEmbeddings from langchain_community.vectorstores import FAISS from langchain_community.llms import OpenAI 或其他LLM from langchain.chains import RetrievalQA from langchain.prompts import PromptTemplate ========== 步骤1:索引构建阶段 ========== 1.1 加载文档(模拟企业知识库) documents = [ "Kimi AI助手支持联网功能,用户只需点击按钮即可开启。", "RAG技术的核心是检索器、排序器和生成器三个模块。", "Kimi K2.5于2026年1月27日发布,支持原生多模态架构。", "检索增强生成可以有效降低大模型的幻觉问题。" ] 1.2 文本切分(Chunking) text_splitter = RecursiveCharacterTextSplitter( chunk_size=200, 每个块的最大字符数 chunk_overlap=50 块之间的重叠字符数,保持语义连贯 ) chunks = text_splitter.create_documents(documents) 1.3 向量化嵌入(Embedding) embeddings = HuggingFaceEmbeddings(model_name="sentence-transformers/all-MiniLM-L6-v2") 1.4 构建FAISS向量数据库 vectorstore = FAISS.from_documents(chunks, embeddings) ========== 步骤2:检索生成阶段 ========== 2.1 配置检索器(Retriever) retriever = vectorstore.as_retriever(search_kwargs={"k": 2}) 检索最相关的2个文档 2.2 设计增强提示词(Augmented Prompt) template = """ 你是一个专业的AI助手。请基于以下【参考资料】来回答用户的问题。 如果参考资料中没有相关信息,请明确告知用户,不要编造答案。 【参考资料】 {context} 【用户问题】 {question} 【回答】 """ prompt = PromptTemplate(template=template, input_variables=["context", "question"]) 2.3 构建RAG问答链(使用实际的LLM,此处为示意) qa_chain = RetrievalQA.from_chain_type( llm=your_llm, chain_type="stuff", retriever=retriever, chain_type_kwargs={"prompt": prompt} ) 2.4 执行查询 query = "Kimi AI助手支持哪些功能?" retrieved_docs = retriever.get_relevant_documents(query) print("【检索到的参考资料】:") for i, doc in enumerate(retrieved_docs): print(f" {i+1}. {doc.page_content}") 最终生成的回答会基于这些检索结果,由LLM生成
代码关键步骤说明
| 步骤 | 关键操作 | 作用 |
|---|---|---|
| 文本切分 | chunk_size=200, chunk_overlap=50 | 保持文档语义完整性,避免信息断裂 |
| 向量化 | HuggingFaceEmbeddings | 将文本转换为语义向量坐标 |
| 构建索引 | FAISS.from_documents() | 建立可快速检索的向量索引 |
| 配置检索器 | search_kwargs={"k": 2} | 控制每次检索返回的文档数量 |
六、底层原理与技术支撑
RAG技术的底层依赖于以下几个核心知识点:
1. 向量嵌入(Embedding)
将文本转换成高维向量,语义相近的文本在向量空间中的距离也更近-29。这是RAG实现语义检索的基础。
2. 向量数据库
如FAISS、Milvus、ChromaDB等,专门用于高效存储和检索高维向量。Milvus是企业级RAG系统的常用选型-45。
3. 相似度计算
通过余弦相似度、点积等方式计算查询向量与知识库向量的相似度,找出最相关的文档。
4. 注意力机制(Attention)
2017年诞生的全注意力机制(Full Attention)是Transformer架构的核心。Kimi Linear采用混合线性注意力架构,挑战了“所有层必须使用全注意力”的惯例,通过优化递归存储管理,在128K到1M的超长上下文中将解码速度提升了5到6倍-1-5。
七、高频面试题与参考答案
面试题1:什么是RAG?它的核心流程包含哪三个模块?
参考答案:
RAG(Retrieval-Augmented Generation,检索增强生成)是一种结合“外部知识检索”和“大语言模型生成”的混合架构。
核心流程包含三个模块:
检索器(Retriever) :根据用户查询从知识库快速筛选10-100条相关候选文档,核心目标是“高召回率”;
排序器(Reranker) :对候选文档精细排序,筛选出最相关的3-5条,核心目标是“高准确率”;
生成器(Generator) :把用户查询和排序后的文档拼接成Prompt,输入LLM生成回答,核心目标是“事实准确”。
-45
踩分点:说出RAG全称、三模块名称、各模块核心目标(召回/准确/事实)。
面试题2:RAG和SFT有什么区别?各自的应用场景是什么?
参考答案:
SFT(监督微调) 是在模型内部“灌知识”,让模型将特定知识内化到参数中,适合知识相对稳定、需要自然推理的场景;
RAG 是让模型“查资料”,通过实时检索外部知识库获取信息,适合需要频繁更新知识、或接入私有数据的场景。
一句话总结:一个靠记忆,一个靠检索。RAG的优势是更新快、灵活;SFT的优势是推理更自然。
-39
踩分点:说出本质区别(记忆vs检索)、各自的适用场景。
面试题3:RAG如何缓解大模型的“幻觉”问题?
参考答案:
RAG通过“检索-增强-生成”机制缓解幻觉:
检索阶段:从可信外部知识库获取事实依据;
增强阶段:将检索结果作为上下文注入Prompt,要求LLM基于给定的材料回答;
生成阶段:通过Prompt工程(如“请基于以下参考资料回答,不要编造”)约束模型输出。
这相当于将模型的回答建立在外部事实支撑之上,而非仅依赖训练数据中的记忆。
-15
踩分点:解释检索来源作为事实依据、Prompt约束机制。
八、结尾总结
核心知识点回顾
| 知识点 | 核心要点 |
|---|---|
| RAG定义 | Retrieval-Augmented Generation,检索增强生成 |
| RAG流程 | 检索器(高召回)→ 排序器(高准确)→ 生成器(事实准确) |
| RAG vs 长上下文 | RAG是检索范式,长上下文是模型记忆容量 |
| RAG vs SFT | RAG是“查资料”,SFT是“灌知识” |
重点强调
RAG的本质是让模型基于外部知识回答,而不是依赖训练记忆;
面试中不要漏说“排序器”模块——这是70%求职者的通病-45;
向量检索、注意力机制是RAG的底层技术支撑,进阶学习要从这些方向深入。
进阶预告
下一篇文章将深入讲解RAG的高级优化技巧,包括:
混合检索:BM25 + 语义检索组合,提升召回率;
Rerank精排:Cross-Encoder模型的原理与应用;
多模态RAG:Kimi K2.5如何支持视觉与文本的联合理解。
参考资料:
月之暗面创始人杨植麟GTC 2026大会演讲《How We Scaled Kimi K2.5》(2026年3月18日)-1
Kimi K2.5技术路线图三维共振:Token效率、长上下文、智能体集群-2
RAG技术详解与代码实践-15-29
