基础模型: unsloth/Qwen2-VL-2B-Instruct
标签:
- 文本生成推理,文本提取
- 转换器
- unsloth/Qwen2-VL-2B-Instruct-16Bit
基础模型: unsloth/Qwen2-VL-2B-Instruct-16Bit
许可证: apache-2.0
语言:
- 英语
上传的微调模型
- 开发者: JackChew
- 许可证: apache-2.0
- 微调基础模型: unsloth/Qwen2-VL-2B-Instruct-16Bit
这个qwen2_vl模型使用Unsloth和Huggingface的TRL库训练速度提升了2倍。

模型描述
通义千问 QWEN OCR 是一个专注于文本提取的专有模型,专门设计用于从文档、表格和工资单的图像中提取文本。该模型的主要目标是提取图像中的完整/全部文本,同时确保不遗漏任何信息。
Qwen2-VL-2B-OCR是unsloth/Qwen2-VL-2B-Instruct的微调变体,专门针对光学字符识别(OCR)进行了优化。该模型训练用于从图像中提取完整和全部的文本,重点关注工资单、发票和表格等文档。该模型旨在提供准确的文本提取,信息丢失最小化,确保捕捉到每一个细节。
该模型使用最先进的图像到文本生成技术,可以无缝处理各种OCR任务,包括具有结构化布局的复杂文档中的文本。
预期用途
该模型的主要用途是从图像或文档中提取数据,特别是工资单和表格中的数据,不遗漏任何关键细节。它可以应用于各种领域,如工资系统、金融、法律文件分析以及任何需要文档提取的领域。
提示示例:
- 文本: 模型将最佳工作于
"从图像/工资单中提取所有文本,不遗漏任何内容"
。
模型基准
基准测试结果
基准测试 |
InternVL2-2B |
MiniCPM-V 2.0 |
Qwen2-VL-2B |
MMMUval |
36.3 |
38.2 |
41.1 |
DocVQAtest |
86.9 |
- |
90.1 |
InfoVQAtest |
58.9 |
- |
65.5 |
ChartQAtest |
76.2 |
- |
73.5 |
TextVQAval |
73.4 |
- |
79.7 |
OCRBench |
781 |
605 |
794 |
MTVQA |
- |
- |
20.0 |
VCRen easy |
- |
- |
81.45 |
VCRzh easy |
- |
- |
46.16 |
RealWorldQA |
57.3 |
55.8 |
62.9 |
MMEsum |
1876.8 |
1808.6 |
1872.0 |
MMBench-ENtest |
73.2 |
69.1 |
74.9 |
MMBench-CNtest |
70.9 |
66.5 |
73.5 |
MMBench-V1.1test |
69.6 |
65.8 |
72.2 |
MMT-Benchtest |
- |
- |
54.5 |
MMStar |
49.8 |
39.1 |
48.0 |
MMVetGPT-4-Turbo |
39.7 |
41.0 |
49.5 |
HallBenchavg |
38.0 |
36.1 |
41.7 |
MathVistatestmini |
46.0 |
39.8 |
43.0 |
MathVision |
- |
- |
12.4 |
经过微调后,该模型在提取工资单中所有相关部分(包括之前遗漏的扣除部分)方面有了显著改进。
示例输出对比

微调后的模型:
以下是工资单中提取的数据:
员工信息:
- 入职日期: 2018-06-23
- 工资周期: 2021年8月
- 员工姓名: Sally Harley
- 职位: 市场专员
- 部门: 市场部
收入:
收入 |
金额 |
扣除 |
金额 |
基本工资 |
10000 |
公积金 |
1200 |
激励金 |
1000 |
职业税 |
500 |
房屋租金 |
400 |
贷款 |
400 |
餐补 |
200 |
|
9500 |
总收入: $11,600
总扣除: $2,100
净工资: $9,500
雇主签名
员工签名
原始模型:
原始模型提取了以下数据,但遗漏了扣除部分:
- 入职日期: 2018-06-23
- 工资周期: 2021年8月
- 员工姓名: Sally Harley
- 职位: 市场专员
- 部门: 市场部
- 收入:
- 基本工资: $10,000
- 激励金: $1,000
- 房屋租金补贴: $400
- 餐补: $200
- 总收入: $11,600
- 总扣除: $2,100
- 净工资: $9,500
- 雇主签名: [签名]
- 员工签名: [签名]
- 此为系统生成的工资单
快速开始
以下是使用该模型的示例代码片段:
加载模型和处理器
from transformers import AutoProcessor, AutoModelForImageTextToText
processor = AutoProcessor.from_pretrained("JackChew/Qwen2-VL-2B-OCR")
model = AutoModelForImageTextToText.from_pretrained("JackChew/Qwen2-VL-2B-OCR")
加载图像
from PIL import Image
image_path = "xxxxx"
image = Image.open(image_path)
准备模型、预处理输入和执行推理
import requests
import torch
from torchvision import io
from typing import Dict
model = model.to("cuda")
conversation = [
{
"role":"user",
"content":[
{
"type":"image",
},
{
"type":"text",
"text":"从这张工资单中提取所有数据,不遗漏任何内容"
}
]
}
]
text_prompt = processor.apply_chat_template(conversation, add_generation_prompt=True)
inputs = processor(text=[text_prompt], images=[image], padding=True, return_tensors="pt")
inputs = inputs.to('cuda')
output_ids = model.generate(**inputs, max_new_tokens=2048)
generated_ids = [output_ids[len(input_ids):] for input_ids, output_ids in zip(inputs.input_ids, output_ids)]
output_text = processor.batch_decode(generated_ids, skip_special_tokens=True, clean_up_tokenization_spaces=True)
print(output_text)
处理推理过程中的CUDA内存问题
如果在模型推理过程中遇到CUDA内存问题,常见的解决方案是调整输入图像的大小以减少其尺寸。这有助于减少内存占用,使模型能够更高效地处理图像。
image = image.resize((image.width // 2, image.height // 2))
模型微调细节
该模型使用Unsloth框架进行微调,通过Huggingface的TRL(训练强化学习)库将训练速度提升了2倍。应用了LoRA(低秩适应)来微调仅一小部分参数,这显著减少了训练时间和计算资源。微调重点放在视觉和语言层,确保模型能够高效处理复杂的OCR任务。
可训练参数总数: 57,901,056
硬件要求
要运行此模型,建议至少拥有16 GB显存的GPU。训练需要大量内存,因此对于显存较小的GPU,可能需要较小的批大小或梯度累积。
模型架构
如果您想了解更多关于模型架构及其详细规格的信息,可以查看Hugging Face上的源页面链接:
Qwen2-VL-2B-Instruct 模型页面