base_model:
- unsloth/Qwen2-VL-2B-Instruct-unsloth-bnb-4bit
tags:
- transformers
- unsloth
- qwen2_vl
- trl
- ocr
license: apache-2.0
language:
- ar
metrics:
- bleu
- wer
- cer
pipeline_tag: image-text-to-text
library_name: peft
Qari-OCR-Arabic-0.2.2.1-VL-2B-Instruct 模型
模型概述
本模型是基于unsloth/Qwen2-VL-2B-Instruct在阿拉伯语OCR数据集上微调的版本,专为整页阿拉伯文本的光学字符识别(OCR)优化。
核心特性
- 卓越准确率:在阿拉伯语OCR任务中达到顶尖性能指标
- 音标支持:完整识别阿拉伯语变音符号(tashkeel),包括开口符、齐齿符、合口符、静音符、叠音符及鼻音形式——这一优势已在以变音符号为主的测试数据集上得到验证
- 多字体兼容:支持多种阿拉伯语字体样式
- 版式适应:能处理不同文档布局和格式

技术细节
- 基础模型:Qwen2 VL
- 微调数据集:阿拉伯语OCR数据集
- 目标:高精度提取整页阿拉伯文本
- 支持语言:阿拉伯语
- 任务类型:OCR(光学字符识别)
- 数据集规模:50,000条记录
- 训练轮次:1
评估指标
采用三项标准指标进行评估:
- 词错误率(WER):衡量词级准确率(数值越低越好)
- 字符错误率(CER):衡量字符级准确率(数值越低越好)
- BLEU分数:评估整体识别质量(数值越高越好)
性能对比
模型 |
WER ↓ |
CER ↓ |
BLEU ↑ |
Qari-OCR-0.2.2.1-VL-2B-Instruct |
0.221 |
0.059 |
0.597 |
AIN 8B |
0.757 |
0.309 |
0.103 |
Qari-OCR-0.1-VL-2B-Instruct |
1.294 |
0.770 |
0.022 |
easyOCR |
1.004 |
0.648 |
0.005 |
pytesseract |
0.990 |
0.911 |
<0.001 |
WER对比图
CER对比图
BLEU分数对比图
训练详情
训练数据
模型训练采用以下参数配置:
- 字体尺寸:14、16、18、20、24、32、40磅
- 页面版式:
- A4(210mm×297mm)
- Letter(216mm×279mm)
- Small(105mm×148mm)
- Square(1080px×1080px)
- OneLine(210mm×10mm)
- 阿拉伯字体库:
- IBM Plex Sans Arabic
- KFGQPCUthman Taha Naskh
- Scheherazade New
- Amiri
- Madina
- Diwani Letter
- Tajawal
- Cairo
- Lateef
- Almarai
- AlQalam Quran
- Noto Naskh Arabic
使用限制
根据训练参数,本模型存在以下局限:
- 字体尺寸限制:对小于14磅或大于40磅的文本识别准确率可能下降
- 字体覆盖度:对训练数据未包含的罕见阿拉伯字体识别效果可能欠佳
- 变音符号复杂度:虽然支持变音符号(tashkeel),但对过于密集或非标准组合的识别准确率可能降低
- 版式敏感性:对复杂多栏布局或非常规页面格式处理能力有限
- 手写体识别:主要针对印刷字体训练,手写文本识别能力有限
- 艺术字体:对高度风格化的阿拉伯书法字体识别效果可能不佳
- 背景复杂度:优化针对纯净背景,复杂纹理背景可能影响识别
- 文本质量:对严重退化、模糊或低分辨率文本识别存在挑战
- 非标准朝向:主要针对横向文本设计,对垂直或倾斜文本识别能力有限
评估方法
评估在包含**大量变音符号(tashkeel)**的多样化阿拉伯文本图像数据集上进行,测量指标包括:
- 词错误率(WER):错误识别单词的百分比
- 字符错误率(CER):错误识别字符的百分比
- BLEU分数:文本识别质量的综合评估指标,分数越高表示整体识别效果越好
使用指南
试用Qari v0.2.2.1 - Google Colab
可通过transformers
和qwen_vl_utils
库加载本模型:
!pip install transformers qwen_vl_utils accelerate>=0.26.0 PEFT -U
!pip install -U bitsandbytes
from PIL import Image
from transformers import Qwen2VLForConditionalGeneration, AutoProcessor
import torch
import os
from qwen_vl_utils import process_vision_info