01、什么是RAG?
RAG简单来说就是给予LLM的一些增强。
• 引入新的信息,这些信息可能不在LLM中。
• 使用RAG控制内容来减少幻觉(模型生成与现实不符的输出),这是RAG的一个常见用途。通常的用例是提供内容给模型,并指示它仅使用该内容来回答问题,不使用LLM自有的知识,以此限制回答来自特定的知识库,减少幻觉。
简单来说,RAG主要是由检索和生成两个阶段组成:
• 检索阶段:在检索阶段,算法搜索并检索与用户提示或问题相关的信息片段,向量数据中查找与Query相关的数据。
• 生成阶段:大模型从增强提示及其训练数据的内部表示中提取信息,以在那一刻为用户量身定制引人入胜的答案。
那么,基于RAG的提升方法也是从这两个极端来实现,接下来会用更简单通俗的方法讲解一下RAG存在的痛点和解决方法。
02、检索阶段:痛点和解决方案
1、痛点一:检索质量低
RAG 模型严重依赖于检索到的上下文文档的质量。如果检索器无法找到相关的事实段落,就会严重妨碍模型根据有用信息并产生准确、深入的响应的能力。
特别是现在,稀疏向量检索在语义匹配和检索高质量文档存在困难。
解决方案:
• 增强目标域的相关性:通过监督训练信号或模型反馈来微调检索器。
• 采用 DPR 或 ANCE 等模型的密集检索器模型,以获得更高的召回率和相关性。
• 尝试使用多向量表示、近似最近邻搜索和最大内积搜索来不影响准确性的情况下提高检索速度。
• 为了真实性,使用可信度指标检索权威、值得信赖的来源。
2、痛点二:覆盖范围不足
虽然外部知识对于高质量的 RAG 输出是必不可少的,但即使是最大的语料库也无法完全覆盖用户可能查询的实体和概念。如果无法访问全面的知识源,该模型就会返回对利基或新兴主题的无知、通用的响应。
解决方案:
• 通过集合不同来源的文档来扩展语料库,以增加覆盖的可能性。
• 设计模块化架构以添加/更新知识源,而无需完全重新培训。
• 增加实时检索来覆盖运行时候文档覆盖度
3、痛点三:情境调节困难
即使具有良好的检索能力,RAG 模型也常常难以正确地调节上下文文档并将外部知识合并到生成的文本中。如果没有有效的情境调节,就无法产生具体的、真实的反应。
解决方案:
• 通过专用的交叉注意力转换器层加强情境化。
• 具有自我监督目标的预训练语言模型,用于训练外部文本。
• 使用更好的情感实体分析方法。
4、痛点四:有效内容划分
对于新增加的文档而言,RAG模型确定所需要检索的内容并用于生成是十分困难的,特别是针对长内容的处理。这就需要针对新增加的信息进行清洗和划分。
解决方案:
• 更好的数据清洗方法,清理文档无效内容和隐私内容。
• 调整上下文数据分块大小,较小的块通常可以改善检索,但可能会导致生成过程缺乏周围的上下文
5、痛点五:高质量文本排名
在检索源数据时候,需要有效的方法给检索的数据进行排名,找到最想相关的数据才能更好的得到内容。
解决方案:
-
将元数据添加到块中,使用他们来帮助处理结果,包括日期、标记等
-
增加多样性和相关性来进行排序器
-
重新排名是解决相似性和相关性之间差异问题的一种解决方案
03、生成阶段:痛点和解决方案
1、痛点一:幻觉问题
由于过度依赖语言模型先验,RAG 模型经常生成看似合理但完全错误或不忠实的语句,而没有在检索到的上下文中进行验证。
解决方案:
• 通过训练信号直接最小化产生幻觉文本的可能性。
• 根据与上下文的不匹配自动检测制造。
• 对检索到的文档使用可信度指标,以防止对不可靠来源的限制。
• 通过将优化重点放在上下文基础上来削弱语言模型先验。
2、缺乏可解释性
与传统的 QA 系统不同,RAG 模型无法了解生成文本背后的推理。模型的可解释性仍然是含蓄和不透明的,而不是明确的。
解决方案:
• 设计模型架构,以结构化链/图的形式明确跟踪证据和解释。
• 实施辅助头来预测解释性证据,例如显着数据生成源的内容片段。
• 在每个生成步骤附加有意义的上下文标签以跟踪来源。
• 通过引用内容来源来生成描述推理的自然语言解释。
• 总结查询和上下文之间证明响应合理性的关键语义联系。
3、痛点三:推理速度慢
检索与生成的耦合阻碍了 RAG 模型与标准语言模型的延迟匹配。推理管道缺乏对需要毫秒响应的实时应用程序的优化。
解决方案:
• 优化标记化、编码和检索推理,以最大程度地减少生成之前的开销。
• 使用 NMSLIB、FAISS 或 ScaNN 等库采用高效的近似最近邻索引。
• 利用模型并行性和批量检索+生成来提高管道效率。
• 设计模型蒸馏方法,以最小的质量损失压缩检索器-生成器。
• 尽可能将检索转移到离线状态,以避免运行时瓶颈。
4、个性化落地难
在通用语料库上训练的 RAG 模型缺乏针对特定用户需求、上下文和查询生成响应的能力。如果没有个人理解,他们无法解决模棱两可的信息请求。
解决方案:
• 设计角色上下文记忆来跟踪对话中的用户配置文件和上下文。
• 在匹配目标用户的标记查询->响应对上微调 RAG 模型。
• 对先前对话和用户反馈进行多任务训练。
• 利用元学习开发少量的个性化技术。
• 构建用户特定的扩展模块来补充检索语料库。
5、痛点五:质量评估难
可能的接地响应的多样性使得使用自动化指标可靠地评估 RAG 模型输出的正确性和质量变得具有挑战性。人类评估也缺乏可扩展性。这阻碍了迭代改进。
解决方案:
• 生成带有专家原理的带注释的测试集,以实现标准化评估。
• 根据语义而不是 n 元语法重叠开发专门的指标。
• 通过有针对性的自动评估,分别量化相关性、连贯性、一致性等关键轴。
• 利用用户反馈信号作为个性化质量判断来设计在线学习方案。
• 构建以注释而不是数字分数为中心的交互式评估界面。
04、RAG的评价指标
在RAG架构中会存在一下评价指标:
• 真实性:判断生成内容是否与事实一致
• 答案相关性:答案与提示的相关性
• 上下文精度:检查相关块的排名是否较高。
• 上下文回忆:比较真实情况与上下文,检查是否检索到所有相关信息
• 上下文实体召回:评估检索到的上下文中存在的实体数量与真实值
• 上下文相关性:检索到的上下文与提示的相关性
• 答案语义相似度:生成的答案与实际答案在语义上的相似程度
• 答案正确性:评估生成答案与实际答案的准确性和一致性。
05、总结
RAG 是一种很有前途的提高 LLM 准确性和可靠性的方法,具有事实依据、减少偏见和降低维护成本等优点。虽然未知识别和检索优化等领域仍然存在挑战,但正在进行的研究正在突破RAG 功能的界限,并为更值得信赖和信息丰富的LLM应用铺平道路。
如何学习大模型 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 的正确特征了。