215 lines
5.6 KiB
Markdown
215 lines
5.6 KiB
Markdown
|
|
# Invoice - 基于Qwen3-VL的发票信息提取模型
|
|||
|
|
|
|||
|
|
## 模型简介
|
|||
|
|
> ⚠️ **重要提示:当前为测试版本 (v0)**
|
|||
|
|
>
|
|||
|
|
> 此版本为早期测试模型,可能存在以下情况:
|
|||
|
|
> - 识别准确率待进一步优化(目前主要是提取为JSON数据,其它格式未作优化)
|
|||
|
|
> - 模型泛化能力不足
|
|||
|
|
> - 可能会出现无限重复Token,导致输出无限循环。(建议temperature设置为1)
|
|||
|
|
>
|
|||
|
|
> **正式版本将在后续推出**
|
|||
|
|
|
|||
|
|
Invoice模型是基于Qwen3-VL-8B-Instruct模型针对发票、票据信息提取任务进行专门微调的高准确率视觉语言模型。该模型专门设计用于从各种发票、票据图像中准确提取关键信息,包括但不限于:
|
|||
|
|
|
|||
|
|
- **发票基本信息**:发票代码、发票号码、开票日期、校验码等
|
|||
|
|
- **交易方信息**:销售方名称、纳税人识别号、地址电话、开户行及账号
|
|||
|
|
- **购买方信息**:购买方名称、纳税人识别号、地址电话、开户行及账号
|
|||
|
|
- **商品明细**:货物或应税劳务名称、规格型号、单位、数量、单价、金额
|
|||
|
|
- **税务信息**:税率、税额、价税合计(大写/小写)
|
|||
|
|
- **其他信息**:收款人、复核人、开票人等
|
|||
|
|
|
|||
|
|
|
|||
|
|
## 模型特点
|
|||
|
|
|
|||
|
|
### 🎯 高准确率
|
|||
|
|
- 专门针对中文发票场景优化,识别准确率高
|
|||
|
|
- 支持多种发票格式(增值税普通发票、专用发票、电子发票等)
|
|||
|
|
- 对模糊、倾斜、复杂背景的发票图像有较好的鲁棒性
|
|||
|
|
|
|||
|
|
### 🔧 技术优势
|
|||
|
|
- 基于先进的Qwen3-VL-8B-Instruct模型微调
|
|||
|
|
- 支持端到端的视觉-语言理解
|
|||
|
|
- 能够理解发票的版面结构和逻辑关系
|
|||
|
|
- 支持上下文理解和多轮对话
|
|||
|
|
|
|||
|
|
### 📱 应用场景
|
|||
|
|
- 企业财务自动化处理
|
|||
|
|
- 电子发票管理系统
|
|||
|
|
- 财务报销自动化
|
|||
|
|
- 税务申报辅助
|
|||
|
|
- 票据归档数字化
|
|||
|
|
|
|||
|
|
### 🌐 泛化能力
|
|||
|
|
- 在票据、文档等结构化信息提取任务上展示了较强的泛化能力
|
|||
|
|
- 支持多种版式理解和关键信息提取
|
|||
|
|
- 欢迎提交反馈和建议,帮助我们进一步优化模型表现
|
|||
|
|
|
|||
|
|
## 快速开始
|
|||
|
|
|
|||
|
|
## 体验地址
|
|||
|
|
|
|||
|
|
在线体验地址:https://fp.94209420.xyz/
|
|||
|
|
|
|||
|
|
### 环境安装
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 安装ModelScope
|
|||
|
|
pip install modelscope
|
|||
|
|
|
|||
|
|
# 安装相关依赖
|
|||
|
|
pip install "transformers>=4.57.0"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 模型下载
|
|||
|
|
|
|||
|
|
**使用ModelScope SDK下载:**
|
|||
|
|
```python
|
|||
|
|
from modelscope import snapshot_download
|
|||
|
|
model_dir = snapshot_download('FLYFAI/Invoice')
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**使用Git下载:**
|
|||
|
|
```bash
|
|||
|
|
git clone https://www.modelscope.cn/FLYFAI/Invoice.git
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**使用modelscope命令行工具下载:**
|
|||
|
|
```bash
|
|||
|
|
modelscope download --model FLYFAI/Invoice --local_dir ./Invoice
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 模型部署
|
|||
|
|
|
|||
|
|
### 推荐使用VLLM部署
|
|||
|
|
|
|||
|
|
启动模型建议使用VLLM以获得更好的性能和并发处理能力:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
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
|
|||
|
|
|
|||
|
|
1. **进入Demo目录并安装依赖:**
|
|||
|
|
```bash
|
|||
|
|
cd Invoice/demo
|
|||
|
|
pip install fastapi uvicorn jinja2 pillow openai pdf2image python-multipart
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
2. **处理PDF文件注意事项:**
|
|||
|
|
- pdf2image的安装可以参考官方仓库:https://github.com/Belval/pdf2image
|
|||
|
|
- Windows系统:需要在`LM.py`文件中指定`poppler_path`文件路径
|
|||
|
|
- Linux系统:注释掉`poppler_path`相关配置即可
|
|||
|
|
|
|||
|
|
3. **配置模型访问地址:**
|
|||
|
|
- 打开`demo/LM.py`文件
|
|||
|
|
- 配置`model_base_url`为你的模型服务地址
|
|||
|
|
|
|||
|
|
4. **启动Demo演示界面:**
|
|||
|
|
```bash
|
|||
|
|
python main2.py
|
|||
|
|
```
|
|||
|
|
- Demo界面将在你的IP:9420端口启动
|
|||
|
|
|
|||
|
|
## 推荐Prompt
|
|||
|
|
|
|||
|
|
通用:
|
|||
|
|
```python
|
|||
|
|
prompt = "提取票据里面的所有信息"
|
|||
|
|
```
|
|||
|
|
or
|
|||
|
|
|
|||
|
|
结构化输出:
|
|||
|
|
```python
|
|||
|
|
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](LICENSE) 许可证开源。
|
|||
|
|
|
|||
|
|
## 免责声明
|
|||
|
|
|
|||
|
|
本模型处于测试版本,使用者应确保其使用方式符合相关法律法规。模型开发者不对因使用本模型而产生的任何直接或间接损失负责。
|
|||
|
|
|
|||
|
|
欢迎提交反馈和建议,帮助我们进一步优化模型表现
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|