云计算百科
云计算领域专业知识百科平台

Datawhale AI夏令营2025第三期——多模态RAG方向(多模态RAG图文问答挑战赛笔记)

在这里插入图片描述

Datawhale夏令营

📚 2025夏令营第三期 多模态RAG 方向的学习

个人实践的过程笔记


目录

    • 🎯 前言
      • 🏆 比赛简介
      • 📋 比赛任务
      • 🛠️ Task1: 上手赛题、跑通Baseline
      • 🔍 Task2: 理解赛题重难点
      • 🚀 Task3: 调整方案、进阶上分!

🎯 前言

  此次夏令营活动是基于讯飞开放平台“多模态RAG图文问答挑战赛”,我在“Datawhile”公众号中发现有 多模态RAG 方向,本身感兴趣,想学习学习。

🏆 比赛简介

  简单来说就是很多提问问题所得到的信息,不仅仅局限于纯文本中,在图表中"隐藏"着Query的重要Answer,所以我们需要模型不仅能懂文本,还需要理解图片,二者结合使得回答的精确性与完整性都达到比较好的状态;而我们如果需要模型能够回答自己专业领域的一些问题,并且能够实时的更新,成本不要太高,那么多模态RAG 的重要性就体现出来了。

📋 比赛任务

  官方给了四个文件,分别是多模态RAG财报 PDF,训练集,测试集,提交示例。我们需要将这些 PDF 构建 RAG 知识库,根据用户的查询,去检索出最相关的知识,生成回答,PDF 来源与页码。

  评审指标:对于每一个提问计算分数。分为三个方面:页面匹配度(0.25)、文件名匹配度(0.25),答案内容相似度(0.5)。

   相关注意事项:允许使用开源、未开源大模型,但是不允许使用外部数据集。

🛠️ Task1: 上手赛题、跑通Baseline

  这里面官方写的步骤巨详细,照着做就可以。

🔍 Task2: 理解赛题重难点

  Baseline的目的是:在基础的硬件设备下,用简单可复现的方式完成任务。由于本次的 Baseline 涉及的代码比较多,我就不详细的将代码粘贴过来了,讲解一些主要的代码逻辑。其实链接里面已经写的非常详细了,我这里就是简单的说一下。

  • fitz_pipeline_all.py (用 PyMuPDF 从 PDF 文件直接提取每页文本,然后把所有 PDF 页面的文本块(chunks)整理成一个 JSON 文件。)

只提取纯文本,不处理图片、表格

  • rag_from_page_chunks.py (加载 PDF 提取的 chunks 数据、构建向量数据库(embedding)、基于相似度检索相关内容、结合大模型生成答案、批量处理测试集问题,并输出结构化 JSON)
    • get_text_embedding.py (提供一个统一的接口,批量调用 OpenAI 接口生成文本 Embedding)
    • extract_json_array.py (确保从 LLM 返回的内容中提取出干净 JSON,提取 ```json 代码块、提取第一个合法的 JSON 数组 []、提取所有顶层 JSON 对象 {},拼成数组)

下面是另一种方法

  • mineru_pipeline_all.py (PDF → Markdown → JSON → Chunk。提取文本、图片、表格信息,并最终转换成适合 RAG(检索增强生成)使用的 JSON 文件)

    • mineru_parse_pdf.py (读取 PDF → 调用解析后端(pipeline 或 VLM) → 输出多种结果文件(Markdown、JSON、模型中间结果))
  • /image_utils/ |——— async_image_analysis.py (补充 caption(提高 RAG 检索体验)) |——— image_analysis_utils.py ( JSON解析工具 和 图像→Base64编码工具) |——— prompts.py (提示词)

🚀 Task3: 调整方案、进阶上分!

  Baseline 的优缺点

Baseline详情
优点 逻辑清晰、端到端完整、模块化
缺点 文档解析粗糙、分块策略单一、检索精度有限、模型泛用性

  进阶要点

  • 提取文档的多模态内容。
  • “粗召回”与“精召回”的检索策略。
  • 好啦!这就是我对于这一期的理解与笔记,希望能够帮助到大家。


    赞(0)
    未经允许不得转载:网硕互联帮助中心 » Datawhale AI夏令营2025第三期——多模态RAG方向(多模态RAG图文问答挑战赛笔记)
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!