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

相关文章

Python获取中国节假日数据记录入JSON文件

《Python获取中国节假日数据记录入JSON文件》项目系统内置的日历应用为了提升用户体验,特别设置了在调休日期显示“休”的UI图标功能,那么问题是这些调休数据从哪里来呢?我尝试一种更为智能的方法:P... 目录节假日数据获取存入jsON文件节假日数据读取封装完整代码项目系统内置的日历应用为了提升用户体验,

SpringBoot3实现Gzip压缩优化的技术指南

《SpringBoot3实现Gzip压缩优化的技术指南》随着Web应用的用户量和数据量增加,网络带宽和页面加载速度逐渐成为瓶颈,为了减少数据传输量,提高用户体验,我们可以使用Gzip压缩HTTP响应,... 目录1、简述2、配置2.1 添加依赖2.2 配置 Gzip 压缩3、服务端应用4、前端应用4.1 N

SpringBoot实现数据库读写分离的3种方法小结

《SpringBoot实现数据库读写分离的3种方法小结》为了提高系统的读写性能和可用性,读写分离是一种经典的数据库架构模式,在SpringBoot应用中,有多种方式可以实现数据库读写分离,本文将介绍三... 目录一、数据库读写分离概述二、方案一:基于AbstractRoutingDataSource实现动态

Python FastAPI+Celery+RabbitMQ实现分布式图片水印处理系统

《PythonFastAPI+Celery+RabbitMQ实现分布式图片水印处理系统》这篇文章主要为大家详细介绍了PythonFastAPI如何结合Celery以及RabbitMQ实现简单的分布式... 实现思路FastAPI 服务器Celery 任务队列RabbitMQ 作为消息代理定时任务处理完整

Java枚举类实现Key-Value映射的多种实现方式

《Java枚举类实现Key-Value映射的多种实现方式》在Java开发中,枚举(Enum)是一种特殊的类,本文将详细介绍Java枚举类实现key-value映射的多种方式,有需要的小伙伴可以根据需要... 目录前言一、基础实现方式1.1 为枚举添加属性和构造方法二、http://www.cppcns.co

使用Python实现快速搭建本地HTTP服务器

《使用Python实现快速搭建本地HTTP服务器》:本文主要介绍如何使用Python快速搭建本地HTTP服务器,轻松实现一键HTTP文件共享,同时结合二维码技术,让访问更简单,感兴趣的小伙伴可以了... 目录1. 概述2. 快速搭建 HTTP 文件共享服务2.1 核心思路2.2 代码实现2.3 代码解读3.

MySQL双主搭建+keepalived高可用的实现

《MySQL双主搭建+keepalived高可用的实现》本文主要介绍了MySQL双主搭建+keepalived高可用的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、测试环境准备二、主从搭建1.创建复制用户2.创建复制关系3.开启复制,确认复制是否成功4.同

Java实现文件图片的预览和下载功能

《Java实现文件图片的预览和下载功能》这篇文章主要为大家详细介绍了如何使用Java实现文件图片的预览和下载功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... Java实现文件(图片)的预览和下载 @ApiOperation("访问文件") @GetMapping("

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

MyBatis 动态 SQL 优化之标签的实战与技巧(常见用法)

《MyBatis动态SQL优化之标签的实战与技巧(常见用法)》本文通过详细的示例和实际应用场景,介绍了如何有效利用这些标签来优化MyBatis配置,提升开发效率,确保SQL的高效执行和安全性,感... 目录动态SQL详解一、动态SQL的核心概念1.1 什么是动态SQL?1.2 动态SQL的优点1.3 动态S