当前位置: 首页 > news >正文

【2025】Datawhale AI夏令营-多模态RAG-Task1、Task2笔记-任务理解与Baseline代码解读

【2025】Datawhale AI夏令营-多模态RAG-Task1、Task2笔记-任务理解与Baseline代码解读

任务背景

科大讯飞AI比赛-多模态RAG图文问答挑战赛:https://challenge.xfyun.cn/topic/info?type=Multimodal-RAG-QA&ch=dwsf2517

此次比赛以财报问答任务作为具体场景,旨在解决图文信息混排的情况下需要同时整合图表和文字的复杂推理问题。在这类问题中,模型不仅需要理解自然语言,还要”看懂“图像,将二者关联并进行推理。

例:

问题:根据图表显示,产品A的销售额在哪个季度开始下降?

材料:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

此比赛的输入与输出要求如下:

输入:

  • test.json:包含所有评测问题,文件里只包含 question 字段 , answerfilenamepage 缺失,需要参赛者回答补充。
  • 财报数据库.zip:包含多个PDF文件,这些PDF是真实世界的公司财报,格式上图文混排,内容上包含大量段落、数据表格以及各种图表(如条形图、饼图、折线图等)。test.json中所有问题的答案必须从这些PDF文档中寻找,不能依赖任何外部知识。

输出:

test.json 中的每个问题,预测答案(answer) 、来源文件名(filename )和来源页码( page ),然后整理成JSON文件,形如:

[{"filename": "xx.pdf","page": 1,"question": "广联达在苏中建设集团南宁龙湖春江天越项目中,具体运用了哪些BIM技术,并取得了哪些成果?","answer": "广联达在苏中建设集团南宁龙湖春江天越项目中,具体运用了哪些BIM技术,并取得了哪些成果?"},……
]

任务难点

  • 如何同时利用图文混排PDF中的图表和文本信息回答问题?(多模态信息理解、跨模态检索、图文关联推理)在传统的RAG方法中,信息检索的对象只有文本,不能充分利用图表信息,这使得部分需要联合图文才能正确回答的问题无法得到有效回答。
  • 如何基于检索结果正确地回答问题、追溯回答依据?(答案生成)答案中需要准确地指出答案的来源(具体到文件名、页码)。

Baseline代码仓库

作者的github仓库(内容更丰富、功能说明更详细):https://github.com/li-xiu-qi/spark_multi_rag

modelscope仓库(实际使用、可以预览数据):https://www.modelscope.cn/datasets/Datawhale/AISumerCamp_multiModal_RAG.git

Baseline运行

1、在Git 环境中初始化并配置Git LFS(Large File Storage)功能

git lfs install

Git LFS是Git的扩展,用于更高效地处理大型二进制文件。把大文件上传到一个独立的LFS存储服务器上,而Git仓库里只存一个指向它的“指针”。

执行此命令后出现Git LFS initialized.即初始化成功(其他多余的输出,如Error: failed to call git rev-parse --git-dir: exit status 128 : fatal: 不是 git 仓库(或者任何父目录):.git可以忽略,不影响实际使用)。

执行此命令后,如果出现提示:

git:'lfs' 不是一个 git 命令。参见 'git --help'。最相似的命令是log

说明没有安装Git LFS插件。可以使用sudo apt install git-lfs安装,然后重新执行此命令。

2、下载baseline代码

git clone https://www.modelscope.cn/datasets/Datawhale/AISumerCamp_multiModal_RAG.git

下载完成后,进入AISumerCamp_multiModal_RAG文件夹。

3、配置密钥

打开baseline文件夹 -> 双击打开env.txt文件 -> 在LOCAL_API_KEY处粘贴个人使用的API密钥 -> 保存env.txt文件,然后重命名为.env

4、运行baseline文件

运行baseline.ipynb文件。运行完成后得到rag_top1_pred.json即为结果文件。

Baseline代码理解

目录结构

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

一、解压数据

!unzip -n datas/财报数据库.zip -d datas/

执行输出如下图所示:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

二、安装依赖包

!pip install -r requirements.txt

除了numpy、tqdm、loguru(python日志记录库)等常见的依赖,需要安装的特别依赖有:

  • python-dotenv:读取.env环境变量文件,将文件中的变量自动加载到os.environ中,供程序使用

  • openai:调用LLM服务的API接口

  • PyMuPDF:处理PDF和其他文档文件,可以进行读取、修改等操作

三、执行fitz_pipeline_all.py文件

!python fitz_pipeline_all.py

四、执行rag_from_page_chunks.py文件

!python rag_from_page_chunks.py

未完待续

http://www.lryc.cn/news/615199.html

相关文章:

  • 金融通用智能体(Financial General Agent, FGA)的端到端解决方案
  • 机器翻译中的语言学基础详解(包括包括语法、句法和语义学等)
  • C语言:构造类型
  • TDengine IDMP 产品基本概念
  • 使用 Visual Studio 2022 编译 PortAudio 项目
  • occworld(1):论文解读
  • Ghost备份分区设置分包大小方法
  • 任务发布悬赏查询管理地推抖音快手微信任务赚佣金网站源码功能详解二开
  • 谷歌警告云存储桶劫持攻击
  • 让大模型 “睡觉”:把版本迭代当作人类睡眠来设计(附可直接改造的训练作息表与代码)
  • n沟道增强型mos管
  • B.10.01.6-DDD领域驱动设计:从理论到落地的完整指南
  • Typora上传图片保存到assets目录下
  • 第十四届蓝桥杯青少年组省赛 编程题真题题解
  • stm32项目(24)——基于STM32的汽车CAN通信系统
  • WinForm 复合控件(用户控件):创建与使用指南
  • 深入 FastMCP 源码:认识 tool()、resource() 和 prompt() 装饰器
  • sqli-labs通关笔记-第39关 GET数值型堆叠注入(手工注入+脚本注入两种方法)
  • 数据分析框架从 “工具堆砌” 转向 “智能协同”
  • 大语言模型提示工程与应用:提示工程-提升模型准确性与减少偏见的方法
  • node.js 零基础入门
  • 学习嵌入式第二十四天
  • Kotlin 协程线程切换机制详解
  • M8-11 RFID模块通过RS485转Profinet网关与PLC通信的配置指南
  • 安装NodeJS和TypeScript简要指南
  • 虚拟机远程连接报错解决办法
  • 「iOS」————分类与扩展
  • 书生浦语第五期-L1G4-InternLM 论文分类微调实践(XTuner 版)
  • 代码随想录day60图论10
  • 快速使用selenium+java案例