Model reference · open weights
Azra-1-Mini is an open-weight language model from OttomanNLP. AxForge deploys and operates it for you on dedicated EU-owned hardware — with the licence handled where one is required.
Available as managed deployment — configured and operated for you on dedicated EU hardware, quoted per deployment.
What it is
| Released by | OttomanNLP |
|---|---|
| Type | Language models |
| Task | Image→text |
| Parameters (lead) | 853M |
| Context | 256k tokens |
| Released | 2026-08-07 |
| Popularity | 746 downloads / month |
| Licence | Open weights |
About
Azra 1-Mini 0.8b is a lightweight, high-performance Vision-Language OCR model specialized in Ottoman Turkish text transcription across both Nesih (printed/calligraphic) and Rika/Riqa (handwritten) scripts.
Despite having only 0.8 billion parameters, Azra 1-Mini achieves state-of-the-art accuracy on Ottoman Turkish OCR tasks, outperforming significantly larger proprietary models.
⚠️ Important Note on Input Resolution & Segmentation: This model has been fine-tuned and optimized specifically for line-level text images (satır bazlı görüntüler). It may not achieve optimal accuracy directly on full-page images without prior text line cropping/segmentation.
The model was evaluated against leading proprietary Vision-Language models on standard Ottoman Turkish test sets using character accuracy (100% - CER).
| Model | Success Rate (%) | Rank |
|---|---|---|
| Gemini 3.1 Pro | 82.82% | 👑 1st |
| Azra 1-Mini 0.8b | 80.23% | 🥈 2nd |
| Qwen 3.8 Max | 74.26% | 🥉 3rd |
| Model | Success Rate (%) | Rank |
|---|---|---|
| Azra 1-Mini 0.8b | 67.08% | 👑 1st (Winner) |
| Gemini 3.1 Pro | 58.46% | 🥈 2nd |
| Qwen 3.8 Max | 54.99% | 🥉 3rd |
🌟 Key Highlight: Azra 1-Mini 0.8b achieves 1st place on the handwritten Rika dataset (67.08%), significantly outperforming both Gemini 3.1 Pro and Qwen 3.8 Max while running efficiently at sub-billion parameter scale.
Below are top qualitative predictions generated by Azra 1-Mini 0.8b from the evaluation test sets:
| Image | Ground Truth (GT) | Model Prediction (Azra 1-Mini) | CER |
|---|---|---|---|
امّا اری وابدار ونازک اولور هر اعجک زمان غرسی | امّا اری وابدار ونازک اولور هر اعجک زمان غرسی | 0.00% | |
هلاک ایدر ازایسه علاج ایله خلاص اولور | هلاک ایدر ازایسه علاج ایله خلاص اولور | 0.00% | |
یافوجی ایچنه دوشرلر اوّل التنه وافرد وکلمش خردل | یافوجی ایچنه دوشرلر اوّل التنه وافرد وکلمش خردل | 0.00% | |
اغزی محکم باغلنوب اول بوداق اکلوب یره کوملسه وقت | اغزی محکمه باغلنوب اول بوداق اکلوب یره کوملسه وقت | 2.08% | |
دکمک زماندر دیمش یعنی آیک نقصانی زمانی که اوّل | دکک زماندر دیمش یعنی آیک نقصانی زمانی که اوّل | 2.17% |
| Image | Ground Truth (GT) | Model Prediction (Azra 1-Mini) | CER |
|---|---|---|---|
دیمک طلب و دیانت بزدن، دین، شریعت، هدایت اللهدندر و بو هدایت ایکی | دیک طلب و دیانت بزدن، دین، شریعت، هدایت اللهدندر۔ و بوهدایت ایکی | 4.62% | |
ایتمک دون بنی تنویر ایدن کونشک یارین تنویر ایدهمیهجکنی ادعا ایتمک کبی قانون استقرایی انکاردر۔ | ایتمک دوند بنی تنویر ایدن کونشک یارین تنویر ایدرمهجیکنی ادعا ایتمک کبی قانون استقرالی انکاردر۔ | 5.38% | |
ایمانده نه قدر بیوک بر سعادت و نعمت؛ و نه قدر بیوک بر لذت و راحت بولوندیغنی اڭلامق | ایمانده نه قدر یوک بر سعادت ونعمت و نه قدر یوک بر لذت و راحت بولوندیغی اشلامم | 8.54% | |
”الله تعالی ابراهیم علیه السلامه وحی ایدوب دیدی که: اسماعیل حقندهکی دعاکی قبول ایتدم و اونی | "الله تعالی ابراهیم علمه السلام دحی ایدوب دیدی کی: اسماعیل حقندهکی دعاک قبول ایتدم واولی | 8.79% | |
بوراده مطلوب اولمامق لازم کلیر، فی الواقع "الصراط المستقیم" نظم جلیلی بزه علی الاطلاق | بوراده مطلوب اولاسون لازم کلیر۔ فی الواقع "الصراط المستقیم" نظام جلیلی بزه علی الاطام | 9.41% |
transformers)Below is the standard, native PyTorch & Hugging Face transformers implementation using AutoProcessor and Qwen3_5ForConditionalGeneration:
import os
import torch
from PIL import Image
from transformers import AutoProcessor, Qwen3_5ForConditionalGeneration
from qwen_vl_utils import process_vision_info
# Device & dtype settings
device = "cuda" if torch.cuda.is_available() else "cpu"
dtype = torch.float16 if device == "cuda" else torch.float32
model_id = "OttomanNLP/Azra-1-Mini-0.8b"
print("[INFO] Loading model and processor...")
processor = AutoProcessor.from_pretrained(model_id, trust_remote_code=True)
model = Qwen3_5ForConditionalGeneration.from_pretrained(
model_id,
torch_dtype=dtype,
device_map="auto" if device == "cuda" else None,
trust_remote_code=True
)
model.eval()
print("[INFO] Model loaded successfully!")
def extract_text(image_path: str, prompt: str = "Görseldeki Osmanlıca metni transkribe et:") -> str:
"""Extract Ottoman text from a line image"""
if not os.path.exists(image_path):
return f"File not found: {image_path}"
image = Image.open(image_path).convert("RGB")
# Adjust dimensions to multiples of 64
w, h = image.size
new_w = ((w + 63) // 64) * 64
new_h = ((h + 63) // 64) * 64
if (new_w, new_h) != (w, h):
image = image.resize((new_w, new_h), Image.Resampling.LANCZOS)
messages = [{
"role": "user",
"content": [
{"type": "image", "image": image},
{"type": "text", "text": prompt}
]
}]
text_input = processor.apply_chat_template(
messages, tokenize=False, add_generation_prompt=True
)
image_inputs, _ = process_vision_info(messages)
inputs = processor(
text=[text_input],
images=image_inputs,
padding=True,
return_tensors="pt"
).to(device)
with torch.inference_mode():
generated_ids = model.generate(
**inputs,
max_new_tokens=512,
do_sample=False,
repetition_penalty=1.2,
no_repeat_ngram_size=3,
pad_token_id=processor.tokenizer.pad_token_id,
eos_token_id=processor.tokenizer.eos_token_id,
)
input_len = inputs.input_ids.shape[1]
output_text = processor.batch_decode(
generated_ids[:, inpuFrom the published model card. Full card on the HuggingFace links in the sidebar.
Using it via the API
Once AxForge deploys azra-1-mini for you, it answers on the OpenAI-compatible API — the same base URL and keys as every other model. (azra-1-mini below is illustrative; you get the exact model name on deployment.)
$ curl -sS https://api.axforge.ai/v1/chat/completions \
-H "Authorization: Bearer $AXFORGE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"azra-1-mini","messages":[{"role":"user","content":"Hello"}]}'
Create an account — your API key is available in the console. 3M free tokens every 30 days with every new account.