Y
gcw_hhrLdMXW/layoutlm-funsd
模型介绍
文件和版本
Pull Requests
讨论
分析

philschmid/layoutlm-funsd 昇腾 NPU 部署文档

1. 模型简介

LayoutLM-FUNSD(philschmid/layoutlm-funsd)是一个基于 LayoutLM-base 架构的文档理解模型,在 FUNSD 表单数据集上微调,可对文档中的 token 进行语义角色分类(标题/问题/答案等)。

  • 架构:LayoutLMForTokenClassification(768 hidden, 12 layers, 12 heads)
  • 参数:约 113M
  • 输入:文档单词 + 边界框(bbox [x0,y0,x1,y1])
  • 输出:每个 token 的语义标签(B-HEADER/I-HEADER/B-QUESTION/I-QUESTION/B-ANSWER/I-ANSWER/O)
  • 权重:pytorch_model.bin(450MB)
  • 官方仓库:https://huggingface.co/philschmid/layoutlm-funsd

2. 环境依赖清单

组件版本说明
昇腾 NPUAscend910_9362 ×2(64GB HBM)推理硬件
CANN8.5.1昇腾计算框架
torch2.9.0+cpuPyTorch
torch_npu2.9.0.post1昇腾 NPU 插件
transformers4.57.6模型加载
numpy1.26.4科学计算

安装依赖:

pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

3. 分步推理操作流程

3.1 环境检查

npu-smi info
python3 -c "import torch, torch_npu; print(torch.npu.device_count())"

3.2 运行推理脚本

cd layoutlm-funsd-npu-deployment
ASCEND_RT_VISIBLE_DEVICES=0 python3 inference.py

3.3 指定设备与基准

python3 inference.py --device npu:0 --warmup 3 --runs 20

4. 测试用例与输出结果

测试输入(合成表单文档,14 个 token):

字段值bbox
Name:John Smith[50,50]~[400,80]
Age:30[50,120]~[230,150]
Address:New York[50,190]~[340,220]
Phone:555-1234[50,260]~[290,290]
Email:john@example.com[50,330]~[380,360]
Status:Active[50,400]~[250,430]

输出结果(昇腾 NPU,Ascend910_9362):

推理耗时: 184.7 ms
logits 维度: (1, 29, 7)

Token 分类结果:
  "Name:" -> B-QUESTION  (conf=0.995)
  "John" -> I-QUESTION  (conf=0.601)
  "Smith" -> B-ANSWER  (conf=0.948)
  "Age:" -> I-HEADER  (conf=0.754)
  "30" -> B-QUESTION  (conf=0.996)
  "Address:" -> I-QUESTION  (conf=0.735)
  "New" -> B-ANSWER  (conf=0.987)
  "York" -> B-QUESTION  (conf=0.998)
  "Phone:" -> I-QUESTION  (conf=0.586)
  "555-1234" -> B-ANSWER  (conf=0.932)
  "john@example.com" -> B-QUESTION  (conf=0.998)
  "Status:" -> I-QUESTION  (conf=0.873)
  "Active" -> B-ANSWER  (conf=0.973)

性能基准 (warmup=3, runs=20):
  平均耗时: 9.72 ms / 文档

验收结论:LayoutLM 文档理解模型在昇腾 NPU 上完整跑通前向传播,正确识别文档中的 QUESTION/ANSWER/HEADER 标签,语义合理(字段名→QUESTION,值→ANSWER),无算子回退或崩溃。

5. 目录结构

layoutlm-funsd-npu-deployment/
├── inference.py        # 推理脚本
├── readme.md          # 部署说明
├── requirements.txt   # 环境依赖
├── SKILL.md           # 技能文档
├── model/             # 模型权重
└── assets/            # 截图素材
    ├── agent_workflow.png
    ├── npu_device_call.png
    └── model_result.png