🚀 QARI-OCR v0.3: 構造化アラビア語文書理解
QARI-OCR v0.3は、構造化文書理解に特化したアラビア語光学文字認識用のビジョン言語モデルです。このモデルは、アラビア語のテキストを転写する際に、文書のレイアウト、HTMLタグ、および書式を維持する能力に優れています。
🚀 クイックスタート
このモデルは、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
model_name = "NAMAA-Space/Qari-OCR-v0.3-VL-2B-Instruct"
model = Qwen2VLForConditionalGeneration.from_pretrained(
model_name,
torch_dtype="auto",
device_map="auto"
)
processor = AutoProcessor.from_pretrained(model_name)
max_tokens = 2000
prompt = "Below is the image of one page of a document, as well as some raw textual content that was previously extracted for it. Just return the plain text representation of this document as if you were reading it naturally. Do not hallucinate."
image.save("image.png")
messages = [
{
"role": "user",
"content": [
{"type": "image", "image": f"file://{src}"},
{"type": "text", "text": prompt},
],
}
]
text = processor.apply_chat_template(
messages, tokenize=False, add_generation_prompt=True
)
image_inputs, video_inputs = process_vision_info(messages)
inputs = processor(
text=[text],
images=image_inputs,
videos=video_inputs,
padding=True,
return_tensors="pt",
)
inputs = inputs.to("cuda")
generated_ids = model.generate(**inputs, max_new_tokens=max_tokens)
generated_ids_trimmed = [
out_ids[len(in_ids) :] for in_ids, out_ids in zip(inputs.input_ids, generated_ids)
]
output_text = processor.batch_decode(
generated_ids_trimmed, skip_special_tokens=True, clean_up_tokenization_spaces=False
)[0]
os.remove(src)
print(output_text)
Google Colabでモデルを試すことができます。ノートブック
✨ 主な機能
- 📐 レイアウト認識: HTML/Markdownタグを使用して文書構造を維持します。
- 🔤 完全なダイアクリティクスサポート: タシーケル(アラビア語のダイアクリティカルマーク)を正確に認識します。
- 📝 複数フォント対応: 12種類のアラビア語フォント(14px - 100px)で学習されています。
- 🎯 構造優先設計: ヘッダー、本文、および複雑なレイアウトの文書に最適化されています。
- ⚡ 効率的なトレーニング: 10kサンプルで単一GPUでわずか11時間でトレーニングされています。
- 🖼️ 堅牢なパフォーマンス: 低解像度および劣化した画像を処理できます。
📚 ドキュメント
モデルの説明
モデルのパフォーマンス
指標 |
スコア |
文字誤り率 (CER) |
0.300 |
単語誤り率 (WER) |
0.485 |
BLEUスコア |
0.545 |
トレーニング時間 |
11時間 |
CO₂排出量 |
1.88 kg eq. |
比較優位性
QARI v0.2は生テキストの精度が高い(CER: 0.061)一方で、QARI v0.3は以下の点で優れています。
- ✅ HTML/Markdown構造の維持
- ✅ 文書レイアウトの理解
- ✅ 手書きテキスト認識(初期機能)
- ✅ v0.2よりも5倍高速なトレーニング
🔧 技術詳細
- ベースモデル: Qwen2-VL-2B-Instruct
- トレーニングデータ: HTMLマークアップ付きの10,000件の合成アラビア語文書
- 最適化: 4ビットLoRAアダプター (rank=16)
- ハードウェア: 単一NVIDIA A6000 GPU (48GB)
- フレームワーク: Unsloth + Hugging Face TRL
BibTeX:
@article{wasfy2025qari,
title={QARI-OCR: High-Fidelity Arabic Text Recognition through Multimodal Large Language Model Adaptation},
author={Wasfy, Ahmed and Nacar, Omer and Elkhateb, Abdelakreem and Reda, Mahmoud and Elshehy, Omar and Ammar, Adel and Boulila, Wadii},
journal={arXiv preprint arXiv:2506.02295},
year={2025}
}
📄 ライセンス
このモデルは、Apache-2.0ライセンスの下で提供されています。
その他の情報
属性 |
詳細 |
モデルタイプ |
ビジョン言語モデル |
トレーニングデータ |
NAMAA-Space/QariOCR-v0.3-markdown-mixed-dataset |
言語 |
アラビア語 |
評価指標 |
WER、CER、BLEU |
パイプラインタグ |
画像テキストからテキストへ |