当前位置: 首页 > 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.dtcms.com/a/322533.html

相关文章:

  • 线程池多反应堆服务器webserver(c++)
  • 免费PDF编辑软件 pdf24-creator 及其安装包
  • 【无标题】AI 赋能日常效率:实用案例与操作心得分享
  • AI工具在数据质量管理中的应用
  • 电子电气架构 --- 电气/电子架构迁移已拉开帷幕
  • CamX-骁龙相机修改
  • Docker Desktop 使用操作指南
  • 费米问题:估算北京有多少量特斯拉汽车?
  • 虚拟机Ubuntu重启发现找不到共享文件夹
  • 202506 电子学会青少年等级考试机器人一级理论综合真题
  • 「iOS」————响应者链与事件传递链
  • 【工具变量】全国省级农业保险保费收入与赔付支出数据更新(2001-2023年)
  • wsl ubuntu访问(挂载)vmware vmdk磁盘教程
  • React Native jpush-react-native极光推送 iOS生产环境接收不到推送
  • [Oracle] ADD_MONTHS()函数
  • 可直接运行的 Playwright C# 自动化模板
  • day22|学习前端ts语言
  • 我想做自动化报社保,用哪种技术更好一点呢?
  • 7_基于深度学习的安全帽检测识别系统(yolo11、yolov8、yolov5+UI界面+Python项目源码+模型+标注好的数据集)
  • 微信原生小程序 Timeline 组件实现
  • 论文阅读-ZeroDCE和ZeroDCE++
  • 力扣-34.在排序数组中查找元素的第一个和最后一个位置
  • 【排序算法】③直接选择排序
  • 深入解析 Apache APISIX 在微服务网关中的性能优化实践指南
  • C语言(10)——结构体、联合体、枚举
  • ARM体系结构
  • cross-env dotenv
  • 【QuPath 】QuPath 批量提取 SVS 文件元数据脚本
  • NLP:Transformer输出部分
  • DigitalProductId解密算法php调试版piddebug.php