InternVL DocVQA与InfoVQA评测指南:文档理解能力的试金石
2026/9/16 13:20:29 网站建设 项目流程

InternVL DocVQA与InfoVQA评测指南:文档理解能力的试金石

【免费下载链接】InternVL[CVPR 2024 Oral] InternVL Family: A Pioneering Open-Source Alternative to GPT-4o. 接近GPT-4o表现的开源多模态对话模型项目地址: https://gitcode.com/GitHub_Trending/in/InternVL

InternVL 是一个接近 GPT-4o 表现的开源多模态对话模型家族,而DocVQAInfoVQA正是检验其文档理解能力最权威的两块"试金石"。本文是一份面向新手的完整评测指南,带你从零准备数据、一键运行评测脚本,到读懂 ANLS 指标,全程不需要手写一行评测代码。

为什么 DocVQA 和 InfoVQA 值得重点关注?

在多模态大模型的众多评测基准中,文档类问答是公认的"硬骨头":它同时考验模型的文字识别(OCR)、版面理解和跨表格推理能力。

  • DocVQA:基于真实文档扫描件(论文、表单、报告等)的视觉问答数据集,验证集自带本地标注,可直接算分;测试集需提交官方评测。
  • InfoVQA:面向信息图(infographic)的问答数据集,图文混排、排版复杂,对模型解析复杂视觉结构的能力提出了更高要求。

InternVL 团队早在 2024 年 7 月就借助 InternVL2-Pro 在这两个基准上拿下了当时的 SOTA 成绩,足见文档理解在其能力版图中的核心地位。

评测环境与数据准备

评测脚本位于 internvl_chat/eval/vqa/ 目录,完整的官方说明见 internvl_chat/eval/vqa/README.md。开始前请先在InternVL/internvl_chat/data下创建数据集目录。

准备 DocVQA 数据

核心步骤(详见官方 README 中的 DocVQA 小节):

  1. 创建目录:mkdir -p data/docvqa && cd data/docvqa
  2. 从官方数据集页面下载val.tar.gztest.tar.gz并解压
  3. 下载官方转换好的train.jsonlval.jsonltest.jsonl

完成后目录结构应为:

data/docvqa ├── test ├── test.jsonl ├── train ├── train.jsonl ├── val └── val.jsonl

准备 InfoVQA 数据

  1. 创建目录:mkdir -p data/infographicsvqa && cd data/infographicsvqa
  2. 从官方下载页获取infographicsVQA_val_v1.0_withQT.jsoninfographicsVQA_test_v1.0.json及对应图片
  3. 下载转换好的val.jsonltest.jsonl(命名方式见 README 的 InfoVQA 小节)

💡 小提示:若你的显卡显存有限,多页文档场景还可以参考 MP-DocVQA 的多页评测流程,位于 internvl_chat/eval/mpdocvqa/README.md,其评分逻辑复用 infographicsvqa_eval.py。

三步跑通 DocVQA / InfoVQA 评测

仓库提供了统一的入口脚本 evaluate.sh,无需手动拼装torchrun参数。假设检查点路径为path/to/InternVL-Chat-V2-2B

# 测试 DocVQA 验证集(8 卡环境) GPUS=8 sh evaluate.sh path/to/InternVL-Chat-V2-2B vqa-docvqa-val --dynamic --max-num 18 # 测试 InfoVQA 验证集 GPUS=8 sh evaluate.sh path/to/InternVL-Chat-V2-2B vqa-infovqa-val --dynamic --max-num 24

测试集命令同理,只需把vqa-docvqa-val换成vqa-docvqa-testvqa-infovqa-val换成vqa-infovqa-test

关键参数速查表

参数类型默认值作用
--checkpointstr模型检查点路径
--datasetsstrokvqa_val评测数据集,逗号分隔
--dynamicflagFalse启用动态高分辨率预处理
--max-numint6动态分辨率切块的最大数量
--load-in-8bitflagFalse以 8-bit 精度加载模型权重
--autoflagFalse显存不足时自动把大模型拆到 8 卡

⚠️ 官方明确提醒:评测 InternVL 1.5 / 2.0 / 2.5 及更新版本时,务必开启--dynamic,否则高分辨率文档中的细小文字会被压缩丢失,分数会明显偏低。

评分指标:ANLS 是什么?

DocVQA 验证集与 InfoVQA 均采用ANLS(Average Normalized Levenshtein Similarity,平均归一化编辑距离相似度)作为本地算分指标,其定义与实现封装在 internvl_chat/eval/vqa/evaluate_vqa.py 中。可以简单理解为:

  • 模型答案与标准答案完全一致→ 得 1 分
  • 存在少量错字/多字 → 按编辑距离比例给部分分
  • 差距过大 → 0 分

相比"必须一字不差"的严格准确率,ANLS 对开放问答更公平,也是文档问答领域的通用标准。而docvqa_testinfographicsvqa_test等测试集没有公开答案(本地算分为None),脚本只输出预测结果,需要提交到官方评测服务出分。

常见坑位与调优建议

  1. 分辨率是第一生产力:DocVQA 官方推荐--max-num 18,InfoVQA 推荐--max-num 24。切块数越大,细节文字越清晰,但显存与耗时也越高,可根据硬件折中。
  2. 单卡也能跑:加上--auto参数,脚本会自动把超大模型(如 40B、76B 级别)拆分到多卡,无需手动分片。
  3. 数据目录别放错:所有 jsonl 与图片必须放在internvl_chat/data下的对应子目录(如data/docvqa/val/),脚本内部按相对路径硬编码查找,见 evaluate_vqa.py 的数据集配置表。
  4. 对比基准:跑完分数后,可与官方 README 中公开的各版本成绩横向对照,快速判断自己的检查点与复现流程是否正常。

写在最后

通过本指南,你已经掌握了 InternVL 在文档理解赛道上的完整评测链路:从 DocVQA / InfoVQA 数据准备、evaluate.sh一键评测、到 ANLS 指标的解读。这套流程同样适用于仓库支持的 TextVQA、ChartQA、GQA 等其余九个问答基准,配置方式见 internvl_chat/eval/vqa/README.md。

想进一步体验模型的文档问答效果,可以借助仓库内置的 streamlit_demo/ 交互演示,把评测基准上的分数变成真实可感的对话体验。🚀

【免费下载链接】InternVL[CVPR 2024 Oral] InternVL Family: A Pioneering Open-Source Alternative to GPT-4o. 接近GPT-4o表现的开源多模态对话模型项目地址: https://gitcode.com/GitHub_Trending/in/InternVL

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询