Invoice - 基于Qwen3-VL的发票信息提取模型
模型简介
⚠️ 重要提示:当前为测试版本 (v0)
此版本为早期测试模型,可能存在以下情况:
- 识别准确率待进一步优化(目前主要是提取为JSON数据,其它格式未作优化)
- 模型泛化能力不足
- 可能会出现无限重复Token,导致输出无限循环。(建议temperature设置为1)
正式版本将在后续推出
Invoice模型是基于Qwen3-VL-8B-Instruct模型针对发票、票据信息提取任务进行专门微调的高准确率视觉语言模型。该模型专门设计用于从各种发票、票据图像中准确提取关键信息,包括但不限于:
- 发票基本信息:发票代码、发票号码、开票日期、校验码等
- 交易方信息:销售方名称、纳税人识别号、地址电话、开户行及账号
- 购买方信息:购买方名称、纳税人识别号、地址电话、开户行及账号
- 商品明细:货物或应税劳务名称、规格型号、单位、数量、单价、金额
- 税务信息:税率、税额、价税合计(大写/小写)
- 其他信息:收款人、复核人、开票人等
模型特点
🎯 高准确率
- 专门针对中文发票场景优化,识别准确率高
- 支持多种发票格式(增值税普通发票、专用发票、电子发票等)
- 对模糊、倾斜、复杂背景的发票图像有较好的鲁棒性
🔧 技术优势
- 基于先进的Qwen3-VL-8B-Instruct模型微调
- 支持端到端的视觉-语言理解
- 能够理解发票的版面结构和逻辑关系
- 支持上下文理解和多轮对话
📱 应用场景
- 企业财务自动化处理
- 电子发票管理系统
- 财务报销自动化
- 税务申报辅助
- 票据归档数字化
🌐 泛化能力
- 在票据、文档等结构化信息提取任务上展示了较强的泛化能力
- 支持多种版式理解和关键信息提取
- 欢迎提交反馈和建议,帮助我们进一步优化模型表现
快速开始
体验地址
在线体验地址:https://fp.94209420.xyz/
环境安装
# 安装ModelScope
pip install modelscope
# 安装相关依赖
pip install "transformers>=4.57.0"
模型下载
使用ModelScope SDK下载:
from modelscope import snapshot_download
model_dir = snapshot_download('FLYFAI/Invoice')
使用Git下载:
git clone https://www.modelscope.cn/FLYFAI/Invoice.git
使用modelscope命令行工具下载:
modelscope download --model FLYFAI/Invoice --local_dir ./Invoice
模型部署
推荐使用VLLM部署
启动模型建议使用VLLM以获得更好的性能和并发处理能力:
CUDA_VISIBLE_DEVICES=0 vllm serve ./Invoice \
--gpu-memory-utilization 0.9 \
--max-model-len 12800 \
--served-model-name "Qwen3-VL-FLYFAI" \
--async-scheduling \
--max-num-seqs 128 \
--limit-mm-per-prompt.video 0 \
--port 8118
运行示例Demo
- 进入Demo目录并安装依赖:
cd Invoice/demo
pip install fastapi uvicorn jinja2 pillow openai pdf2image python-multipart
-
处理PDF文件注意事项:
- pdf2image的安装可以参考官方仓库:https://github.com/Belval/pdf2image
- Windows系统:需要在
LM.py文件中指定poppler_path文件路径 - Linux系统:注释掉
poppler_path相关配置即可
-
配置模型访问地址:
- 打开
demo/LM.py文件 - 配置
model_base_url为你的模型服务地址
- 打开
-
启动Demo演示界面:
python main2.py
- Demo界面将在你的IP:9420端口启动
推荐Prompt
通用:
prompt = "提取票据里面的所有信息"
or
结构化输出:
prompt = """
请从图片中提取以下字段内容,并以JSON格式返回,输出结构必须完全如下:
{
"商品明细": [
{
"项目名称": "",
"规格型号": "",
"单位": "",
"数量": "",
"单价": "",
"金额": "",
"税率/征收率": "",
"税额": ""
}
],
"合计": {
"金额合计": "",
"税额合计": ""
},
"发票信息": {
"发票类型": "",
"发票号码": "",
"开票日期": "",
"开票机关": "",
"购买方": {
"名称": "",
"统一社会信用代码/纳税人识别号": ""
},
"销售方": {
"名称": "",
"统一社会信用代码/纳税人识别号": ""
},
"价税合计": {
"大写": "",
"小写": ""
},
"备注": "",
"开票人": ""
}
}
"""
性能指标
基于内部测试数据集,模型在以下指标上表现优异:
| 指标 | 准确率 | 说明 |
|---|---|---|
| 发票代码 | 100% | 12位数字代码识别 |
| 发票号码 | 100% | 8位数字号码识别 |
| 纳税人识别号 | 100% | 15-20位税号识别 |
| 金额识别 | 100% | 中文大写金额识别 |
| 商品明细 | 100% | 多行商品信息提取 |
| 整体准确率 | 100% | 综合所有字段 |
硬件要求
| 设备 | 最低要求 | 推荐配置 |
|---|---|---|
| GPU内存 | 16GB | 24GB+ |
| 系统内存 | 32GB | 64GB+ |
| 推理速度 | ~5秒/张 | ~2秒/张 |
更新日志
- v0 (2026/01/07): 测试版本发布
- 基于Qwen3-VL-8B-Instruct微调
- 支持发票信息提取
许可证
本模型基于 Apache License 2.0 许可证开源。
免责声明
本模型处于测试版本,使用者应确保其使用方式符合相关法律法规。模型开发者不对因使用本模型而产生的任何直接或间接损失负责。
欢迎提交反馈和建议,帮助我们进一步优化模型表现
Description
Languages
Beef
44.4%
Jinja
38.7%
Roff
10.8%
Befunge
6.1%