news 2026/11/3 10:26:34

EVIE-4.5B内置Demo实战:如何用文本查询精准定位8张文档页面中的目标信息

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
EVIE-4.5B内置Demo实战:如何用文本查询精准定位8张文档页面中的目标信息

EVIE-4.5B内置Demo实战:如何用文本查询精准定位8张文档页面中的目标信息

EVIE-4.5B 是腾讯开源的视觉文档检索(Visual Document Retrieval)模型,仓库内置了一套8 页文档检索 Demo:无需自备任何数据,运行一条bash examples/demo/run.sh就能完成“文本查询 → 8 张文档页面排序”的完整流程,模型会自动为 “What was Q3 2024 revenue?” 这类问题精准选出含有答案的那一页。本文带你 3 步跑通这个 Demo。

🎯 看懂 8 页文档检索任务:文本查询如何对应到页面

Demo 模拟的是最典型的检索场景——你不知道答案在哪一页,只知道要查什么。

8 张示例文档页面位于 examples/demo/pages/,每一页都预配了一条自然语言查询,数据定义在 examples/demo/build.py 中:

#页面文件文档类型页面内容内置查询
1q3_revenue.png财报页Q3 营收 $12.4M,营业利润率 18%What was Q3 2024 revenue?
2org_chart.png组织架构图CEO Dana Ng,VP Sales Priya ShahWho is the VP of Sales under the CEO?
3invoice_4412.png发票到期日 14 March 2026,金额 $8,150What is the due date on invoice 4412?
4warehouse_b.png仓库信息卡位于 NORTH LOT,4 号门Where is Warehouse B located?
5traceback.pngCI 报错日志TypeError: NoneType,app/ledger.py:88Which file and line raised the TypeError?
6cash.png财务快照现金 $80M,短期国债 $12MHow much cash is on hand?
7headcount.png人员统计员工 1,204 人,待招 17 个岗位What is the employee headcount?
8patent.png专利台账专利号 US-11,234,567What is the granted patent number?

先看两张最有“检索味”的页面:

查询 “What was Q3 2024 revenue?” 的正确页面就是这张 FY2024 Q3 earnings——页面上白纸黑字写着 “Q3 2024 revenue $12.4 million”。

组织架构图页面存的是 “CEO: Dana Ng / VP Sales: Priya Shah” 的汇报关系,查询 “Who is the VP of Sales under the CEO?” 要求模型读懂图中的层级结构,而不是简单关键词匹配。

⚡ 3 步跑通 EVIE-4.5B 内置 Demo

第 1 步:克隆仓库并安装依赖(一键配置环境)

git clone https://gitcode.com/tencent_hunyuan/EVIE-4.5B cd EVIE-4.5B pip install -r requirements.txt

这个仓库是自包含的模型仓库:根目录的 model.safetensors 就是 EVIE-4.5B 权重本体,克隆完成即模型就位,无需再下载额外的大文件。

第 2 步:一键运行内置 Demo

bash examples/demo/run.sh

examples/demo/run.sh 会依次自动完成三件事:

  1. 准备数据:若 8 页数据集 test-00000-of-00001.parquet 不存在,先调用 examples/demo/build.py 生成页面图片与 parquet 文件(仓库已自带,一般直接跳过);
  2. 读取模型配置:从 config.json 读取 Prefix-MRL 最大投影维度(2048)作为评测头维度;
  3. 分布式评测:使用全部可见 GPU 启动 code/shared/eval.py 评测框架,对 8 条查询逐一给 8 个页面打分,计算 Recall / nDCG / MRR / MAP 指标。

第 3 步:查看排序结果

评测结果写入runs/demo/eval/目录,核心文件:

  • d2048/summary.json—— 2048 维投影下的完整评测汇总(每条查询、每个指标);
  • d2048/summary.md—— 人读版指标表格;
  • summary_heads.json—— 跨维度聚合文件。
指标含义
Recall@1查询的正确页面排在第 1 位的比例
nDCG@10考虑排序位置的检索质量(正确页在 Top10 即接近满分)
MRR / MAP基于排名位置 / 平均精度的排序指标

Demo 中每条查询只有 1 个正确页面,因此只要模型判断正确,8 条查询全部命中第 1 名,指标会非常接近 100%——这也是快速验证模型是否“装对了”的好办法。

👀 其余 6 张示例页面一览

剩下 6 张页面覆盖了发票、报错日志、专利等不同版式,考察模型“看图读数”的另一种能力:

发票页面:查询问 “invoice 4412 的到期日”,页面上的 “14 March 2026” 就是答案。

报错日志页面:查询问 “哪个文件哪一行抛出了 TypeError”,页面上 “app/ledger.py line 88” 即答案——从代码文本中定位关键信息是典型文档检索任务。

仓库卡片:查询 “Where is Warehouse B located?” 的答案是 “NORTH LOT”。

财务快照:查询 “How much cash is on hand?” 的答案是 “$80 million”。

人事统计页:查询 “What is the employee headcount?” 的答案是 “1,204”。

专利台账页:查询 “授权的专利号是什么?” 的答案是 “US-11,234,567”。

🔧 进阶用法:用 infer.py 对任意页面打分

内置 Demo 用的是固定 8 对查询,想换成“自己的页面”时,可以用仓库根目录的 infer.py:

python infer.py \ --query "What is the due date on invoice 4412?" \ --image examples/demo/pages/invoice_4412.png \ --image examples/demo/pages/q3_revenue.png \ --image examples/demo/pages/traceback.png

--query与--image都可重复传入任意多个;运行后终端会为每条查询输出一个排名列表:每行一张图片,按 MaxSim 相关性分数从高到低排序,第一行就是该查询最相关的页面。

两个实用参数:

  • --head:选择 Matryoshka 投影维度 64 / 128 / 256 / 512 / 1024 / 2048(默认最宽的 2048)。维度越低,索引越轻量,分数略有下降;
  • --device cpu:没有 GPU 也能跑(速度较慢,但流程完全一致)。

📊 理解打分原理:MaxSim 后交互是怎么算的

EVIE 的打分方式和“整页压成一个向量”的稠密检索不同:

查询文本 ──► ColQwen3.5(双向注意力)──► 多条文本向量 页面图片 ──► ColQwen3.5(视觉编码器)─► 多条视觉 patch 向量 │ MaxSim 后交互:每条查询向量取页内最大点积,再求和

查询被拆成多个 token 级向量,页面被拆成数百个视觉 patch 向量;每条查询向量都在页面里找匹配度最高的视觉向量(取最大点积),全部相加得到总分。正因如此,小字号文本、表格细节、版式结构都能参与匹配——这就是后交互(late-interaction)范式的核心,也是 EVIE-4.5B 在 ViDoRe 榜单上保持 SOTA 的关键。

❓ Demo 常见问题 FAQ

Q:每次运行都会重新生成 Demo 数据吗?

不会。examples/demo/build.py 只在 parquet 文件缺失时才被 examples/demo/run.sh 自动触发,第二次及以后运行直接进入评测。

Q:没有 GPU 的 CPU 机器能跑吗?

examples/demo/run.sh 会按可见 GPU 数量启动 torchrun 分布式评测,面向 GPU 环境。CPU 机器建议改用python infer.py --device cpu对少量页面打分,体验同样的检索流程。

Q:想把 Demo 扩展到更多页面怎么办?

参照 examples/demo/build.py 中PAGES列表的结构追加“页面内容 + 查询”即可,重新生成 parquet 后,评测框架会自动按“查询 ↔ 正确页面”配对计分。

📌 小结

EVIE-4.5B 的内置 Demo 用最小的 8 页语料演示了视觉文档检索最核心的一环——从自然语言查询到定位正确文档页面,一条bash examples/demo/run.sh即可完整跑通。跑通 Demo、看懂 Recall@1 / nDCG@10 这些指标之后,你可以继续用 infer.py 和 code/shared/eval.py 评测框架把自己的文档库接进来,从“玩具体验”走向真实业务数据。

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/11/3 10:25:17

netboot.xyz 多架构网络启动完整指南

netboot.xyz 多架构网络启动完整指南 【免费下载链接】netboot.xyz Your favorite operating systems in one place. A network-based bootable operating system installer based on iPXE. 项目地址: https://gitcode.com/gh_mirrors/ne/netboot.xyz 面对 40 台旧服务器…

作者头像 李华