RAG技术如何解决大模型的“幻觉”?
你有没有遇到过这种尴尬你满怀期待地问大模型一个关于公司内部产品的问题结果它一本正经地给你编了一个完全不存在的功能介绍。或者你让它帮你查最新的行业法规它振振有词地引用了一条早已废止的旧条款——甚至连条款编号都是捏造的。这不是大模型太笨恰恰相反它太聪明了——当它不知道答案时它会基于统计概率创造一个听起来极其合理的回答。学术界把这种现象叫做模型幻觉Hallucination。RAGRetrieval-Augmented Generation检索增强生成就是为了解决这个问题而生的技术方案。它的核心思路简洁到一句话就能说清先去你指定的知识库里搜一遍真实资料然后把搜到的内容和用户的问题打包在一起交给大模型让它基于真实材料来回答。这样做的结果是大模型不再需要凭记忆回答而是看着答案说话——幻觉问题直接从根源上被消灭掉了。RAG 的四大核心价值在理解技术细节之前先回答一个更本质的问题为什么不直接把所有资料都塞给大模型问题纯大模型RAG 方案知识过时只懂训练截止日期之前的事实时对接外部知识库永远不过期一本正经地瞎编不知道就编而且编得特别像只说知识库里有的内容找不到就坦承不知道行业深度不足通用知识广但不够专接上你的行业文档库秒变领域专家无法溯源不知道它的结论从哪来的每个回答都能追溯到具体出处和页码隐私风险你的数据可能要上传到第三方知识库可以完全部署在自己服务器上一句话总结RAG 的本质就是在给大模型开卷考试而不是让它闭卷答题。拆解 RAG 的工作原理三步流水线RAG 三阶段流水线全景图整个 RAG 系统的工作流程可以拆成三个阶段像一条工业流水线一样环环相扣阶段一把你的资料变成可检索的形态在 RAG 能工作之前你需要把原始的 PDF、Word、网页等非结构化文档加工成向量数据库能理解的格式收集整理把分散在各处的文档汇集到一起。切块Chunking把长文档切分成适当大小的段落。这一步非常讲究——切太大了检索不精准切太小了上下文丢失。典型参数是每块 1000 字符左右前后重叠 200 字符确保语义不断裂。向量化Embedding用专门的嵌入模型把每个文本块转换成一串数字向量然后存进向量数据库。这些向量本质上是文本的语义指纹——意思相近的文本向量也会在数学空间里靠得很近。阶段二用户提问时 → 先搜库再答题用户丢过来一个问题后系统先把问题也转成向量然后在向量数据库里做相似度搜索找出和这个问题语义最匹配的 Top-K 个文本块。这步还可以加一层重排序Rerank用更精确的模型对候选结果重新打分排名把最相关的推到最前面。阶段三打包提问 → 大模型生成回答把筛选出来的相关文档片段和用户原始问题拼在一起组成一个增强版的 Prompt 交给大模型。此时大模型完全是在**“看着参考资料答题”**回答的准确性和可信度会大幅提升。 所以 RAG 的本质极其简单——它就是帮你重新组装了一个更好的 Prompt。Embedding 模型怎么选一张表搞清楚向量化这一步用什么模型直接决定了检索的质量。以下是当前主流 Embedding 模型的对比通用场景模型来源特点最佳场景BGE-M3智源研究院100 语言、8192 tokens、混合检索跨语言长文档text-embedding-3-largeOpenAI3072 维、英文表现拔尖英文场景优先jina-embedding-v2-smallJina AI仅 35M 参数、RT50ms轻量级实时推理中文专精模型特点最佳场景M3E-Base中文优化、轻量部署法律、医疗等细分领域xiaobu-embedding-v2中文语义理解能力强分类、语义检索gte-Qwen2-7B基于通义千问、支持代码跨模态复杂指令驱动、智能问答选型建议如果你的知识库主要是中文内容且对部署成本敏感M3E-Base是性价比之王。如果需要处理多语言混合内容直接上BGE-M3。实战从零搭建 PDF 知识库问答系统说了这么多理论我们来写一个完整可运行的 RAG 系统。技术栈组件选型为什么选它向量数据库FaissMeta 开源、小巧快速、纯本地运行EmbeddingDashScope text-embedding-v1阿里云产品、中文质量优秀、有免费额度大模型DeepSeek-V3性价比极高、中文推理能力一流文档处理PyPDF2简单直接的 PDF 文本提取编排框架LangChain生态完善、社区活跃核心处理流程整个系统分三步走第一步PDF 文档预处理PDF文件 → 逐页提取文本 → 按 1000 字符切块重叠 200→ 记录每个块对应的页码第二步构建向量索引文本块 → DashScope Embedding 向量化 → 写入 Faiss 索引 → 持久化到磁盘第三步问答查询用户提问 → 问题向量化 → Faiss 检索 Top-K 相似块 → 拼装 Prompt → DeepSeek 生成回答关键代码片段安装依赖pip install pypdf2 dashscope langchain langchain-openai langchain-community faiss-cpuPDF 文本提取附页码追踪from PyPDF2 import PdfReaderdef extract_text_with_pages(pdf_path): reader PdfReader(pdf_path) text, page_map , [] for i, page in enumerate(reader.pages, 1): content page.extract_text() or text content page_map.extend([i] * len(content)) return text, page_map文本切块from langchain.text_splitter import RecursiveCharacterTextSplittersplitter RecursiveCharacterTextSplitter( chunk_size1000, chunk_overlap200, separators[\n\n, \n, , ] # 优先在段落→句子边界切分)chunks splitter.split_text(raw_text)构建 Faiss 向量索引from langchain_community.embeddings import DashScopeEmbeddingsfrom langchain_community.vectorstores import FAISSembeddings DashScopeEmbeddings(modeltext-embedding-v1)vectorstore FAISS.from_texts(chunks, embeddings)vectorstore.save_local(./knowledge_base)执行问答from langchain.chains.question_answering import load_qa_chainfrom langchain_openai import ChatOpenAIllm ChatOpenAI(modeldeepseek-chat, temperature0)chain load_qa_chain(llm, chain_typestuff)query 这份文档的核心结论是什么docs vectorstore.similarity_search(query, k4)answer chain.run(input_documentsdocs, questionquery)四种问答链策略深度对比四种问答链策略信息密集对比LangChain 提供了四种不同的文档组合策略选错了策略会直接影响回答质量和成本。这张对比表帮你一目了然策略工作方式LLM调用次数优势劣势最佳场景stuff所有文档直接拼成一个大 Prompt1 次最简单、最快、成本最低文档太多会超 token 上限检索结果少且精速度优先map_reduce每个文档分别提问 → 汇总结果再生成N1 次能处理海量文档可并行成本高丢失跨文档上下文多源信息归纳、报告生成refine逐个文档递进式迭代优化答案N 次保留跨文档逻辑链必须串行早期错误会累积文档间有递进关系map_rerank每个文档独立评分 → 取最高分答案N 次精准度高过滤噪声只取单一最佳可能漏信息事实查询型问题选型建议• 90% 的场景直接用stuff就够了——因为 RAG 的检索步骤已经帮你筛选了最相关的少量文档。• 只有在做长篇报告综合归纳时才考虑map_reduce。•refine适合法律条款解读这类需要层层递进的场景。一个灵魂拷问上下文窗口无限大之后 RAG 还有用吗纯大模型 vs RAG 方案五维对比随着 Gemini、Claude 等模型的上下文窗口越来越大动辄百万 token有人开始质疑 RAG 是否还有存在的必要。答案是依然有而且不可替代。理由有五成本与速度即使模型能吃下 100 万 token处理一次的算力费用和响应延迟也会高得吓人。RAG 只喂精准的几千 token又快又便宜。实时更新模型的知识永远停留在训练数据截止日。你昨天新发布的产品文档只有 RAG 能让模型立刻学会。可解释性RAG 的检索过程是透明的用户可以看到这个回答基于文档第 X 页。纯大模型生成的内容你无法追溯来源。领域定制通用大模型解决不了的垂直领域精度问题RAG 专业知识库可以。数据主权把敏感的企业文档全量喂给第三方 API你的合规部门不会同意的。RAG 可以完全在你自己的服务器上跑。动手试试吧选一份你工作中经常需要翻阅的 PDF比如产品手册、技术文档、合同范本跟着上面的代码跑一遍。你会明显感受到有了 RAG 加持的大模型回答质量完全是另一个量级——它不再创作而是在引用。这才是 AI 真正可靠的打开方式。普通人如何抓住AI大模型的风口领取方式在文末为什么要学习大模型目前AI大模型的技术岗位与能力培养随着人工智能技术的迅速发展和应用 大模型作为其中的重要组成部分 正逐渐成为推动人工智能发展的重要引擎 。大模型以其强大的数据处理和模式识别能力 广泛应用于自然语言处理 、计算机视觉 、 智能推荐等领域 为各行各业带来了革命性的改变和机遇 。目前开源人工智能大模型已应用于医疗、政务、法律、汽车、娱乐、金融、互联网、教育、制造业、企业服务等多个场景其中应用于金融、企业服务、制造业和法律领域的大模型在本次调研中占比超过30%。随着AI大模型技术的迅速发展相关岗位的需求也日益增加。大模型产业链催生了一批高薪新职业人工智能大潮已来不加入就可能被淘汰。如果你是技术人尤其是互联网从业者现在就开始学习AI大模型技术真的是给你的人生一个重要建议最后只要你真心想学习AI大模型技术这份精心整理的学习资料我愿意无偿分享给你但是想学技术去乱搞的人别来找我在当前这个人工智能高速发展的时代AI大模型正在深刻改变各行各业。我国对高水平AI人才的需求也日益增长真正懂技术、能落地的人才依旧紧缺。我也希望通过这份资料能够帮助更多有志于AI领域的朋友入门并深入学习。真诚无偿分享vx扫描下方二维码即可加上后会一个个给大家发【附赠一节免费的直播讲座技术大佬带你学习大模型的相关知识、学习思路、就业前景以及怎么结合当前的工作发展方向等欢迎大家~】大模型全套学习资料展示自我们与MoPaaS魔泊云合作以来我们不断打磨课程体系与技术内容在细节上精益求精同时在技术层面也新增了许多前沿且实用的内容力求为大家带来更系统、更实战、更落地的大模型学习体验。希望这份系统、实用的大模型学习路径能够帮助你从零入门进阶到实战真正掌握AI时代的核心技能01教学内容从零到精通完整闭环【基础理论 →RAG开发 → Agent设计 → 模型微调与私有化部署调→热门技术】5大模块内容比传统教材更贴近企业实战大量真实项目案例带你亲自上手搞数据清洗、模型调优这些硬核操作把课本知识变成真本事02适学人群应届毕业生无工作经验但想要系统学习AI大模型技术期待通过实战项目掌握核心技术。零基础转型非技术背景但关注AI应用场景计划通过低代码工具实现“AI行业”跨界。业务赋能突破瓶颈传统开发者Java/前端等学习Transformer架构与LangChain框架向AI全栈工程师转型。vx扫描下方二维码即可【附赠一节免费的直播讲座技术大佬带你学习大模型的相关知识、学习思路、就业前景以及怎么结合当前的工作发展方向等欢迎大家~】本教程比较珍贵仅限大家自行学习不要传播更严禁商用03入门到进阶学习路线图大模型学习路线图整体分为5个大的阶段04视频和书籍PDF合集从0到掌握主流大模型技术视频教程涵盖模型训练、微调、RAG、LangChain、Agent开发等实战方向新手必备的大模型学习PDF书单来了全是硬核知识帮你少走弯路不吹牛真有用05行业报告白皮书合集收集70报告与白皮书了解行业最新动态0690份面试题/经验AI大模型岗位面试经验总结谁学技术不是为了赚$呢找个好的岗位很重要07 deepseek部署包技巧大全由于篇幅有限只展示部分资料并且还在持续更新中…真诚无偿分享vx扫描下方二维码即可加上后会一个个给大家发【附赠一节免费的直播讲座技术大佬带你学习大模型的相关知识、学习思路、就业前景以及怎么结合当前的工作发展方向等欢迎大家~】