RAG入门-让大模型学会“开卷考试“
一、大模型的三大知识痛点1.1 痛点一知识效率低你以为大模型读了那么多书应该记得很牢实际上模型对知识的记忆效率惊人地低发现 数据记住一个知识点需要的曝光次数 约1000次GPT-4 Turbo本科知识测试准确率 仅73.6%类比大模型就像一个记忆力很差的学生读了100遍才记住一个知识点而且还会记错。1.2 痛点二知识是静态的大模型的知识来自预训练数据有一个致命问题时效性。举例问“2024年世界杯冠军是谁”GPT-4训练数据截止2023年“我无法回答这个问题…”模型不知道实时新闻最新数据训练后发生的事件1.3 痛点三幻觉问题严重最可怕的问题幻觉Hallucination模型会编造看似合理但完全错误的内容真实案例问“请介绍一下《星际穿越》这部电影”模型错误回答“这部电影由詹姆斯·卡梅隆执导…”实际克里斯托弗·诺兰执导模型自信地说出错误信息用户很难辨别二、RAG从闭卷考试到开卷考试2.1 什么是RAGRAGRetrieval-Augmented Generation检索增强生成的核心思想不要让模型死记硬背而是让它现场查资料类比对比类型 比喻 特点传统LLM 闭卷考试 只能依赖记忆可能忘、可能错RAG 开卷考试 可以查资料答案有据可查2.2 RAG的工作原理基本流程image数学表示f: Q × D → AQ 用户问题QueryD 数据源DocumentsA 答案Answer2.3 RAG解决了什么问题 RAG如何解决知识效率低 不需要记住直接检索知识过时 数据库可以实时更新幻觉严重 答案基于真实文档可溯源三、RAG的任务分级3.1 四个难度层级研究人员把RAG任务分为四个层级层级 名称 特点 例子L1 显性事实查询 答案直接在文档中 “复旦大学有几个校区”L2 隐性事实查询 需要推理信息分散在多个文档 “复旦计算机学院和法学院在一个校区吗”L3 可解释推理查询 需要领域推理过程 “根据症状判断可能的疾病”L4 隐性推理查询 缺乏明确推理指导需要深层专业知识 “国际经济形势如何影响公司发展”3.2 难度递增L1最简单问题“公司成立于哪年”文档“公司成立于2010年…”回答“2010年”直接找到L2需要聚合问题“复旦计算机学院和法学院在一个校区吗”文档A“计算机学院在张江校区”文档B“法学院在邯郸校区”回答“不在一个校区计算机学院在张江法学院在邯郸”L3需要推理问题“患者发热、咳嗽、乏力可能是什么病”文档A“流感症状包括发热、咳嗽…”文档B“新冠症状包括发热、咳嗽、乏力…”回答“可能是流感或新冠建议就医确诊”L4最难问题“当前经济形势如何影响公司发展”需要宏观经济知识 行业分析 公司具体情况回答需要深层专业知识可能涉及多步推理四、RAG系统的六大模块4.1 模块概览image4.2 模块一索引模块作用把文档划分成可管理的片段Chunk为什么需要切分文档太长直接检索效率低切分后检索更精准切分方法方法 说明 优点固定长度切分 每块固定字数 简单高效滑动窗口 相邻块有重叠 保持语义连贯语义切分 根据内容逻辑划分 质量高小到大 检索用小块生成用大块 兼顾精准和丰富4.3 模块二检索前优化作用让用户查询更精准更容易找到相关文档优化方法查询扩展原问题“Python如何读取文件”扩展后“Python文件读取方法”“Python open函数用法”“Python读取txt文件”查询改写原问题模糊“那个东西怎么弄”改写后“如何在Python中读取文本文件”3. HyDE方法有趣原问题“什么是机器学习”先让模型脑补一个假设答案然后拿这个假设答案去检索文档为什么因为答案和答案比问题和答案语义更相似4.4 模块三检索模块作用从知识库中找到相关文档三种检索技术类型 原理 优点 缺点稀疏检索 统计关键词匹配TF-IDF/BM25 快、精确词匹配 不理解语义稠密检索 向量语义匹配 深层语义理解 计算成本高混合检索 结合两者 效率与效果兼顾 实现复杂稀疏检索示例文档A“人工智能是一门重要技术”文档B“机器学习是人工智能核心技术”词汇表[“人工智能”, “机器学习”, “技术”]查询“人工智能技术”向量[1, 0, 1]文档A向量[1, 0, 1] → 完全匹配文档B向量[1, 1, 1] → 匹配度较高稠密检索原理查询向量[0.2, 0.8, -0.3, …]语义向量文档A向量[0.21, 0.79, -0.28, …]文档B向量[0.1, 0.5, 0.3, …]计算相似度A比B更相似即使文档A没有机器学习这个词但因为语义接近也能检索出来4.5 模块四检索后优化作用精炼检索结果提升质量为什么要优化检索结果可能包含噪声不相关内容模型对长文本有中间遗忘问题上下文窗口有限优化方法重排序检索结果[文档3, 文档1, 文档5, 文档2]按相似度排序用更精细的模型重新排序[文档1, 文档2, 文档3, 文档5]把最相关的放前面2. 内容压缩原始文档1000字“人工智能是…发展历程…应用领域…”压缩后200字“人工智能是模拟人类智能的技术应用包括…”3. MMR算法在相关性和新颖性之间平衡避免返回内容都太相似。4.6 模块五生成模块作用基于检索结果生成答案核心职责整合多个文档片段控制幻觉不编造忠实于检索内容4.7 模块六编排模块作用智能调度决定流程走向功能路由根据问题类型选择不同处理流程调度动态调整检索和生成融合整合多个分支的结果五、四种设计模式5.1 线性模式最简单image适用简单直接的查询任务5.2 条件模式智能路由image例子医学问题 → 选择可靠来源 严格约束闲聊问题 → 允许创意回答 宽松约束5.3 分支模式并行处理image优点提高全面性和多样性5.4 循环模式迭代优化image适用需要多轮完善的复杂问题六、RAG的评估体系6.1 评估的挑战挑战 说明检索质量难衡量 如何判断找到的文档是否相关生成质量主观 开放式问题没有唯一答案整体协作复杂 检索和生成如何配合6.2 评估指标检索指标指标 说明MRR 平均倒数排名最相关文档排第几Recallk 前k个结果中找到多少相关文档Precision 检索结果中有多少是真正相关的生成指标指标 说明事实准确率 回答是否符合检索文档相关性 回答是否针对问题流畅性 语言是否自然连贯七、RAG的应用场景7.1 企业知识库问答场景企业内部文档、手册、政策查询价值员工快速找到答案减少重复咨询答案有据可查7.2 智能客服场景产品FAQ、售后支持价值自动回答常见问题减少人工客服成本答案准确可溯源7.3 法律/医疗专业问答场景法律条文查询、医学文献检索价值专业领域知识支持减少错误风险提供引用来源7.4 个人知识管理场景个人笔记、文档检索工具Obsidian RAG插件、Notion AI等八、RAG工具推荐8.1 开源框架工具 特点 适用场景LangChain 灵活、组件丰富 自定义RAG系统LlamaIndex 专注数据索引 文档处理Haystack 生产级框架 企业应用8.2 向量数据库数据库 特点Milvus 高性能、开源Pinecone 云服务、易用Chroma 轻量级、嵌入简单Weaviate 支持混合检索8.3 快速实践方案最简单的RAG用LangChain实现简单RAGfrom langchain.vectorstores import Chromafrom langchain.embeddings import OpenAIEmbeddingsfrom langchain.llms import OpenAI1. 加载文档documents load_documents(“my_docs/”)2. 向量化存储vectorstore Chroma.from_documents(documents,OpenAIEmbeddings())3. 创建检索器retriever vectorstore.as_retriever()4. 创建RAG链qa RetrievalQA.from_chain_type(OpenAI(),retrieverretriever)5. 查询answer qa.run(“我的问题是什么”)九、RAG的局限与挑战9.1 检索质量依赖数据如果知识库数据质量差RAG效果也差。常见问题数据不完整数据有错误数据格式不规范9.2 检索效率问题大规模知识库检索可能很慢。解决使用高效向量数据库优化索引结构分层检索策略9.3 多模态扩展困难目前RAG主要处理文本图片、视频检索还不成熟。十、总结RAG的价值RAG让大模型从死记硬背变成开卷考试对比 传统LLM RAG增强LLM知识来源 模型参数 外部知识库更新方式 重新训练 更新数据库答案可信度 可能幻觉 有据可查适用场景 通用知识 专业/实时知识一句话总结

相关新闻

如何统计亿级用户的在线状态

如何统计亿级用户的在线状态

这个问题本质上不是简单的计数问题,而是高并发写入 低延迟读取 海量数据的综合挑战: 写入 QPS 极高:用户上下线事件每秒可达百万级 读取要求极低延迟:毫秒级返回在线人数 数据一致性要求:不能出现明显的在线人数偏差…

2026/10/18 6:53:15 阅读更多 →
Git五大核心命令的本质:从对象模型看rebase、merge、stash、revert与reset

Git五大核心命令的本质:从对象模型看rebase、merge、stash、revert与reset

1. 项目概述:Git五大核心操作的本质与实战边界Git不是魔法,它是一套有明确物理意义的操作系统。我带过十几支开发团队,见过太多人把rebase当万能膏药,把reset --hard当后悔药,结果在周五下午三点毁掉整个发布分支。这五…

2026/10/20 4:17:31 阅读更多 →
【源码】openfeign集成spring-cloud-starter-circuitbreaker-resilience4j 源码分析

【源码】openfeign集成spring-cloud-starter-circuitbreaker-resilience4j 源码分析

依赖 本文源码分析pom依赖如下&#xff0c;版本 3.1.0<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-circuitbreaker-resilience4j</artifactId><version>3.1.0</version></depend…

2026/10/21 10:05:08 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年&#xff0c;我大部分时间都在跟浏览器标签页打交道&#xff0c;直到第一次把桌面应用跑起来&#xff0c;才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词&#xff0c;最开始是在某段时间频繁出现在同事的讨论里&#xff0c;一个用HTML…

2026/10/21 9:32:40 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介&#xff1a;亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档&#xff0c;主要面向智能锁安装人员、终端用户及售后维护者&#xff0c;帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件&#xff0c;大小4.37MB&#xff0c;内容结构清晰&#xff…

2026/10/21 9:32:40 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统&#xff0c;整车要求空载跑到8m/s&#xff0c;电机转速已经拉到额定点&#xff0c;驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令&#xff0c;转速纹丝不动&#xff0c;三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/10/21 9:32:40 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年&#xff0c;用它写过嵌入式驱动、做过游戏服务端&#xff0c;也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词&#xff0c;我其实挺感慨的——这门语言的难点从来不是语法多&#xff0c;而是知识点之间的耦合太深…

2026/10/21 9:32:40 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介&#xff1a;亚太天能T109滑盖智能锁产品说明书以PDF格式发布&#xff0c;适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开&#xff0c;先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能&#xff0c;再给出完整安装步骤&…

2026/10/21 9:32:40 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历&#xff1a;翻开源码注释、论文摘要或者一份专业报告&#xff0c;每个字都认识&#xff0c;连在一起却像天书。想找人聊聊&#xff0c;身边要么没人懂&#xff0c;要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型&#xff0c;几秒钟之后&a…

2026/10/21 9:31:32 阅读更多 →

日新闻

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型&#xff08;GMM&#xff09;的语音识别系统&#xff0c;很多人第一反应就是一堆数学公式&#xff0c;觉得门槛很高。但如果你真的在MATLAB里把它落地跑通&#xff0c;会发现核心其实就是三件事&#xff1a;把声音变成特征向量&#xff0c;用GMM给每个类别…

2026/10/22 1:47:45 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人&#xff0c;但落到具体操作上&#xff0c;无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程&#xff1a;对图像做反白、改调色板、彩色转灰度&#xff0c;最后把像素数据导出成txt文件。单看每一…

2026/10/21 21:32:28 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词&#xff0c;你会发现一个很有意思的现象&#xff1a;每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型&#xff0c;有人指的是运动控制系统&#xff0c;还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/21 4:27:17 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/21 21:50:56 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/21 21:51:55 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/21 16:24:48 阅读更多 →