🚀 RAG 优化六大策略归纳
1. 🔍 查询优化 (Query Optimization)
查询优化主要解决用户输入查询中的歧义和信息不足的问题,确保查询能够准确命中知识库。
1.1. 指代消解问题
针对用户查询中出现的代词(如“它”、“这个”),导致语义不明确的问题,采取以下措施:
- 意图识别:通过增加共识实体词,帮助模型理解上下文。
- 压缩上下文:拼接用户历史
query,确保查询语义完整。 - 引入工具:利用工具改写查询,以消除代词带来的歧义。
- 迭代策略:没有办法完全避免,只能多收集 badcase 进行迭代优化。
1.2. 信息本身无法命中知识库
针对查询内容过于宽泛或过于具体而无法匹配知识库的问题:
- 问题归类:抽取类型实体词,进行针对性匹配。
- 问题升维:扩充高层次关键词,增加召回范围。
- 问题降维:扩充低层次关键词,提高匹配精准度。
- 参考项目:建议拆解LightRAG、MiniRAG、RAGFlow项目中优化查询相关的提示词。
2. 📚 知识库优化 (Knowledge Base Optimization)
知识库的质量是 RAG 效果的基石,重点在于文档和分段的精细化处理,以及向量嵌入模型的合理选择。
2.1. 文档精细化处理
Why:对原始文档原料进行清洗,确保输入质量。
How:
- 文档转 MD 工具:Markdown 是大模型默认输出格式,所有模型都能精确识别。具体工具如下:
- Marker:大模型出现之前的工具。
- MinerU:大模型处理专用,本地部署配置要求高(至少 内存 + 显存 + 存储)。
- MarkItDown:微软出品,需调用收费 API 使用。
- Docling:付费;免费版本地运行配置要求高。
- Dolphin:字节跳动的工具。
- 注:以上具体效果建议看测评结果。
- 文档中表格处理:使用 Markdown 格式表达。
- 文档中图片处理:
- 避免 Badcase:Word 图片以 base64 存储,会占用大量 token。
- 统一格式:使用 Markdown 格式
文本格式表示图片。 - 一致性:文本理解和图片理解的向量嵌入模型要保持一致。
2.2. 分段精细化处理
What:提升分段信息的丰富度。
Why:便于分段能够正确的被召回。
How:
- 关键词提取。
- 问题提取。
- 推荐拆解RAGFlow项目。
2.3. 向量嵌入模型合理选型
模型关键指标:
- 参数量:代表模型的知识面/精细程度。
- 维度:代表模型的颗粒度。
- 上下文长度:决定最大可分段长度。
- 选型建议:参考 Huggingface 实时更新的测评榜单,重点关注Retrieval指标,实际选型应依赖自主测评。
3. 🧭 检索策略优化 (Retrieval Strategy Optimization)
根据查询类型,选择最合适的检索方式:
- 关键词检索:适用于生僻词、专有名词、简短问题、结构化查询。
- 语义检索:适用于口语化表达、长句检索、多语言检索。
4. 🎣 召回优化 (Recall Optimization)
当 Embedding 模型效果不理想时,需要通过后处理手段提升召回结果的质量。
Why:Embedding 模型效果不理想。
How:
- 重排序:
- 使用 Rerank 模型重新打分(有些嵌入模型自带该功能)。
- 阈值调整:
- 高阈值:答案分段质量高,但可能召回少。
- 低阈值:分段碎、关联差,但召回全。
- 策略:具体落地取决于实际业务场景和需求。
5. 🛡️ 提示词兜底优化 (Prompt Fallback Optimization)
针对不同的召回情况,设计专门的 Prompt 进行处理:
- 未召回答案:如果
<knowledge>标签内为空,回复“这个问题暂未被收录”。 - 答案冗余或无效:
- 仔细分析、辨识
<knowledge>标签内的内容,识别其中与问题相关内容,编辑后回答用户。 - 如果内容与问题不相关,则回复特定话术。
- 召回答案残缺:仔细分析、辨识
<knowledge>标签内的内容,确保它们可以完整的回答用户的问题;如果内容残缺则回复“信息缺失,请联系…”。 - 包含图片:以 Markdown
(<img>)标记的图片为问题的支持资料,请保留你选取答案前后的图片表达式,确保它们可以正常显示。
6. 🤖 模型选型优化 (Model Selection Optimization)
选择合适的 LLM 模型作为生成器,是 RAG 流程的最后一步关键优化。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(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 的正确特征了。