在大模型应用中,如何提升RAG(检索增强生成)的能力?

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 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/28870.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue47-修改默认配置webpack.config.js文件

main.js是脚手架项目的入口文件,系统运行时,默认去找src下的main.js文件。这是webpack通过配置文件:webpack.config.js配置的。 脚手架把所有重要的配置文件都隐藏了,方式被开发者修改。 一、查看被隐藏的webpack配置 1-1、webpa…

网线不通?瞅瞅这里----关于交叉网线的原理。

最近搞了个项目,UDP对接UDP,死活对接不上。 最后发现是交叉网线的事情,在此记录交叉网线的原理。 先说结论:不同设备用直连,相同设备用交叉网线 细说说 1.原理 网线的原理实际就是TX与RX对接。 正常一个设备同时有…

vue3 使用 watch 时陷入了个直觉陷阱

场景:在vue中,使用watch 的场景是很常见的。编写业务代码时,需要监听一个或多个值的变化时,经常性会使用watch,日常使用就不提了,直入主题,来一段使用watch的简单代码,有一定前端水平…

秘密背后的秘密-高速PCB的层叠确认时,工厂为何不写铜箔类型

一博高速先生成员:王辉东 “三面青山一面湖,无尽烟波画舫浮。”说的是巢湖,到了合肥怎能不去巢湖看看呢。 周末休息,大刚说我开车,小胡(丽华)说我也去。 大刚说走就走,秒开车&…

关于使用命令行打开wps word文件

前言 在学习python-docx时,想在完成运行时使用命令行打开生成的docx文件。 总结 在经过尝试后,得出以下代码: commandrstart "C:\Users\86136\AppData\Local\Kingsoft\WPS Office\12.1.0.16929\office6\wps.exe" "./result…

函数的一点点习题

1、利用递归计算0-n的和 #include <stdio.h> #include <string.h> #include <stdlib.h> int rec(int n) {if(n0)return 0;elsereturn nrec(n-1); } int main(int argc, const char *argv[]) {int n0;printf("please enter n:");scanf("%d&quo…

Postgresql配置SSL连接

1、系统需要有openssl、openssl-devel包 yum -y install openssl openssl-devel 2、查看当前数据库是否使用openssl编译 pg_config|grep CONFIGURE 如果没有重新编译 make clean make && make install 3、服务器端证书配置 服务器端需生成三个文件: root.crt(根证…

Vue路由讲解-05

这里的路由并不是指我们平时所说的硬件路由器&#xff0c;这里的路由就是SPA&#xff08;single page application单页应用&#xff09;的路径管理器。再通俗的说&#xff0c;vue-router就是WebApp的链接路径管理系统。 vue-router是Vue.js官方的路由插件&#xff0c;它和vue.j…

免费 逼真:快手“可灵”后又一Sora级选手登场

就在今日&#xff0c;英伟达投资的旧金山初创公司 Luma AI 打出一手王牌&#xff0c;推出新一代 AI 视频生成模型 Dream Machine&#xff0c;可以文生视频&#xff0c;图生视频&#xff0c;人人免费可用。同时&#xff0c;Luma AI 称 Dream Machine 可以从文本和图像生成“高质…

什么品牌洗地机性价比高?四大出色的王牌机型力荐

科技的发展让咱们的生活变得更加便捷&#xff0c;很多智能清洁家电的出现&#xff0c;例如洗地机&#xff0c;集合了扫地、吸尘、拖地、除菌的功能&#xff0c;帮助了我们高效地完成了家务活&#xff0c;给我们腾出了更多享受生活的时间。但&#xff0c;相信有不少的新手朋友们…

XSKY 在金融行业:新一代分布式核心信创存储解决方案

近日&#xff0c;国家金融监督管理总局印发了《关于银行业保险业做好金融“五篇大文章”的指导意见》&#xff0c;在数字金融领域提出明确目标&#xff0c;要求银行业保险业数字化转型成效明显&#xff0c;数字化经营管理体系基本建成&#xff0c;数字化服务广泛普及&#xff0…

SaaS案例分享:成功构建销售渠道的实战经验

面对SaaS产品推广的难题&#xff0c;你是否曾感到迷茫&#xff0c;不知如何选择有效的销售渠道&#xff1f;Shopify独立站联盟营销或许能为你提供新的思路。Shopify作为领先的电商解决方案提供商&#xff0c;其独立站功能为众多商家提供了强大的在线销售平台。而联盟营销&#…

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 生成哈夫曼树(100分) - 三语言AC题解(Python/Java/Cpp)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 📎在线评测链接 生成哈夫曼树(100分) 🌍 评测功能需要订阅专栏后私信联系清…

如何应对缺失值带来的分布变化?探索填充缺失值的最佳插补算法

本文将探讨了缺失值插补的不同方法&#xff0c;并比较了它们在复原数据真实分布方面的效果&#xff0c;处理插补是一个不确定性的问题&#xff0c;尤其是在样本量较小或数据复杂性高时的挑战&#xff0c;应选择能够适应数据分布变化并准确插补缺失值的方法。 我们假设存在一个…

【Java】已解决:Java.lang.OutOfMemoryError: GC overhead limit exceeded

文章目录 问题背景可能出错的原因错误代码示例正确代码示例注意事项 问题背景 java.lang.OutOfMemoryError: GC overhead limit exceeded 是Java虚拟机&#xff08;JVM&#xff09;在运行时遇到的一种内存溢出错误。这种错误通常发生在应用程序的堆内存&#xff08;Heap Memor…

香港Web3时代:比特币可以成为「收益性资产」吗?

原文标题&#xff1a;《CAN BITCOIN BE A PRODUCTIVE ASSET?》撰文&#xff1a;Pascal Hgli编译&#xff1a;Chris&#xff0c;Techub News本文来源香港Web3媒体 Techub News 比特币正在经历一场大的变化&#xff0c;人们对其性质有不同的看法。有些人将其视为日常交易的货币…

数据结构试题 16-17

先这样吧&#xff0c;&#xff0c;专业课不是统考&#xff0c;我发现每年的卷子风格都不太一样&#xff0c;侧重点也不一样。以及21的和16的发生了很大的改变。等明年1月再看看吧 那就先over啦 数据结构撒花&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&am…

基于single flight来解决缓存击穿

目录 1. 缓存击穿2. 常见解决方案3.single flight方式3.1 模拟业务场景3.2 使用single flight的方式 缓存雪崩、缓存击穿、缓存穿透不单单是缓存领域的经典场景&#xff0c;更是面试当牛马时必备&#xff08;背&#xff09;八股文。 我们来讨论下缓存击穿场景下的解决方案。 …

【AI开发】RAG基础

RAG的基本流程&#xff1a; 用一个loader把knowledge base里的知识做成一个个的document&#xff0c;然后把document切分成snippets&#xff0c;把snippets通过embedding&#xff08;比如openai的embedding模型或者huggingface的&#xff09;向量化&#xff0c;存储到vectordb…

git 配置私人令牌

这里写自定义目录标题 获取私人令牌配置个人令牌 获取私人令牌 在个人设置里点击私人令牌选型&#xff0c;之后生成令牌即可。注意&#xff1a;令牌只会出现一次&#xff0c;务必保存好。 配置个人令牌 个人令牌&#xff1a;3c15c866fa61066212a83c66fd8133ba # 进入项目文…