优化数据以提升大模型RAG性能思路:Meta Knowledge for RAG的一个实现思路

2024-08-30 22:28

本文主要是介绍优化数据以提升大模型RAG性能思路:Meta Knowledge for RAG的一个实现思路,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

传统的RAG系统通过检索然后阅读框架来增强LLMs,但存在一些挑战,如知识库文档的噪声、缺乏人工标注信息、长文档的编码问题以及用户查询的模糊性。

因此可以采用数据为中心的增强方法,我们可以看看最近的一个工作。

一、Meta Knowledge for RAG

最近的工作,《Meta Knowledge for Retrieval Augmented Large Language Models》(https://arxiv.org/abs/2408.09017),利用元数据信息来进行优化,本文来看看这个工作,讨论了一种新的数据为中心的检索增强型生成工作流程,旨在提高大模型对知识库的理解。

从实现思路上看,该工作介绍了一种新的RAG工作流程,称为准备-重写-检索-阅读(Prepare-Then-Rewrite-Then-Retrieve-Then-Read, PR3),通过为每个文档生成元数据和合成问题与答案(QA)对,以及引入元知识摘要(Meta Knowledge Summary, MK Summary)的概念,以改善用户查询增强和知识库中的信息检索。

一句话说明步骤,就是使用LLMs生成每个文档的元数据和合成QA对;利用MK Summary来指导查询增强步骤,使用聚类信息;通过个性化的用户查询增强和深入的知识库信息检索,提高了检索的精度和召回率。

其本身做的是数据为中心的工作流程,常见的流程如Figure1所示,它通过使用先进的语言模型和元数据驱动的方法来优化信息检索过程,旨在提供更加精准和个性化的结果。

  1. 文档增强:在推理之前,文档首先使用名为 Claude 3 的工具进行增强。这意味着文档会被处理,以便于更好地与系统进行交互,并提高检索的相关性。

  2. 聚类:增强后的文档根据元数据被聚类成集合,每个集合包含合成的问题和答案(QA)。这些合成的QA对是为了个性化的下游检索而设计的,即根据不同用户的需求定制化检索结果。

  3. 元知识摘要(Meta Knowledge Summaries, MK Summary):MK Summary 是从文档集合中提取的关键概念摘要,用于指导查询增强步骤。这意味着系统会根据文档中的关键信息来优化和扩展用户的查询,以便更精确地匹配用户的需求。

  4. 个性化检索:整个工作流程的目标是实现个性化的检索,即系统能够根据用户的具体需求提供定制化的信息检索服务。

  5. 查询增强:在用户提出查询后,系统会利用MK Summary中的信息来增强原始查询,生成更具体、更有针对性的查询,以期提高检索的准确性和相关性。

  6. 检索与阅读:经过增强的查询随后用于检索知识库中相关的文档或信息片段,然后系统会阅读这些检索到的内容,以生成回答或提供进一步的信息。

二、具体实现思路

以数据为中心的RAG工作流程,即准备-重写-检索-阅读(PR3)。

  1. 数据集(Datasets)
  • 使用了2000篇2024年的研究论文作为公共基准测试数据集,这些论文涵盖了统计学、机器学习、人工智能和计量经济学等多个领域。
  1. 合成QA生成(Synthetic QA Generation)
  • 对于每个文档,首先生成一组元数据,然后使用Chain of Thoughts(CoT)提示生成指导性的QA对。

  • 利用这些元数据,通过教师-学生提示方法,评估学生对文档知识的掌握情况。

  • Claude 3 Haiku被用于生成具有跨文档上下文的合成QA对。

  • 生成的元数据既用作增强搜索的过滤参数,也用于选择用于用户查询增强的合成QA(即MK Summary)。

  1. 元知识摘要生成(Generation of Meta Knowledge Summary)
  • 对于给定的元数据组合,创建MK Summary,以支持针对特定用户查询的数据增强阶段。

  • MK Summary是通过使用Claude 3 Sonnet对标记有感兴趣元数据的问题集合进行概念总结而创建的。

  1. 增强查询生成和检索(Augmented Generation of Queries and Retrieval)
  • 给定用户查询和预选的元数据集,检索相应的预计算MK Summary,并使用它来调节用户数据库子集的查询增强。

  • 利用“计划和执行”提示方法来处理复杂查询,跨文档推理,并最终提高提供的答案的召回率、精确度和多样性。

总结

本文主要介绍了《Meta Knowledge for Retrieval Augmented Large Language Models》这一工作,感兴趣的可以仔细品读。

如何学习AI大模型?

大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业?”“谁的饭碗又将不保了?”等问题热议不断。

不如成为「掌握AI工具的技术人」,毕竟AI时代,谁先尝试,谁就能占得先机!

但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高

针对所有自学遇到困难的同学们,我帮大家系统梳理大模型学习脉络,将这份 LLM大模型资料 分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓

👉[CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)]()👈

学习路线

在这里插入图片描述

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

在这里插入图片描述

👉学会后的收获:👈

• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

在这里插入图片描述

1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集

👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

这篇关于优化数据以提升大模型RAG性能思路:Meta Knowledge for RAG的一个实现思路的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1122107

相关文章

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

最长公共子序列问题的深度分析与Java实现方式

《最长公共子序列问题的深度分析与Java实现方式》本文详细介绍了最长公共子序列(LCS)问题,包括其概念、暴力解法、动态规划解法,并提供了Java代码实现,暴力解法虽然简单,但在大数据处理中效率较低,... 目录最长公共子序列问题概述问题理解与示例分析暴力解法思路与示例代码动态规划解法DP 表的构建与意义动

java父子线程之间实现共享传递数据

《java父子线程之间实现共享传递数据》本文介绍了Java中父子线程间共享传递数据的几种方法,包括ThreadLocal变量、并发集合和内存队列或消息队列,并提醒注意并发安全问题... 目录通过 ThreadLocal 变量共享数据通过并发集合共享数据通过内存队列或消息队列共享数据注意并发安全问题总结在 J

Spring AI Alibaba接入大模型时的依赖问题小结

《SpringAIAlibaba接入大模型时的依赖问题小结》文章介绍了如何在pom.xml文件中配置SpringAIAlibaba依赖,并提供了一个示例pom.xml文件,同时,建议将Maven仓... 目录(一)pom.XML文件:(二)application.yml配置文件(一)pom.xml文件:首

SpringBoot+MyBatis-Flex配置ProxySQL的实现步骤

《SpringBoot+MyBatis-Flex配置ProxySQL的实现步骤》本文主要介绍了SpringBoot+MyBatis-Flex配置ProxySQL的实现步骤,文中通过示例代码介绍的非常详... 目录 目标 步骤 1:确保 ProxySQL 和 mysql 主从同步已正确配置ProxySQL 的

JS 实现复制到剪贴板的几种方式小结

《JS实现复制到剪贴板的几种方式小结》本文主要介绍了JS实现复制到剪贴板的几种方式小结,包括ClipboardAPI和document.execCommand这两种方法,具有一定的参考价值,感兴趣的... 目录一、Clipboard API相关属性方法二、document.execCommand优点:缺点:

nginx部署https网站的实现步骤(亲测)

《nginx部署https网站的实现步骤(亲测)》本文详细介绍了使用Nginx在保持与http服务兼容的情况下部署HTTPS,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值... 目录步骤 1:安装 Nginx步骤 2:获取 SSL 证书步骤 3:手动配置 Nginx步骤 4:测

linux进程D状态的解决思路分享

《linux进程D状态的解决思路分享》在Linux系统中,进程在内核模式下等待I/O完成时会进入不间断睡眠状态(D状态),这种状态下,进程无法通过普通方式被杀死,本文通过实验模拟了这种状态,并分析了如... 目录1. 问题描述2. 问题分析3. 实验模拟3.1 使用losetup创建一个卷作为pv的磁盘3.