Downloads · 30 days
60
15% of all-time downloads
kranidiotis/ottoman-ocr-qwen2.5-vl-7b
ottoman-ocr-qwen2.5-vl-7b is a image-text-to-text model from kranidiotis. Use it for the image-text-to-text task on the model card, and read the license before you ship it in a product. It is set up for transformers. The card lists the license as apache-2.0.
This model is a fine-tuned version of Qwen/Qwen2.5-VL-7B-Instruct for Ottoman Turkish document OCR and transcription.
Downloads · 30 days
60
15% of all-time downloads
All-time downloads
409
Public
Parameters
8.3B
16.6 GB on disk
Likes
1
Public
Click a slice to open those files.
.safetensors16.6 GB · 100%
From the Hugging Face model README
This model is a fine-tuned version of Qwen/Qwen2.5-VL-7B-Instruct for Ottoman Turkish document OCR and transcription.
The model was fine-tuned using LoRA (Low-Rank Adaptation) on a dataset of Ottoman Turkish document images with their Modern Turkish transcriptions. It can transcribe Ottoman Turkish text (written in Arabic script) into Modern Turkish (Latin alphabet).
from transformers import AutoProcessor, Qwen2VLForConditionalGeneration
from PIL import Image
# Load model and processor
model = Qwen2VLForConditionalGeneration.from_pretrained(
"cavos/ottoman-ocr-qwen2.5-vl-7b",
torch_dtype=torch.bfloat16,
device_map="auto"
)
processor = AutoProcessor.from_pretrained("cavos/ottoman-ocr-qwen2.5-vl-7b")
# Prepare messages
messages = [
{
"role": "system",
"content": "You are an expert paleographer specializing in Ottoman Turkish documents written in Arabic script. Your task is to transcribe Ottoman Turkish handwritten or printed text lines into Modern Turkish.",
},
{
"role": "user",
"content": [
{"type": "image", "image": "path/to/image.png"},
{"type": "text", "text": "Bu Osmanli Turkcesi metin satirini Modern Turkceye transkribe et."},
],
}
]
# Process and generate
text = processor.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
from qwen_vl_utils import process_vision_info
image_inputs, _ = process_vision_info(messages)
inputs = processor(text=[text], images=image_inputs, padding=True, return_tensors="pt").to(model.device)
output_ids = model.generate(**inputs, max_new_tokens=512)
output = processor.tokenizer.batch_decode(output_ids[:, inputs.input_ids.shape[1]:], skip_special_tokens=True)[0]
print(output.strip())
This model was trained on a limited dataset and may not generalize well to all types of Ottoman Turkish documents. The training loss plateaued around 5.31, suggesting the model may need additional training or data for better performance.
Apache 2.0