SAVRN
Search Contact SAVRN

qwen3-vl-8b-hebrew-v20a-merged · Model Card

qwen3-vl-8b-hebrew-v20a-merged: Model Card

Written by Isaac Godfried, published under apache-2.0, revision 48a0e3993f1b, read 2026-10-05. Shown as written; SAVRN's own facts about this model are on its page.

Qwen3-VL-8B Hebrew v2.0a — merged weights (step 1800)

Cairo Genizah AI Transcription — formal analysis and write-up of the project The full account of the methods, training data, benchmarks and error analysis behind the Cairo Genizah AI transcription models. Search the transcribed corpus at Cairo Genizah AI.

Merged bf16 weights of the v2.0a checkpoint (v20a-ckpt, step 1800, commit af9df6a0): the LoRA adapters (language layers r16, vision tower) folded into Qwen3-VL-8B-Instruct. Ready for transformers, vLLM, or conversion. The image processor ships the model's resolution contract (min_pixels=6_500_000, max_pixels=7_000_000): send the largest image you have and let the processor resize it.

Status: current best of the series on both transcription benchmarks (Sep 2026) and the first checkpoint with text grounding. Serving demo: the Genizah Reader Space.

What it does

Diplomatic transcription of handwritten Hebrew-script manuscripts (Hebrew, Aramaic, Judaeo-Arabic) — Cairo Genizah documentary fragments and religious/Talmudic manuscript pages — plus grounding: phrase → box (locate), box → text (read_box), and page → lines with boxes. Coordinates are [x1, y1, x2, y2] normalized to 0–1000 of the input image.

benchmark (median aligned F1, single decode, T=0.1) v1.9a-1300 v2.0a-1800
Genizah religious-140 (GT rev 1.1) 0.816 0.849
Frozen PGP-131 documentary 0.862 0.875
locate: median IoU / centre hit (72 queries) 0.29 / 54% 0.47 / 78%
read_box: median CER (37 lines) 0.58 0.13

Known limits: it can hallucinate plausible text on damaged regions, occasionally loops, and its grounded-page line boxes are approximate (about 58% sit on the line they transcribe; phrase boxes are tighter). Not trained on Arabic, Latin or Greek script. Outputs are not scholarly transcriptions.

Usage

from transformers import AutoProcessor, Qwen3VLForConditionalGeneration
import torch
repo = "isaacmg/qwen3-vl-8b-hebrew-v20a-merged"
processor = AutoProcessor.from_pretrained(repo)
model = Qwen3VLForConditionalGeneration.from_pretrained(repo, torch_dtype=torch.bfloat16, device_map="auto")
prompt = ("This image is a manuscript fragment from the Cairo Genizah — handwritten Hebrew script "
          "(the language may be Hebrew, Judeo-Arabic, or Aramaic).\n\nTranscribe the text exactly as written, "
          "in reading order. Mark unclear characters with [?].\nWhere text is lost or illegible due to damage, "
          "write [...].\nDo NOT correct, restore, or complete from memory.\n\nReturn ONLY the transcription.")
messages = [{"role": "user", "content": [{"type": "image", "image": image}, {"type": "text", "text": prompt}]}]
text = processor.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = processor(text=[text], images=[image], return_tensors="pt").to(model.device)
out = model.generate(**inputs, max_new_tokens=4096, do_sample=True, temperature=0.1)
print(processor.batch_decode(out[:, inputs["input_ids"].shape[1]:], skip_special_tokens=True)[0])

Grounded page: "Transcribe this manuscript page line by line. Respond with ONLY a JSON array; each element {"text": "...", "bbox_2d": [x1, y1, x2, y2]} gives one line's transcription and its bounding box, coordinates normalized to 0-1000. Preserve reading order." — parse the array; a truncated reply still yields its closed elements.

Training data and credits

Manuscript images and editorial transcriptions for the KTIV portion of the training set were accessed through the Ktiv project of the National Library of Israel, with images from holding institutions including Cambridge University Library, the Jewish Theological Seminary and the British Library; that training set is not redistributed. Genizah documentary transcriptions derive from the Princeton Geniza Project. Synthetic renders: synthetic_hebrew_v3. Full lineage and the series table are on the v20a-ckpt card.