一篇论文分享,以多模态的形式来做RAG的研究

news2024/11/16 0:41:57

这篇论文,给我很强的割裂感和冲击感。非常值得阅读。我是做RAG相关研究工作的 ,过去一年在做传统的RAG,就是标准的文档解析,chunk,召回,排序,模型生成答案这条路。深谙RAG的复杂,中间要优化的环节太多了。中间要翻的大山太多了,其中文档解析,文件理解,再到去定义M+1个召回策略,很复杂。这篇论文直击痛点,让我觉得很哇塞。

这篇论文给很大的冲击感,颠覆了传统的路线,让我觉得如沐春风。论文提出使用依靠多模态模型,来做RAG,这样只需要使用文档的截图就可以了。这个思路的提出,直接省去传统RAG的很多个中间处理环节。

https://arxiv.org/pdf/2407.01449v2

解决的核心问题

 这篇论文介绍了一种名为ColPali的新型文档检索模型,它利用最新的视觉语言模型(Vision Language Models,简称VLMs)来从文档页面的图像中生成高质量的上下文嵌入(contextualized embeddings)。ColPali结合了一种称为“late interaction”的匹配机制,显著提高了检索性能,并且具有更快的处理速度和端到端的训练能力。

 

利用视觉语言模型,来解决传统RAG的痛点问题:RAG的链路太长了,中间的环节特别多,光是在文档解析上就要花费非常多精力,来做文件理解的内容。中间每个环节损失百分之十,最终可能就只剩下 0.9 * 0.9* .. (n-1)*0.9 。损失是叠加的,这是非常恐怖的,所以对每个 环节的要求都极高。这很困难,也很痛苦。

此外,传统RAG主要关注文本内容,而忽略了文档的视觉元素,这在需要同时理解文本和视觉信息的场景中(如检索增强生成RAG)导致性能受限。现代文档检索系统在文本匹配方面表现出色,但它们在有效利用文档的视觉线索(如表格、图形、页面布局或字体)方面存在不足,这限制了它们在实际文档检索应用中的性能。表格的处理,图像的处理,都是需要额外的精力。

这条路如果真的可行,那真的对RAG从业者来说,是一个福音。

泼个凉水

这个论文的确给我们提供了一条新的路线。但是它还不成熟。我想我们已经在传统的RAG上已经做了那么多的雕花的工作,新的思路一时还无法替代。学术界的东西在工业界落地,可能还需要很长的时间。

在这个思路上,想要去提升效果,只有一条路可以走,那就是训练模型。无法通过策略来做提升。

主要贡献如下

  1. ViDoRe基准测试:提供了测试数据集。作者创建并公开发布了一个名为ViDoRe(Visual Document Retrieval Benchmark)的全面基准测试,用于评估系统在页面级别文档检索上的性能。这个基准测试覆盖了多个领域、视觉元素和语言。

  2. ColPali模型架构:提出了一种基于视觉语言模型的新模型架构和训练策略,可以直接从文档的视觉特征中高效地索引文档,允许后续使用late interaction机制进行快速查询匹配。

  3. 性能评估:ColPali在ViDoRe基准测试中的性能超过了现有的所有文档检索系统,同时保持了查询的低延迟和索引的高吞吐量。

  4. 资源发布:作者公开了所有项目工件,包括模型和代码,以促进进一步的开发和研究。

ViDoRe基准测试

已有的测试数据集,有的只是测视觉的,有的只是测文本召回的。测试侧重于各种模式-文本、图形、信息图形、表格。涉及的领域主要是医学、商业、科学、行政。覆盖的语言主要是英语和法语

评估结果展示

论文中结果展示,这种方式取得了非常好效果。但是我还是有点质疑,根据我们的生产经验,向量的相关性会比BM25好一些,但是这个结果里边并不是,这让我不得不怀疑专业性。

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

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

相关文章

PostgreSQL创建表和自增序列

一、创建表: 注意: 1、在mysql没有序列的概念,id自增通过auto_increment实现; 2、pgsql没有auto_increment的概念,如何实现id自增?有两种方式: 方式一:创建序列,绑定…

Dify是什么?能用来做什么?

吾名爱妃,性好静亦好动。好编程,常沉浸于代码之世界,思维纵横,力求逻辑之严密,算法之精妙。亦爱篮球,驰骋球场,尽享挥洒汗水之乐。且喜跑步,尤钟马拉松,长途奔袭&#xf…

idea怎么配置gradle多个版本

1.背景 gradle版本很多,而且很多时候版本是不兼容的,我们希望拉取下来的代码就包含已经配置好的版本,而不是去配置本机的gradle版本..... 意思就是要实现项目A可以用6.X版本 项目B可以使用7.X版本 项目C可以用9.X版本..... 2.配置方式 步骤一:项目根路径下保留一个文件夹…

Axios使用方法详解,从入门到进阶

目录 🌳 Axios的诞生 🌳 Axios的介绍 定义 原理 特性 浏览器支持情况 如何安装 🌳 Axios的使用 ◼️ 创建vue项目 ◼️ Axios的基础用法(get、post、put 等请求方法) get方法 post方法 put和patch方法 …

ts踩坑!vue3中ts文件用export导出公共方法的ts类型定义

当我们有一个ts文件,定义并export出该function,其中方法里边有定义的变量,方法、钩子函数等多种,并最终return出该变量、方法。 此时 ts规则校验会让我们返回该函数类型。如下 export default function () {const chart ref();c…

vue echarts 柱状图表,点击柱子,路由代参数(X轴坐标)跳转

一 myChart.on(click, (params) > {if (params.componentType series && params.dataIndex ! undefined) {const months this.month_htqd[params.dataIndex]; // 获取点击柱状图的 X 轴坐标值alert(点击了柱状图,值为: ${months});// 根据点击的柱状图…

PHP房产中介租房卖房平台微信小程序系统源码

​🏠【租房卖房新选择】揭秘房产中介小程序,一键搞定置业大事!🏡 🔍【开篇:告别繁琐,拥抱便捷】🔍 还在为找房子跑断腿?为卖房发愁吗?今天给大家安利一个超…

前端开发_注意事项

无论使用哪种框架开发(vue、react、...),前端开发终究是结构(HTML)、样式(CSS)、逻辑(用户操作数据处理对接后端API)。那么开发过程中都需要注意哪些事项,本文…

【单片机毕业设计选题24072】-基于单片机的智能停车场管理系统

系统功能: 1.根据RFID卡卡号判断新老用户,老用户不计费直接放行,新用户放行时显示计费结果 2.显示屏显示车位剩余数量 3.检测车位有车亮红灯,无车亮绿灯,能够实现车位诱导 5.车辆出停车场时,能根据停车时间计算停车…

大数据采集工具——Flume简介安装配置使用教程

Flume简介&安装配置&使用教程 1、Flume简介 一:概要 Flume 是一个可配置、可靠、高可用的大数据采集工具,主要用于将大量的数据从各种数据源(如日志文件、数据库、本地磁盘等)采集到数据存储系统(主要为Had…

计算机课设——基于Java web的超市管理系统

smbms_java_web 基于Java web的超市管理系统,数据库课程设计 1.引言 是一个基于Java Web连接MySQL的小项目。 超市管理系统(smbms)作为每个计算机专业的大学生都是一个很好的练手项目,逻辑层次分明,基础功能包括用户的登录和注销&#xff…

云手机结合自主ADB命令接口 提升海外营销效率

现在,跨境电商直播已经成为在线零售的重要渠道,在大环境下,确保直播应用的稳定性和用户体验至关重要。 云手机支持自主ADB命令接口,为电商直播营销提供了技术支持,使得应用开发、测试、优化和运维更加高效。 什么是A…

鸿蒙语言基础类库:【@system.sensor (传感器)】

传感器 说明: 从API Version 8开始,该接口不再维护,推荐使用新接口[ohos.sensor]。本模块首批接口从API version 4开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。该功能使用需要对应硬件支持,仅支持…

什么是信息指纹和信息加密——《数学之美》第16、17章以及其他各种资料的读书笔记

目录 1. 信息指纹 1.1 概念 1.2 相关算法的演进历程 1.3 哈希碰撞 1.4 雪崩效应 1.5 应用场景 2. 信息加密 2.1 密码学的简要历史 2.1.1 古代密码学:智慧的萌芽 2.1.2 中世纪至文艺复兴:密码术的兴起 2.1.3 近代密码学:机械密码机的…

【python函数】string和json的互转函数封装

我是一名测试开发工程师(全栈),作品有全终端自动化测试框架wyTest,未羽研发测试管理平台,欢迎同行交流。 一、主要涉及2个方法: json.loads:将字符串转换成JSONjson.dumps:将JSON转…

Apache BookKeeper 一致性协议解析

导语 Apache Pulsar 是一个多租户、高性能的服务间消息传输解决方案,支持多租户、低延时、读写分离、跨地域复制(GEO replication)、快速扩容、灵活容错等特性。Pulsar 存储层依托于 BookKeeper 组件,所以本文简单探讨一下 BookK…

接口开发:Orcal数据库的批量修改sql

场景:在日常的CURD中一定会用到批量修改。在我们的项目中,使用的数据库是Orcal,由于之前基本都是使用Mysql的,使用的sql语句也基本都是用mysql的。但是在这次的接口编写时用mysql的批量修改出了问题,刚开始我还以为是写…

高频面试题-CSS

BFC 介绍下BFC (块级格式化上下文) 1>什么是BFC BFC即块级格式化上下文,是CSS可视化渲染的一部分, 它是一块独立的渲染区域,只有属于同一个BFC的元素才会互相影响,且不会影响其它外部元素。 2>如何创建BFC 根元素,即HTM…

浅谈端到端(自动驾驶)

一、 引言 端到端是近期非常火的话题,尤其在自动驾驶、具身智能等领域。去年UniAD的发布,给大家普及了端到端的网络设计,带动了行业的发展。产业界,特斯拉FSD Beta V12效果惊艳,近期理想也推出了双系统的E2E自动驾驶系…

qml 实现一个listview

主要通过qml实现listvie功能&#xff0c;主要包括右键菜单&#xff0c;滚动条&#xff0c;拖动改变内容等&#xff0c;c 与 qml之间的变量和函数的调用。 main.cpp #include <QQuickItem> #include <QQmlContext> #include "testlistmodel.h" int main…