ssdataanalysis's picture
Fix README content mapping
ce10d18 verified
|
Raw
History Blame Contribute Delete
6.02 kB

A newer version of the Gradio SDK is available: 6.22.0

Upgrade
metadata
title: Hebrew OCR Document Comparator
emoji: 🧾
colorFrom: blue
colorTo: indigo
sdk: gradio
sdk_version: 5.30.0
app_file: app.py
pinned: false
license: mit

Hebrew/English OCR Document Comparator (Zero-GPU)

This Space is configured specifically for Hebrew document OCR (printed + handwritten), with an optional English fallback when mixed language pages include English strings.

The scheduler is designed for ZeroGPU safety: by default it runs only the maximum number of selected models that fit in memory headroom and will queue the rest in automatic batches. All model inference runs locally inside your ZeroGPU runtime.

What this space includes

  • Checkbox-controlled model runner (unchecked models are skipped).
  • Per-model configuration file: model_registry.json (easy to add/remove models).
  • Ground-truth textbox for quick CER/WER scoring.
  • Local OCR inference for all listed models (Transformers runtime + Tesseract fallback).
  • Per-run preflight now validates each model’s config before execution. Any selected model that is not loadable in this Space’s local Transformers environment is marked as unsupported immediately and skipped, which prevents internal errors from unsupported repositories (for example ONNX/GGUF-only repos).
  • requirements.txt and apt.txt already include OCR dependencies, plus updated transformer runtime dependencies that improve model compatibility.
  • .huggingface/metadata preset for Gradio spaces.

Make it a private Zero-GPU Hugging Face Space

  1. In your Hugging Face account, create a new Space.
  2. Set Visibility: Private.
  3. Set Space SDK: Gradio.
  4. Choose Zero GPU / a10g hardware (zero-a10g).
  5. Upload all files from this directory (app.py, model_registry.json, requirements.txt, apt.txt, .huggingface/metadata, README.md).
  6. On first run, use HF_TOKEN from environment only if a selected model is private/gated and needs authenticated download.
  7. ZeroGPU spaces do not currently support changing sleep-time, so the runtime keeps its platform default idle behavior.
  8. The app keeps GPU work scoped to active runs by using a short activation hook during processing (instead of continuous warmup).

CLI flow (your current machine is already logged in)

If you want CLI-only deploy, run:

HF_SPACE=ssdataanalysis/hebrew-ocr-comparator
hf repos create $HF_SPACE --type space --sdk gradio --private --flavor zero-a10g --exist-ok
hf upload $HF_SPACE /Users/alexanders/ocr-document-ocr-comparison-space . --type space --commit-message "Initial upload"

The same repo is already created and uploaded from this machine in this folder:

https://huggingface.co/spaces/ssdataanalysis/hebrew-ocr-comparator

Model list provided

The following models are preloaded in model_registry.json:

  • Qwen3-VL-8B-Instruct
  • Qwen3-VL-8B-Thinking
  • Qwen3-VL-4B-Instruct
  • Qwen3-VL-4B-Thinking
  • Qwen3-VL-30B-A3B-Instruct
  • Qwen3-VL-30B-A3B-Thinking
  • Nemotron-OCR-v2
  • Gemma4 0.4B (E4B) Instruct
  • Gemma4 0.4B (E4B) Thinking
  • Gemma4 12B Instruct
  • Gemma4 12B Thinking
  • Gemma4 26B-A4B Instruct
  • Gemma4 26B-A4B Thinking
  • Gemma4 31B Instruct
  • Gemma4 31B Thinking
  • chandra2 (datalab-to/chandra-ocr-2)
  • ronylicha/gigapdf-ocr-hebrew
  • Qunie-V7-mini
  • OpenMLKitOCR
  • Tzefa-Word-OCR-TrOCR
  • Qunie-V7-Pico
  • aya-vision-32b
  • aya-vision-8b
  • Phi-4-multimodal-instruct
  • surya2 (datalab-to/surya-ocr-2)
  • PaddleOCR-VL
  • PaddleOCR-VL 1.5
  • PaddleOCR-VL 1.6
  • DeepSeek OCR-1 (deepseek-ai/DeepSeek-OCR)
  • DeepSeek OCR-2 (deepseek-ai/DeepSeek-OCR-2)
  • cyttic/exp10-trocr-hebrew-matan-full
  • cyttic/exp23-directfit-unfrozen
  • cyttic/heb-verifier17-connected
  • cyttic/exp26-composed1m
  • Tesseract (local)

Model outputs now request a high max_new_tokens budget by default (4096) for stronger coverage of long documents.

Add/remove models in the future

Edit model_registry.json:

  • Set "enabled": false to hide a model from the checkbox list.
  • Remove an entry entirely to delete it from the UI.
  • Add a new entry with:
    • id (unique stable ID)
    • name (UI label)
    • model_id (Hugging Face model path)
    • provider:
      • hf_chat or hf_image_to_text: both are mapped to local Transformers execution in this Space
      • tesseract (local OCR fallback)
    • Optional per-entry compatibility overrides:
      • pipeline_task: set explicit task string when auto-task probing is insufficient.
      • trust_remote_code: true when the repository needs custom loading code.
    • parameters and prompt (model-specific tuning)

Notes and caveats

  • Some large or gated models may be unavailable without a token.
  • Some checkpoint/config combinations can still be unsupported by the available local Transformers runtime and will show an error row instead of returning output.
  • This version enables trust_remote_code=True where required for model families that rely on remote loading code.
  • Tesseract output depends on the tesseract binary; this Space now requests tesseract-ocr, tesseract-ocr-eng, and tesseract-ocr-heb in apt.txt.
  • For strict production benchmarks, keep an optional fixed random seed in each entry if the model honors it.
  • This app logs only per-run outputs and derived metrics; it does not persist user images.
  • In the UI, use Compute mode:
    • Safe (recommended, avoid overrun): conservative concurrency based on free GPU memory.
    • Max compute (faster): more parallelism when runtime headroom is available.
    • Sequential only: one model at a time.

What changed for your requested OCR behavior

  • Prompts and UI text are aligned to document OCR with an explicit emphasis on printed + handwritten Hebrew pages.
  • Run only the models you check in the checkbox list to prevent unnecessary inference calls.
  • README and upload steps are prepared for CLI deployment under your logged-in account.
  • Local inference now uses CUDA-first strict mode by default, with CPU fallback disabled unless ALLOW_CPU_FALLBACK=1.