优化数据以提升大模型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

相关文章

批量导入txt数据到的redis过程

《批量导入txt数据到的redis过程》用户通过将Redis命令逐行写入txt文件,利用管道模式运行客户端,成功执行批量删除以Product*匹配的Key操作,提高了数据清理效率... 目录批量导入txt数据到Redisjs把redis命令按一条 一行写到txt中管道命令运行redis客户端成功了批量删除k

分布式锁在Spring Boot应用中的实现过程

《分布式锁在SpringBoot应用中的实现过程》文章介绍在SpringBoot中通过自定义Lock注解、LockAspect切面和RedisLockUtils工具类实现分布式锁,确保多实例并发操作... 目录Lock注解LockASPect切面RedisLockUtils工具类总结在现代微服务架构中,分布

Java使用Thumbnailator库实现图片处理与压缩功能

《Java使用Thumbnailator库实现图片处理与压缩功能》Thumbnailator是高性能Java图像处理库,支持缩放、旋转、水印添加、裁剪及格式转换,提供易用API和性能优化,适合Web应... 目录1. 图片处理库Thumbnailator介绍2. 基本和指定大小图片缩放功能2.1 图片缩放的

Python使用Tenacity一行代码实现自动重试详解

《Python使用Tenacity一行代码实现自动重试详解》tenacity是一个专为Python设计的通用重试库,它的核心理念就是用简单、清晰的方式,为任何可能失败的操作添加重试能力,下面我们就来看... 目录一切始于一个简单的 API 调用Tenacity 入门:一行代码实现优雅重试精细控制:让重试按我

Redis客户端连接机制的实现方案

《Redis客户端连接机制的实现方案》本文主要介绍了Redis客户端连接机制的实现方案,包括事件驱动模型、非阻塞I/O处理、连接池应用及配置优化,具有一定的参考价值,感兴趣的可以了解一下... 目录1. Redis连接模型概述2. 连接建立过程详解2.1 连php接初始化流程2.2 关键配置参数3. 最大连

SpringBoot多环境配置数据读取方式

《SpringBoot多环境配置数据读取方式》SpringBoot通过环境隔离机制,支持properties/yaml/yml多格式配置,结合@Value、Environment和@Configura... 目录一、多环境配置的核心思路二、3种配置文件格式详解2.1 properties格式(传统格式)1.

Python实现网格交易策略的过程

《Python实现网格交易策略的过程》本文讲解Python网格交易策略,利用ccxt获取加密货币数据及backtrader回测,通过设定网格节点,低买高卖获利,适合震荡行情,下面跟我一起看看我们的第一... 网格交易是一种经典的量化交易策略,其核心思想是在价格上下预设多个“网格”,当价格触发特定网格时执行买

解决pandas无法读取csv文件数据的问题

《解决pandas无法读取csv文件数据的问题》本文讲述作者用Pandas读取CSV文件时因参数设置不当导致数据错位,通过调整delimiter和on_bad_lines参数最终解决问题,并强调正确参... 目录一、前言二、问题复现1. 问题2. 通过 on_bad_lines=‘warn’ 跳过异常数据3

python设置环境变量路径实现过程

《python设置环境变量路径实现过程》本文介绍设置Python路径的多种方法:临时设置(Windows用`set`,Linux/macOS用`export`)、永久设置(系统属性或shell配置文件... 目录设置python路径的方法临时设置环境变量(适用于当前会话)永久设置环境变量(Windows系统

Python对接支付宝支付之使用AliPay实现的详细操作指南

《Python对接支付宝支付之使用AliPay实现的详细操作指南》支付宝没有提供PythonSDK,但是强大的github就有提供python-alipay-sdk,封装里很多复杂操作,使用这个我们就... 目录一、引言二、准备工作2.1 支付宝开放平台入驻与应用创建2.2 密钥生成与配置2.3 安装ali