
大语言模型因知识截止日期问题存在幻觉现象无法回答最新信息。本文介绍RAG检索增强生成技术通过构建索引、检索召回和答案生成三环节使大模型能实时查询外部知识库解决幻觉问题。涵盖文档分块、向量化、向量数据库选择、查询向量化、混合检索、重排序、Prompt组装、上下文窗口管理及溯源等技术细节帮助读者全面理解RAG流程。大语言模型这几年进步飞快但在实际落地时有一个绕不开的短板知识截止日期。训练数据停在某个时间点之后发生的事情模型一概不知。问它你们公司的内部 Wiki 里怎么写接口规范问它上周刚发布的竞品文档里说了什么模型只能原地编。这种看上去很合理、实际上全瞎编的现象大家已经给它起了名字——幻觉。RAGRetrieval-Augmented Generation检索增强生成就是冲着这个问题来的。思路不算复杂不给模型死记硬背给它配一个可以实时查询的外部知识库。每次提问系统先去库里翻找相关材料找到之后连同问题一起丢给模型让模型对照材料来回答。这一整套流程拆开来就是三个环节索引构建、检索召回、答案生成。下面逐个拆开看。索引构建先把知识装进库知识库不会自己长出来。把文档变成可检索的知识要走三步分块、向量化、存库。1.1 文档分块一份产品手册可能有好几十页直接整篇丢进去做索引效果很差——用户问的是一个具体问题只在其中两三段里有答案剩下几十页全是噪音。分块就是把长文档切成一截一截的片段chunk每截单独建索引。这样检索时命中的是相关的那几句整篇文档里的无关内容不会掺进来。分块有几种做法固定大小分块按字符数或 token 数切比如每 512 token 一段。实现最简单但可能在句子中间下刀语义连不上。滑动窗口分块相邻两块之间留一段重叠比如每块 512 token跟前一块重叠 128 token。重叠区能兜住边界上的语义不会因为切在句子中间就丢了信息。递归分块按优先级试不同的分隔符——先找段落/n/n段落太长了再找句子/n句子还太长就按空格。这种方式能顺着文档的自然结构切比固定大小聪明不少。语义分块用 Embedding 模型算相邻句子的语义相似度在相似度跳变的地方下刀。一段讲模型训练下一段突然跳到推理部署相似度暴跌系统在这里切一刀。好处是每个 chunk 内部主题统一坏处是计算开销大。块的大小本身就是一个需要权衡的参数。太小了片段里语义不完整太大了无关信息混进去稀释信号。512~1024 token 是一个比较常见的选择区间具体还得看 Embedding 模型支持多长的输入、以及文档是哪种类型。1.2 向量化切完块之后每段文字得变成机器能算的格式——向量。这一步用的模型叫 Embedding 模型输入一段文字输出一个固定长度的浮点数向量比如 768 维。向量化的妙处在这里语义相近的文本在向量空间里的位置也近。“苹果手机多少钱和iPhone 最新售价”用词完全不同但经过 Embedding 之后两个向量在高维空间里的余弦相似度很高。这就是语义检索能跑通的基础。选哪个 Embedding 模型直接影响检索质量。几个常用选项text-embedding-3-smallOpenAI 出品512 或 1536 维性价比高中文支持不差BGE-M3BAAI 开源1024 维中文和多语言场景表现优秀输入最长能到 8192 tokenBCEmbedding有道开源768 维中文检索和重排序配对使用效果好Cohere embed-v31024 维支持向量压缩多语言场景够用维度越高语义表达能力越强但存储和计算也跟着涨。实践中 768 到 1024 维已经够应付多数场景了。1.3 向量数据库几万、几十万个向量存进去之后要能快速检索跟这个查询向量最像的前 K 个。传统数据库MySQL、PostgreSQL不会干这活——它们的索引是为精确匹配建的不是为相似度搜索建的。向量数据库用了近似最近邻搜索ANN算法来加速。与其逐一计算查询向量和库里每个向量的距离ANN 先在速度和精度之间找个平衡点用极小的精度代价换数量级的查询提速。常用的 ANN 算法有两个HNSW分层可导航小世界图和 IVF倒排文件索引。HNSW 建了一个多层图结构高层稀疏、低层密集查询时从高层粗定位逐层往下精搜。IVF 先把向量做聚类查询时只在最近的几个聚类中心附近搜。主流选择有 Milvus功能全、社区活跃、QdrantRust 实现性能强悍、Weaviate支持向量关键词混合检索、PineconeSaaS 模式零运维还有轻量级的 Chroma 适合做原型。检索环节从库里面翻出对的东西知识库建好了用户提问时系统的第一件事就是把问题转成向量在库里翻找最相关的片段。2.1 查询向量化用户的问题得先过一遍跟文档向量化同一个 Embedding 模型。不同模型输出的向量坐标系不一样混用了检索就全乱了。查询向量出来后在向量库里跑相似度搜索。三种常用的度量方式余弦相似度衡量两个向量方向的接近程度范围 [-1, 1]。RAG 里最常用的一种因为它不挑向量长度长文本和短文本能公平比较。欧氏距离直接算两个向量在空间里的直线距离值越小越像。适合向量长度差不多的场景。内积对应位置元素乘起来再加总。归一化之后的向量内积就等于余弦相似度。Top-K 设多大要看场景。K 太小漏关键信息K 太大混进噪音还浪费 token 预算。实践中经常取 3 到 10配合其他策略灵活调。2.2 不止一种检索方式纯向量检索在大方向上够用但有些场景会露怯遇到精确的日期、ID、专有名词向量检索就不如关键词检索准。混合检索是常见的解法向量检索负责语义层面的匹配BM25 这类关键词检索负责精确命中的部分两路结果合并排序。重排序Reranking 再往前推了一步。向量检索召回的 Top-K 里排第一的不一定真是最相关的。重排序模型Cross-Encoder把问题 文档成对丢进去算分比 Embedding 的双塔结构精细不少——双塔是问题和文档各自算向量Cross-Encoder 直接让两者在模型内部交互一次。排序准了但计算开销也明显大了。到了企业级场景多路召回 融合排序更常见。部署好几路检索器——语义检索、关键词检索、知识图谱检索——各路独立召回 Top-N最后用 RRFReciprocal Rank Fusion统一排一版结果。架构复杂了但召回覆盖率上了好几个台阶。生成环节拼上下文输出答案Top-K 片段到手了下一步是把它们塞到 Prompt 里让模型对着资料回答。3.1 Prompt 怎么拼检索结果不能原样丢进去得按一个结构化的模板组装。一个典型的 RAG Prompt 长这样bash基于以下参考资料回答问题。如果参考资料不包含相关信息请说明无法回答。 参考资料 --- {片段1} {片段2} {片段3} --- 问题{用户提问}这里面有几个细节值得留意明确告诉模型只参考给出的这些材料降低它自行发挥的空间用分隔符---把资料和指令隔开避免 Prompt 注入给出兜底行为——“找不到就直说”防止模型在没资料时硬编3.2 上下文窗口是有限的LLM 的上下文窗口再大也不是无限的RAG 场景下塞进去的检索结果经常占大头。怎么分配 token 预算直接影响生成质量。几个实用的做法控制片段长度对过长的检索结果做截断按 Token 数裁到可管理的范围。相关性排序把最相关的片段放在 prompt 前面——模型对开头和结尾的关注度天然更高。去重多段检索结果可能包含重复内容去重之后省出来的空间能塞进更多差异化的信息。3.3 生成和溯源模型拿到组装好的 Prompt 后跟普通对话有本质区别——它进入了阅读理解模式从给的素材里提取答案对照着资料来回话。工程上做到位的话还会给每个检索片段打上来源标记——文档 ID 或者 URL——并要求模型在回答里标注引用。用户追问这句是从哪里来的可以直接定位到原文。在医疗、法律、金融这些合规敏感的场景里这一点比回答本身还重要。下面是一段简化的 Python 流程示意把上面讲的几步串起来pythonimport numpy as np # 查询向量化 defquery_to_vector(query, embedder): return embedder.encode(query) # 检索 Top-K defretrieve(query_vector, vector_db, top_k5): # 用余弦相似度 similarities np.dot(vector_db.vectors, query_vector) similarities / (np.linalg.norm(vector_db.vectors, axis1) * np.linalg.norm(query_vector)) top_indices np.argsort(similarities)[-top_k:][::-1] return [vector_db.chunks[i] for i in top_indices] # 组装 Prompt defbuild_prompt(query, chunks): context /n/n.join( [f## 片段 {i1}/n{c}for i, c inenumerate(chunks)] ) return ( f请基于以下参考资料回答问题/n/n f{context}/n/n f问题{query}/n/n f如参考资料中无相关信息请说明无法回答。 ) # 完整流程 defrag_pipeline(query, embedder, vector_db, llm): q_vec query_to_vector(query, embedder) chunks retrieve(q_vec, vector_db, top_k5) prompt build_prompt(query, chunks) return llm.generate(prompt)检索是上游Prompt 是桥生成是下游。上游歪了下游的模型再强也救不回来。写在最后RAG 的全流程可以压缩成一句话让大模型从靠记忆答题切换到翻资料作答。三个环节每个都跟最终效果直接挂钩索引构建是地基。分块策略影响语义的完整程度Embedding 模型影响语义表达有多准向量数据库影响检索跑多快。哪一步没做好后面全打折扣。检索召回是桥梁。从基础向量检索到混合检索、重排序、多路融合每一步都在追问同一个问题——“找到的东西对不对”。实践中单一策略几乎总会漏掉点什么组合使用才是日常。生成环节是所有前置工作的出口。Prompt 模板的目标很朴素让模型清楚什么时候回答、什么时候老老实实说不知道。上下文窗口管理则是上线之后持续调优的主战场。理解整条管道的全貌是搭好 RAG 系统的第一步。如何学习大模型 AI 由于新岗位的生产效率要优于被取代岗位的生产效率所以实际上整个社会的生产效率是提升的。但是具体到个人只能说是“最先掌握AI的人将会比较晚掌握AI的人有竞争优势”。这句话放在计算机、互联网、移动互联网的开局时期都是一样的道理。我在一线互联网企业工作十余年里指导过不少同行后辈。帮助很多人得到了学习和成长。我意识到有很多经验和知识值得分享给大家也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限很多互联网行业朋友无法获得正确的资料得到学习提升故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】为什么要学习大模型我国在A大模型领域面临人才短缺,数量与质量均落后于发达国家。2023年人才缺口已超百万凸显培养不足。随着AI技术飞速发展预计到2025年,这一缺口将急剧扩大至400万,严重制约我国AI产业的创新步伐。加强人才培养,优化教育体系,国际合作并进是破解困局、推动AI发展的关键。大模型入门到实战全套学习大礼包1、大模型系统化学习路线作为学习AI大模型技术的新手方向至关重要。 正确的学习路线可以为你节省时间少走弯路方向不对努力白费。这里我给大家准备了一份最科学最系统的学习成长路线图和学习规划带你从零基础入门到精通2、大模型学习书籍文档学习AI大模型离不开书籍文档我精选了一系列大模型技术的书籍和学习文档电子版它们由领域内的顶尖专家撰写内容全面、深入、详尽为你学习大模型提供坚实的理论基础。3、AI大模型最新行业报告2025最新行业报告针对不同行业的现状、趋势、问题、机会等进行系统地调研和评估以了解哪些行业更适合引入大模型的技术和应用以及在哪些方面可以发挥大模型的优势。4、大模型项目实战配套源码学以致用在项目实战中检验和巩固你所学到的知识同时为你找工作就业和职业发展打下坚实的基础。5、大模型大厂面试真题面试不仅是技术的较量更需要充分的准备。在你已经掌握了大模型技术之后就需要开始准备面试我精心整理了一份大模型面试题库涵盖当前面试中可能遇到的各种技术问题让你在面试中游刃有余。适用人群第一阶段10天初阶应用该阶段让大家对大模型 AI有一个最前沿的认识对大模型 AI 的理解超过 95% 的人可以在相关讨论时发表高级、不跟风、又接地气的见解别人只会和 AI 聊天而你能调教 AI并能用代码将大模型和业务衔接。大模型 AI 能干什么大模型是怎样获得「智能」的用好 AI 的核心心法大模型应用业务架构大模型应用技术架构代码示例向 GPT-3.5 灌入新知识提示工程的意义和核心思想Prompt 典型构成指令调优方法论思维链和思维树Prompt 攻击和防范…第二阶段30天高阶应用该阶段我们正式进入大模型 AI 进阶实战学习学会构造私有知识库扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架抓住最新的技术进展适合 Python 和 JavaScript 程序员。为什么要做 RAG搭建一个简单的 ChatPDF检索的基础概念什么是向量表示Embeddings向量数据库与向量检索基于向量检索的 RAG搭建 RAG 系统的扩展知识混合检索与 RAG-Fusion 简介向量模型本地部署…第三阶段30天模型训练恭喜你如果学到这里你基本可以找到一份大模型 AI相关的工作自己也能训练 GPT 了通过微调训练自己的垂直大模型能独立训练开源多模态大模型掌握更多技术方案。到此为止大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗为什么要做 RAG什么是模型什么是模型训练求解器 损失函数简介小实验2手写一个简单的神经网络并训练它什么是训练/预训练/微调/轻量化微调Transformer结构简介轻量化微调实验数据集的构建…第四阶段20天商业闭环对全球大模型从性能、吞吐量、成本等方面有一定的认知可以在云端和本地等多种环境下部署大模型找到适合自己的项目/创业方向做一名被 AI 武装的产品经理。硬件选型带你了解全球大模型使用国产大模型服务搭建 OpenAI 代理热身基于阿里云 PAI 部署 Stable Diffusion在本地计算机运行大模型大模型的私有化部署基于 vLLM 部署大模型案例如何优雅地在阿里云私有部署开源大模型部署一套开源 LLM 项目内容安全互联网信息服务算法备案…学习是一个过程只要学习就会有挑战。天道酬勤你越努力就会成为越优秀的自己。如果你能在15天内完成所有的任务那你堪称天才。然而如果你能完成 60-70% 的内容你就已经开始具备成为一名大模型 AI 的正确特征了。这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】