{
  "schema_version": 2,
  "generated_at": "2026-11-04T21:59:15.749381+00:00",
  "run": {
    "id": "mvp_20260917 + new_models_20260919 + mistral_20261001 + gpt61_sol_full_20261002 + danish_fraktur_top5_20261104",
    "git_commit": "e47e83f4fc4555ca046684e3178576e5b340aa07, 19cb4597093fdebe339cfe66d40e0c68f8f23d35, 4e0f28836389caa9014af38e5fda4b7a6f980bcb",
    "seed": 20260917,
    "targets": {
      "line-recognition": 1000,
      "page-transcription": 100
    },
    "metric_policy": "Corpus CER/WER fractions; lower is better and values may exceed 1. Failed attempts are empty predictions scored against all selected references and are not retried. Complete means every selected sample was attempted, not that every prediction succeeded. Text is NFC-normalized and whitespace-collapsed; case and punctuation are preserved. Page metrics do not score layout structure.",
    "counts": {
      "models": 22,
      "datasets": 10,
      "sample_sets": 12,
      "jobs": 227,
      "completed": 227,
      "running": 0,
      "pending": 0,
      "failed": 0,
      "blocked": 0,
      "successful_samples": 139079,
      "failed_samples": 1515,
      "recorded_samples": 140594
    },
    "warnings": []
  },
  "tasks": [
    {
      "id": "line-recognition",
      "label": "Line recognition"
    },
    {
      "id": "page-transcription",
      "label": "Page transcription"
    }
  ],
  "models": [
    {
      "id": "EasyOCR/Scandinavian",
      "name": "EasyOCR/Scandinavian",
      "supported_tasks": [
        "line-recognition"
      ],
      "family": "EasyOCR",
      "license": "apache-2.0",
      "reference": "https://github.com/JaidedAI/EasyOCR",
      "notes": "Conventional recognition-only baseline for pre-cropped lines",
      "warnings": []
    },
    {
      "id": "Riksarkivet/trocr-base-handwritten-hist-swe-2",
      "name": "Riksarkivet/trocr-base-handwritten-hist-swe-2",
      "supported_tasks": [
        "line-recognition"
      ],
      "family": "TrOCR",
      "license": "apache-2.0",
      "reference": "https://huggingface.co/Riksarkivet/trocr-base-handwritten-hist-swe-2",
      "notes": "Swedish handwriting from 1600-1900; use riksarkivet-ood to avoid training overlap",
      "warnings": []
    },
    {
      "id": "Sprakbanken/TrOCR-norhand-v3",
      "name": "Sprakbanken/TrOCR-norhand-v3",
      "supported_tasks": [
        "line-recognition"
      ],
      "family": "TrOCR",
      "license": "cc-by-4.0",
      "reference": "https://huggingface.co/Sprakbanken/TrOCR-norhand-v3",
      "notes": "Norwegian historical handwriting model fine-tuned on NorHand v3; norhand is an in-domain evaluation",
      "warnings": []
    },
    {
      "id": "stepfun-ai/GOT-OCR-2.0-hf",
      "name": "stepfun-ai/GOT-OCR-2.0-hf",
      "supported_tasks": [
        "line-recognition",
        "page-transcription"
      ],
      "family": "GOT-OCR 2.0",
      "license": "apache-2.0",
      "reference": "https://huggingface.co/stepfun-ai/GOT-OCR-2.0-hf",
      "notes": "0.6B multilingual OCR model for line and page transcription",
      "warnings": [
        "repetition"
      ]
    },
    {
      "id": "zai-org/GLM-OCR",
      "name": "zai-org/GLM-OCR",
      "supported_tasks": [
        "line-recognition",
        "page-transcription"
      ],
      "family": "GLM-OCR",
      "license": "mit",
      "reference": "https://huggingface.co/zai-org/GLM-OCR",
      "notes": "0.9B OCR model evaluated zero-shot on Scandinavian text recognition",
      "warnings": []
    },
    {
      "id": "PaddlePaddle/PaddleOCR-VL-1.6",
      "name": "PaddlePaddle/PaddleOCR-VL-1.6",
      "supported_tasks": [
        "line-recognition"
      ],
      "family": "PaddleOCR-VL",
      "license": "apache-2.0",
      "reference": "https://huggingface.co/PaddlePaddle/PaddleOCR-VL-1.6",
      "notes": "0.9B multilingual OCR model for cropped line recognition",
      "warnings": []
    },
    {
      "id": "Qwen/Qwen2-VL-2B-Instruct",
      "name": "Qwen/Qwen2-VL-2B-Instruct",
      "supported_tasks": [
        "line-recognition",
        "page-transcription"
      ],
      "license": "apache-2.0",
      "reference": "https://huggingface.co/Qwen/Qwen2-VL-2B-Instruct",
      "notes": "Qwen2 2B OCR baseline",
      "family": "Qwen",
      "warnings": []
    },
    {
      "id": "Qwen/Qwen3-VL-2B-Instruct",
      "name": "Qwen/Qwen3-VL-2B-Instruct",
      "supported_tasks": [
        "line-recognition",
        "page-transcription"
      ],
      "license": "apache-2.0",
      "reference": "https://huggingface.co/Qwen/Qwen3-VL-2B-Instruct",
      "notes": "Qwen3 2B OCR baseline",
      "family": "Qwen",
      "warnings": []
    },
    {
      "id": "Qwen/Qwen3-VL-4B-Instruct",
      "name": "Qwen/Qwen3-VL-4B-Instruct",
      "supported_tasks": [
        "line-recognition",
        "page-transcription"
      ],
      "license": "apache-2.0",
      "reference": "https://huggingface.co/Qwen/Qwen3-VL-4B-Instruct",
      "notes": "Qwen3 4B OCR baseline",
      "family": "Qwen",
      "warnings": []
    },
    {
      "id": "Qwen/Qwen2-VL-7B-Instruct",
      "name": "Qwen/Qwen2-VL-7B-Instruct",
      "supported_tasks": [
        "line-recognition",
        "page-transcription"
      ],
      "license": "apache-2.0",
      "reference": "https://huggingface.co/Qwen/Qwen2-VL-7B-Instruct",
      "notes": "Qwen2 7B OCR baseline",
      "family": "Qwen",
      "warnings": []
    },
    {
      "id": "Tesseract/tessdata_best-dan",
      "name": "Tesseract/tessdata_best-dan",
      "supported_tasks": [
        "line-recognition",
        "page-transcription"
      ],
      "family": "Tesseract",
      "license": "apache-2.0",
      "reference": "https://github.com/tesseract-ocr/tessdata_best/blob/main/dan.traineddata",
      "notes": "Tesseract LSTM baseline for Danish printed OCR",
      "warnings": []
    },
    {
      "id": "Tesseract/tessdata_best-nor",
      "name": "Tesseract/tessdata_best-nor",
      "supported_tasks": [
        "line-recognition",
        "page-transcription"
      ],
      "family": "Tesseract",
      "license": "apache-2.0",
      "reference": "https://github.com/tesseract-ocr/tessdata_best/blob/main/nor.traineddata",
      "notes": "Tesseract LSTM baseline for Norwegian printed OCR",
      "warnings": []
    },
    {
      "id": "Tesseract/tessdata_best-swe",
      "name": "Tesseract/tessdata_best-swe",
      "supported_tasks": [
        "line-recognition",
        "page-transcription"
      ],
      "family": "Tesseract",
      "license": "apache-2.0",
      "reference": "https://github.com/tesseract-ocr/tessdata_best/blob/main/swe.traineddata",
      "notes": "Tesseract LSTM baseline for Swedish printed OCR",
      "warnings": []
    },
    {
      "id": "HuggingFaceTB/SmolVLM2-2.2B-Instruct",
      "name": "HuggingFaceTB/SmolVLM2-2.2B-Instruct",
      "supported_tasks": [
        "line-recognition",
        "page-transcription"
      ],
      "family": "SmolVLM2",
      "license": "apache-2.0",
      "reference": "https://huggingface.co/HuggingFaceTB/SmolVLM2-2.2B-Instruct",
      "notes": "BF16, greedy decoding, thinking disabled; zero-shot Scandinavian OCR.",
      "warnings": []
    },
    {
      "id": "google/gemma-4-E2B-it",
      "name": "google/gemma-4-E2B-it",
      "supported_tasks": [
        "line-recognition",
        "page-transcription"
      ],
      "family": "Gemma 4",
      "license": "apache-2.0",
      "reference": "https://huggingface.co/google/gemma-4-E2B-it",
      "notes": "BF16, greedy decoding, thinking disabled; zero-shot Scandinavian OCR.",
      "warnings": []
    },
    {
      "id": "google/gemma-3-4b-it",
      "name": "google/gemma-3-4b-it",
      "supported_tasks": [
        "line-recognition",
        "page-transcription"
      ],
      "family": "Gemma 3",
      "license": "gemma",
      "reference": "https://huggingface.co/google/gemma-3-4b-it",
      "notes": "BF16, greedy decoding, thinking disabled; zero-shot Scandinavian OCR.",
      "warnings": []
    },
    {
      "id": "Qwen/Qwen3.5-2B",
      "name": "Qwen/Qwen3.5-2B",
      "supported_tasks": [
        "line-recognition",
        "page-transcription"
      ],
      "family": "Qwen 3.5",
      "license": "apache-2.0",
      "reference": "https://huggingface.co/Qwen/Qwen3.5-2B",
      "notes": "BF16, greedy decoding, thinking disabled; zero-shot Scandinavian OCR.",
      "warnings": []
    },
    {
      "id": "datalab-to/chandra-ocr-2",
      "name": "datalab-to/chandra-ocr-2",
      "supported_tasks": [
        "line-recognition",
        "page-transcription"
      ],
      "family": "Chandra",
      "license": "modified-openrail-m",
      "reference": "https://huggingface.co/datalab-to/chandra-ocr-2",
      "notes": "Native layout prompt; HTML text only for CER/WER, generated image descriptions excluded. Bounded image/token budgets.",
      "warnings": []
    },
    {
      "id": "Qwen/Qwen3.5-4B",
      "name": "Qwen/Qwen3.5-4B",
      "supported_tasks": [
        "line-recognition",
        "page-transcription"
      ],
      "family": "Qwen 3.5",
      "license": "apache-2.0",
      "reference": "https://huggingface.co/Qwen/Qwen3.5-4B",
      "notes": "BF16, greedy decoding, thinking disabled; zero-shot Scandinavian OCR.",
      "warnings": []
    },
    {
      "id": "google/gemma-4-E4B-it",
      "name": "google/gemma-4-E4B-it",
      "supported_tasks": [
        "line-recognition",
        "page-transcription"
      ],
      "family": "Gemma 4",
      "license": "apache-2.0",
      "reference": "https://huggingface.co/google/gemma-4-E4B-it",
      "notes": "BF16, greedy decoding, thinking disabled; zero-shot Scandinavian OCR.",
      "warnings": []
    },
    {
      "id": "Mistral/mistral-ocr-4-1",
      "name": "Mistral/mistral-ocr-4-1",
      "family": "Mistral OCR",
      "reference": "https://docs.mistral.ai/models/ocr-4-1",
      "notes": "Dedicated OCR API; raw Markdown output.",
      "license": "proprietary",
      "supported_tasks": [
        "line-recognition",
        "page-transcription"
      ],
      "warnings": []
    },
    {
      "id": "OpenAI/gpt-6.1-sol",
      "name": "OpenAI/gpt-6.1-sol",
      "family": "GPT-6.1",
      "reference": "https://developers.openai.com/api/docs/models/gpt-6.1-sol",
      "notes": "Standard API, low reasoning, original image detail.",
      "license": "proprietary",
      "supported_tasks": [
        "line-recognition",
        "page-transcription"
      ],
      "warnings": []
    }
  ],
  "datasets": [
    {
      "id": "norhand",
      "label": "NorHand handwriting",
      "language_codes": [
        "no"
      ],
      "document_type": "handwritten",
      "source_url": "https://huggingface.co/datasets/Teklia/NorHand-v2-line",
      "tasks": [
        "line-recognition"
      ],
      "warnings": []
    },
    {
      "id": "danish-typewritten",
      "label": "Danish diplomatic reports · typewritten",
      "language_codes": [
        "da"
      ],
      "document_type": "printed",
      "source_url": "https://huggingface.co/datasets/V4ldeLund/ehri-danish-typewritten-lines",
      "tasks": [
        "line-recognition"
      ],
      "warnings": []
    },
    {
      "id": "modern-danish",
      "label": "Modern Danish handwriting",
      "language_codes": [
        "da"
      ],
      "document_type": "handwritten",
      "source_url": "https://huggingface.co/datasets/RA-Data-Science/modern-danish-handwriting",
      "tasks": [
        "line-recognition",
        "page-transcription"
      ],
      "warnings": [
        "source-train-split"
      ]
    },
    {
      "id": "riksarkivet-ood",
      "label": "Riksarkivet OOD handwriting",
      "language_codes": [
        "sv"
      ],
      "document_type": "handwritten",
      "source_url": "https://huggingface.co/datasets/Riksarkivet/eval_htr_out_of_domain_lines",
      "tasks": [
        "line-recognition"
      ],
      "warnings": []
    },
    {
      "id": "swedish-fraktur",
      "label": "Swedish Fraktur print",
      "language_codes": [
        "sv"
      ],
      "document_type": "printed",
      "source_url": "https://huggingface.co/datasets/Riksarkivet/swedish_fraktur",
      "tasks": [
        "line-recognition"
      ],
      "warnings": [
        "source-train-split"
      ]
    },
    {
      "id": "historical-danish",
      "label": "Historical Danish handwriting",
      "language_codes": [
        "da"
      ],
      "document_type": "handwritten",
      "source_url": "https://huggingface.co/datasets/aarhus-city-archives/historical-danish-handwriting",
      "tasks": [
        "line-recognition",
        "page-transcription"
      ],
      "warnings": [
        "source-train-split"
      ]
    },
    {
      "id": "oj4ocrmt-danish",
      "label": "EU Official Journal · Danish",
      "language_codes": [
        "da"
      ],
      "document_type": "printed",
      "source_url": "https://huggingface.co/datasets/hltcoe/OJ4OCRMT",
      "tasks": [
        "page-transcription"
      ],
      "warnings": [
        "pdf-reference"
      ]
    },
    {
      "id": "oj4ocrmt-swedish",
      "label": "EU Official Journal · Swedish",
      "language_codes": [
        "sv"
      ],
      "document_type": "printed",
      "source_url": "https://huggingface.co/datasets/hltcoe/OJ4OCRMT",
      "tasks": [
        "page-transcription"
      ],
      "warnings": [
        "pdf-reference"
      ]
    },
    {
      "id": "nasjonalt-vitenarkiv",
      "label": "Nasjonalt vitenarkiv · Norwegian documents",
      "language_codes": [
        "no"
      ],
      "document_type": "printed",
      "source_url": "https://huggingface.co/datasets/danish-foundation-models/nasjonalt-vitenarkiv",
      "tasks": [
        "page-transcription"
      ],
      "warnings": [
        "source-train-split",
        "pdf-reference"
      ]
    },
    {
      "id": "danish-fraktur",
      "label": "Danish Fraktur books",
      "language_codes": [
        "da"
      ],
      "document_type": "printed",
      "source_url": "https://github.com/V4ldeSalnikov/OCR-eval/tree/main/ocr_datasets/data/danish_fraktur",
      "tasks": [
        "page-transcription"
      ],
      "version": "1.0.0",
      "warnings": [
        "fraktur-reference-review"
      ]
    }
  ],
  "sample_sets": [
    {
      "id": "line-recognition/norhand",
      "dataset_id": "norhand",
      "task": "line-recognition",
      "selected_samples": 1000,
      "target_samples": 1000,
      "source_revision": "043eac3946fd2a831d8aa9f7c9f57f46647f80ab",
      "split": "test",
      "sampling_method": "Seeded uniform sampling across the full source split",
      "manifest_sha256": "c2c786a880db79805c909adfd3347bec1dc10b646553a73337d4023479a14c8c",
      "reference_type": "annotated_text"
    },
    {
      "id": "line-recognition/danish-typewritten",
      "dataset_id": "danish-typewritten",
      "task": "line-recognition",
      "selected_samples": 1000,
      "target_samples": 1000,
      "source_revision": "188bea095dfbc898017c74d14e6d0a0c84cddad7",
      "split": "test",
      "sampling_method": "Seeded uniform sampling across the full source split",
      "manifest_sha256": "36772360277ddec89a1760a459ca0d2d8394b5f8ae8523be31af5f598e472478",
      "reference_type": "annotated_text"
    },
    {
      "id": "line-recognition/modern-danish",
      "dataset_id": "modern-danish",
      "task": "line-recognition",
      "selected_samples": 977,
      "target_samples": 1000,
      "source_revision": "51773641267840022aa9a4e8a1129b4d751d2070",
      "split": "train",
      "sampling_method": "Seeded uniform lines from all modern pages",
      "manifest_sha256": "d3f4270dfbe1eba5ca97afcdd991288c42d675e5af36c7a4cb0a1884e37cf0f5",
      "reference_type": "annotated_text"
    },
    {
      "id": "line-recognition/riksarkivet-ood",
      "dataset_id": "riksarkivet-ood",
      "task": "line-recognition",
      "selected_samples": 1000,
      "target_samples": 1000,
      "source_revision": "9b71f0c96f64766374ea69810f2e10ad82c990b6",
      "split": "test",
      "sampling_method": "Seeded balanced sampling across the 19 archive/document source files",
      "manifest_sha256": "abea8f441d15b2c6e208bca6c41459dfe6691e185ff46a2741b4dec088db5ddf",
      "reference_type": "annotated_text"
    },
    {
      "id": "line-recognition/swedish-fraktur",
      "dataset_id": "swedish-fraktur",
      "task": "line-recognition",
      "selected_samples": 1000,
      "target_samples": 1000,
      "source_revision": "52f60a14e1724ba7e82440f88361c2e52145b887",
      "split": "train",
      "sampling_method": "Seeded uniform sampling across the full source split",
      "manifest_sha256": "472a311b0d5eb26a23f7dd9ba983dab0cde4c03eed040156713e44dff4c374e0",
      "reference_type": "annotated_text"
    },
    {
      "id": "line-recognition/historical-danish",
      "dataset_id": "historical-danish",
      "task": "line-recognition",
      "selected_samples": 1000,
      "target_samples": 1000,
      "source_revision": "17b6da815b91a34dbe2f7c20220c664ab601c341",
      "split": "train",
      "sampling_method": "Seeded uniform lines from 100 document-balanced frozen pages",
      "manifest_sha256": "82962c6f78884b978ec78720c1d5cb50cf0fc7963c6ac04565cb105a1917704f",
      "reference_type": "annotated_text"
    },
    {
      "id": "page-transcription/modern-danish",
      "dataset_id": "modern-danish",
      "task": "page-transcription",
      "selected_samples": 100,
      "target_samples": 100,
      "source_revision": "51773641267840022aa9a4e8a1129b4d751d2070",
      "split": "train",
      "sampling_method": "Seeded balanced sampling across document IDs",
      "manifest_sha256": "b44fae20bfee8088f2dc5944a644384da83d6f9b911f35d273255a779360066f",
      "reference_type": "annotated_text"
    },
    {
      "id": "page-transcription/historical-danish",
      "dataset_id": "historical-danish",
      "task": "page-transcription",
      "selected_samples": 100,
      "target_samples": 100,
      "source_revision": "17b6da815b91a34dbe2f7c20220c664ab601c341",
      "split": "train",
      "sampling_method": "Seeded balanced sampling across document IDs",
      "manifest_sha256": "0f1e09276d3003319232f2721fcd9cd82aaeaa682394dc8144c473e119af70ab",
      "reference_type": "annotated_text"
    },
    {
      "id": "page-transcription/oj4ocrmt-danish",
      "dataset_id": "oj4ocrmt-danish",
      "task": "page-transcription",
      "selected_samples": 100,
      "target_samples": 100,
      "source_revision": "15960b0c7a682b1fd1c19f560ac07d17a07214a5",
      "split": "test",
      "sampling_method": "Seeded balanced sampling across official regular-test documents",
      "manifest_sha256": "dbed601a0b46b6d391e53cde5b8a1eb53d7dcfc95953d1f7f6e9cddf28384248",
      "reference_type": "pdf_text"
    },
    {
      "id": "page-transcription/oj4ocrmt-swedish",
      "dataset_id": "oj4ocrmt-swedish",
      "task": "page-transcription",
      "selected_samples": 100,
      "target_samples": 100,
      "source_revision": "15960b0c7a682b1fd1c19f560ac07d17a07214a5",
      "split": "test",
      "sampling_method": "Seeded balanced sampling across official regular-test documents",
      "manifest_sha256": "c583aabae91f588a342b8cc25fc5a4371be839a7b9abf6be9d3489d02f284f23",
      "reference_type": "pdf_text"
    },
    {
      "id": "page-transcription/nasjonalt-vitenarkiv",
      "dataset_id": "nasjonalt-vitenarkiv",
      "task": "page-transcription",
      "selected_samples": 100,
      "target_samples": 100,
      "source_revision": "5db862bd176c960d891ce1779cf18d05785cdab5",
      "split": "train",
      "sampling_method": "Seeded balanced pages across the 19 configured Norwegian PDFs",
      "manifest_sha256": "c5473b4c55cae1e6b6595088683aa7b4bb941b2f6a231864edc08417429757d2",
      "reference_type": "pdf_text"
    },
    {
      "id": "page-transcription/danish-fraktur",
      "dataset_id": "danish-fraktur",
      "task": "page-transcription",
      "selected_samples": 20,
      "target_samples": 20,
      "source_revision": "1.0.0-draft",
      "split": "test",
      "sampling_method": "All 20 pages in the frozen Danish Fraktur 1.0.0-draft manifest, original order",
      "manifest_sha256": "2e951a866b3cc326d2fe6db71de7dc78271d686cba36684c1adc3d80f1079268",
      "reference_type": "annotated_text"
    }
  ],
  "results": [
    {
      "run_id": "mvp_20260917",
      "model_id": "EasyOCR/Scandinavian",
      "sample_set_id": "line-recognition/norhand",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.7493068015005708,
        "wer": 1.0782768102658111
      },
      "batch_size": 1,
      "model_revision": null,
      "started_at": "2026-09-17T14:54:01.816759+00:00",
      "finished_at": "2026-09-17T14:54:09.130153+00:00",
      "warnings": [],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/EasyOCR--Scandinavian/line-recognition/norhand.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "EasyOCR/Scandinavian",
      "sample_set_id": "line-recognition/danish-typewritten",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.06701769250943129,
        "wer": 0.3334644121116791
      },
      "batch_size": 1,
      "model_revision": null,
      "started_at": "2026-09-17T14:46:39.745984+00:00",
      "finished_at": "2026-09-17T14:47:18.040668+00:00",
      "warnings": [],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/EasyOCR--Scandinavian/line-recognition/danish-typewritten.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "EasyOCR/Scandinavian",
      "sample_set_id": "line-recognition/modern-danish",
      "status": "completed",
      "completed_samples": 977,
      "successful_samples": 977,
      "failed_samples": 0,
      "selected_samples": 977,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.49323239969719906,
        "wer": 1.0143821022727273
      },
      "batch_size": 1,
      "model_revision": null,
      "started_at": "2026-09-17T14:54:21.564180+00:00",
      "finished_at": "2026-09-17T14:54:23.812428+00:00",
      "warnings": [
        "line-crop"
      ],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/EasyOCR--Scandinavian/line-recognition/modern-danish.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "EasyOCR/Scandinavian",
      "sample_set_id": "line-recognition/riksarkivet-ood",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.8103744246796866,
        "wer": 1.039331062248374
      },
      "batch_size": 1,
      "model_revision": null,
      "started_at": "2026-09-17T15:28:48.125438+00:00",
      "finished_at": "2026-09-17T15:29:12.567326+00:00",
      "warnings": [],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/EasyOCR--Scandinavian/line-recognition/riksarkivet-ood.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "EasyOCR/Scandinavian",
      "sample_set_id": "line-recognition/swedish-fraktur",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.22006220839813376,
        "wer": 0.6711647727272727
      },
      "batch_size": 1,
      "model_revision": null,
      "started_at": "2026-09-17T15:40:25.900529+00:00",
      "finished_at": "2026-09-17T15:40:45.980862+00:00",
      "warnings": [],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/EasyOCR--Scandinavian/line-recognition/swedish-fraktur.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "EasyOCR/Scandinavian",
      "sample_set_id": "line-recognition/historical-danish",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.7901606425702812,
        "wer": 1.0597900502053856
      },
      "batch_size": 1,
      "model_revision": null,
      "started_at": "2026-09-17T16:17:51.540864+00:00",
      "finished_at": "2026-09-17T16:18:15.350324+00:00",
      "warnings": [],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/EasyOCR--Scandinavian/line-recognition/historical-danish.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Riksarkivet/trocr-base-handwritten-hist-swe-2",
      "sample_set_id": "line-recognition/norhand",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.21627793182188876,
        "wer": 0.5651695692025664
      },
      "batch_size": 16,
      "model_revision": "aa79fcb1850bf3155ebc442570d6c6bfc0ac8100",
      "started_at": "2026-09-17T14:44:09.719050+00:00",
      "finished_at": "2026-09-17T14:45:39.766457+00:00",
      "warnings": [],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Riksarkivet--trocr-base-handwritten-hist-swe-2/line-recognition/norhand.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Riksarkivet/trocr-base-handwritten-hist-swe-2",
      "sample_set_id": "line-recognition/danish-typewritten",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.28790171276402593,
        "wer": 0.7095294271857386
      },
      "batch_size": 16,
      "model_revision": "aa79fcb1850bf3155ebc442570d6c6bfc0ac8100",
      "started_at": "2026-09-17T14:48:22.769400+00:00",
      "finished_at": "2026-09-17T14:53:48.565638+00:00",
      "warnings": [],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Riksarkivet--trocr-base-handwritten-hist-swe-2/line-recognition/danish-typewritten.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Riksarkivet/trocr-base-handwritten-hist-swe-2",
      "sample_set_id": "line-recognition/modern-danish",
      "status": "completed",
      "completed_samples": 977,
      "successful_samples": 977,
      "failed_samples": 0,
      "selected_samples": 977,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.3123088569265708,
        "wer": 0.6867897727272727
      },
      "batch_size": 16,
      "model_revision": "aa79fcb1850bf3155ebc442570d6c6bfc0ac8100",
      "started_at": "2026-09-17T14:54:35.896463+00:00",
      "finished_at": "2026-09-17T14:55:51.509451+00:00",
      "warnings": [
        "line-crop"
      ],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Riksarkivet--trocr-base-handwritten-hist-swe-2/line-recognition/modern-danish.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Riksarkivet/trocr-base-handwritten-hist-swe-2",
      "sample_set_id": "line-recognition/riksarkivet-ood",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.10789899241199154,
        "wer": 0.3288943945493961
      },
      "batch_size": 16,
      "model_revision": "aa79fcb1850bf3155ebc442570d6c6bfc0ac8100",
      "started_at": "2026-09-17T15:29:20.302620+00:00",
      "finished_at": "2026-09-17T15:31:18.353847+00:00",
      "warnings": [],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Riksarkivet--trocr-base-handwritten-hist-swe-2/line-recognition/riksarkivet-ood.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Riksarkivet/trocr-base-handwritten-hist-swe-2",
      "sample_set_id": "line-recognition/swedish-fraktur",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.14415424023419632,
        "wer": 0.4211647727272727
      },
      "batch_size": 16,
      "model_revision": "aa79fcb1850bf3155ebc442570d6c6bfc0ac8100",
      "started_at": "2026-09-17T15:40:53.609304+00:00",
      "finished_at": "2026-09-17T15:42:27.704637+00:00",
      "warnings": [],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Riksarkivet--trocr-base-handwritten-hist-swe-2/line-recognition/swedish-fraktur.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Riksarkivet/trocr-base-handwritten-hist-swe-2",
      "sample_set_id": "line-recognition/historical-danish",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.3375353264911498,
        "wer": 0.7104062072113191
      },
      "batch_size": 16,
      "model_revision": "aa79fcb1850bf3155ebc442570d6c6bfc0ac8100",
      "started_at": "2026-09-17T16:18:22.874622+00:00",
      "finished_at": "2026-09-17T16:19:34.749277+00:00",
      "warnings": [],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Riksarkivet--trocr-base-handwritten-hist-swe-2/line-recognition/historical-danish.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Sprakbanken/TrOCR-norhand-v3",
      "sample_set_id": "line-recognition/norhand",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.06080574131463057,
        "wer": 0.17360219981668196
      },
      "batch_size": 16,
      "model_revision": "d22eebb5312ac5190b1b1744c5727faa0d3f353d",
      "started_at": "2026-09-17T14:56:03.067809+00:00",
      "finished_at": "2026-09-17T14:57:29.028233+00:00",
      "warnings": [
        "in-domain"
      ],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Sprakbanken--TrOCR-norhand-v3/line-recognition/norhand.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Sprakbanken/TrOCR-norhand-v3",
      "sample_set_id": "line-recognition/danish-typewritten",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.02973632713994634,
        "wer": 0.13750163848472932
      },
      "batch_size": 16,
      "model_revision": "d22eebb5312ac5190b1b1744c5727faa0d3f353d",
      "started_at": "2026-09-17T14:57:43.086464+00:00",
      "finished_at": "2026-09-17T14:59:20.873526+00:00",
      "warnings": [],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Sprakbanken--TrOCR-norhand-v3/line-recognition/danish-typewritten.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Sprakbanken/TrOCR-norhand-v3",
      "sample_set_id": "line-recognition/modern-danish",
      "status": "completed",
      "completed_samples": 977,
      "successful_samples": 977,
      "failed_samples": 0,
      "selected_samples": 977,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.14304314912944738,
        "wer": 0.3488991477272727
      },
      "batch_size": 16,
      "model_revision": "d22eebb5312ac5190b1b1744c5727faa0d3f353d",
      "started_at": "2026-09-17T14:59:35.856847+00:00",
      "finished_at": "2026-09-17T15:00:45.191304+00:00",
      "warnings": [
        "line-crop"
      ],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Sprakbanken--TrOCR-norhand-v3/line-recognition/modern-danish.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Sprakbanken/TrOCR-norhand-v3",
      "sample_set_id": "line-recognition/riksarkivet-ood",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.4019405398681428,
        "wer": 0.8161969650046454
      },
      "batch_size": 16,
      "model_revision": "d22eebb5312ac5190b1b1744c5727faa0d3f353d",
      "started_at": "2026-09-17T15:31:26.029152+00:00",
      "finished_at": "2026-09-17T15:33:05.830462+00:00",
      "warnings": [],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Sprakbanken--TrOCR-norhand-v3/line-recognition/riksarkivet-ood.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Sprakbanken/TrOCR-norhand-v3",
      "sample_set_id": "line-recognition/swedish-fraktur",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.17926081785746958,
        "wer": 0.5007102272727273
      },
      "batch_size": 16,
      "model_revision": "d22eebb5312ac5190b1b1744c5727faa0d3f353d",
      "started_at": "2026-09-17T15:42:35.189247+00:00",
      "finished_at": "2026-09-17T15:44:03.677380+00:00",
      "warnings": [],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Sprakbanken--TrOCR-norhand-v3/line-recognition/swedish-fraktur.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Sprakbanken/TrOCR-norhand-v3",
      "sample_set_id": "line-recognition/historical-danish",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.1963409192324855,
        "wer": 0.4511638521223186
      },
      "batch_size": 16,
      "model_revision": "d22eebb5312ac5190b1b1744c5727faa0d3f353d",
      "started_at": "2026-09-17T16:19:41.986089+00:00",
      "finished_at": "2026-09-17T16:20:45.614054+00:00",
      "warnings": [],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Sprakbanken--TrOCR-norhand-v3/line-recognition/historical-danish.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "stepfun-ai/GOT-OCR-2.0-hf",
      "sample_set_id": "line-recognition/norhand",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 5.670265862012722,
        "wer": 5.795600366636114
      },
      "batch_size": 4,
      "model_revision": "d3017ef2c2c1395888c8d635c5e0508bcb0ac78d",
      "started_at": "2026-09-17T15:01:00.217946+00:00",
      "finished_at": "2026-09-17T15:28:40.656217+00:00",
      "warnings": [
        "repetition"
      ],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/stepfun-ai--GOT-OCR-2.0-hf/line-recognition/norhand.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "stepfun-ai/GOT-OCR-2.0-hf",
      "sample_set_id": "line-recognition/danish-typewritten",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.3042829187597087,
        "wer": 0.5366365185476472
      },
      "batch_size": 4,
      "model_revision": "d3017ef2c2c1395888c8d635c5e0508bcb0ac78d",
      "started_at": "2026-09-17T15:33:13.553182+00:00",
      "finished_at": "2026-09-17T15:40:17.974355+00:00",
      "warnings": [
        "repetition"
      ],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/stepfun-ai--GOT-OCR-2.0-hf/line-recognition/danish-typewritten.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "stepfun-ai/GOT-OCR-2.0-hf",
      "sample_set_id": "line-recognition/modern-danish",
      "status": "completed",
      "completed_samples": 977,
      "successful_samples": 977,
      "failed_samples": 0,
      "selected_samples": 977,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 2.3853747161241485,
        "wer": 3.4213423295454546
      },
      "batch_size": 4,
      "model_revision": "d3017ef2c2c1395888c8d635c5e0508bcb0ac78d",
      "started_at": "2026-09-17T15:44:10.964761+00:00",
      "finished_at": "2026-09-17T15:54:00.076205+00:00",
      "warnings": [
        "repetition",
        "line-crop"
      ],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/stepfun-ai--GOT-OCR-2.0-hf/line-recognition/modern-danish.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "stepfun-ai/GOT-OCR-2.0-hf",
      "sample_set_id": "line-recognition/riksarkivet-ood",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 5.989749968901605,
        "wer": 5.954629916382781
      },
      "batch_size": 4,
      "model_revision": "d3017ef2c2c1395888c8d635c5e0508bcb0ac78d",
      "started_at": "2026-09-17T15:54:07.416567+00:00",
      "finished_at": "2026-09-17T16:17:43.861095+00:00",
      "warnings": [
        "repetition"
      ],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/stepfun-ai--GOT-OCR-2.0-hf/line-recognition/riksarkivet-ood.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "stepfun-ai/GOT-OCR-2.0-hf",
      "sample_set_id": "line-recognition/swedish-fraktur",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 1.1267267404629038,
        "wer": 1.3438920454545455
      },
      "batch_size": 4,
      "model_revision": "d3017ef2c2c1395888c8d635c5e0508bcb0ac78d",
      "started_at": "2026-09-17T16:20:52.888452+00:00",
      "finished_at": "2026-09-17T16:36:28.186156+00:00",
      "warnings": [
        "repetition"
      ],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/stepfun-ai--GOT-OCR-2.0-hf/line-recognition/swedish-fraktur.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "stepfun-ai/GOT-OCR-2.0-hf",
      "sample_set_id": "line-recognition/historical-danish",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 6.255168823441916,
        "wer": 5.070515746234596
      },
      "batch_size": 4,
      "model_revision": "d3017ef2c2c1395888c8d635c5e0508bcb0ac78d",
      "started_at": "2026-09-17T16:36:36.303383+00:00",
      "finished_at": "2026-09-17T16:54:10.053919+00:00",
      "warnings": [
        "repetition"
      ],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/stepfun-ai--GOT-OCR-2.0-hf/line-recognition/historical-danish.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "stepfun-ai/GOT-OCR-2.0-hf",
      "sample_set_id": "page-transcription/modern-danish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 100,
      "failed_samples": 0,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 1.3469688841201717,
        "wer": 2.611088628085795
      },
      "batch_size": 1,
      "model_revision": "d3017ef2c2c1395888c8d635c5e0508bcb0ac78d",
      "started_at": "2026-09-17T16:54:17.526068+00:00",
      "finished_at": "2026-09-17T16:59:08.524534+00:00",
      "warnings": [
        "repetition"
      ],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/stepfun-ai--GOT-OCR-2.0-hf/page-transcription/modern-danish.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "stepfun-ai/GOT-OCR-2.0-hf",
      "sample_set_id": "page-transcription/historical-danish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 100,
      "failed_samples": 0,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 1.47106331303856,
        "wer": 2.319813371507343
      },
      "batch_size": 1,
      "model_revision": "d3017ef2c2c1395888c8d635c5e0508bcb0ac78d",
      "started_at": "2026-09-17T16:59:16.232771+00:00",
      "finished_at": "2026-09-17T17:21:59.590188+00:00",
      "warnings": [
        "repetition"
      ],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/stepfun-ai--GOT-OCR-2.0-hf/page-transcription/historical-danish.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "stepfun-ai/GOT-OCR-2.0-hf",
      "sample_set_id": "page-transcription/oj4ocrmt-danish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 100,
      "failed_samples": 0,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.42197630825820776,
        "wer": 0.9424753867791843
      },
      "batch_size": 1,
      "model_revision": "d3017ef2c2c1395888c8d635c5e0508bcb0ac78d",
      "started_at": "2026-09-17T18:11:58.205633+00:00",
      "finished_at": "2026-09-17T18:35:41.104219+00:00",
      "warnings": [
        "repetition"
      ],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/stepfun-ai--GOT-OCR-2.0-hf/page-transcription/oj4ocrmt-danish.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "stepfun-ai/GOT-OCR-2.0-hf",
      "sample_set_id": "page-transcription/oj4ocrmt-swedish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 100,
      "failed_samples": 0,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.27092372001143367,
        "wer": 0.5332156480805129
      },
      "batch_size": 1,
      "model_revision": "d3017ef2c2c1395888c8d635c5e0508bcb0ac78d",
      "started_at": "2026-09-17T18:36:04.897185+00:00",
      "finished_at": "2026-09-17T19:29:02.432338+00:00",
      "warnings": [
        "repetition"
      ],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/stepfun-ai--GOT-OCR-2.0-hf/page-transcription/oj4ocrmt-swedish.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "stepfun-ai/GOT-OCR-2.0-hf",
      "sample_set_id": "page-transcription/nasjonalt-vitenarkiv",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 100,
      "failed_samples": 0,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.1636060260719455,
        "wer": 0.2918524106714217
      },
      "batch_size": 1,
      "model_revision": "d3017ef2c2c1395888c8d635c5e0508bcb0ac78d",
      "started_at": "2026-09-17T19:29:09.412023+00:00",
      "finished_at": "2026-09-17T19:56:13.330816+00:00",
      "warnings": [
        "repetition"
      ],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/stepfun-ai--GOT-OCR-2.0-hf/page-transcription/nasjonalt-vitenarkiv.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "zai-org/GLM-OCR",
      "sample_set_id": "line-recognition/norhand",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.3064100473006035,
        "wer": 0.8527956003666362
      },
      "batch_size": 2,
      "model_revision": "2e85a62840ccac27daa451df36c736c4636b8628",
      "started_at": "2026-09-17T19:56:20.185501+00:00",
      "finished_at": "2026-09-17T20:02:46.233480+00:00",
      "warnings": [],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/zai-org--GLM-OCR/line-recognition/norhand.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "zai-org/GLM-OCR",
      "sample_set_id": "line-recognition/danish-typewritten",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.008856341665153625,
        "wer": 0.05465985057019269
      },
      "batch_size": 2,
      "model_revision": "2e85a62840ccac27daa451df36c736c4636b8628",
      "started_at": "2026-09-17T20:02:52.969485+00:00",
      "finished_at": "2026-09-17T20:07:06.231900+00:00",
      "warnings": [],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/zai-org--GLM-OCR/line-recognition/danish-typewritten.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "zai-org/GLM-OCR",
      "sample_set_id": "line-recognition/modern-danish",
      "status": "completed",
      "completed_samples": 977,
      "successful_samples": 977,
      "failed_samples": 0,
      "selected_samples": 977,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.17750189250567752,
        "wer": 0.4817116477272727
      },
      "batch_size": 2,
      "model_revision": "2e85a62840ccac27daa451df36c736c4636b8628",
      "started_at": "2026-09-17T20:07:12.976690+00:00",
      "finished_at": "2026-09-17T20:10:13.260964+00:00",
      "warnings": [
        "line-crop"
      ],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/zai-org--GLM-OCR/line-recognition/modern-danish.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "zai-org/GLM-OCR",
      "sample_set_id": "line-recognition/riksarkivet-ood",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.5982833685781813,
        "wer": 1.120161040569836
      },
      "batch_size": 2,
      "model_revision": "2e85a62840ccac27daa451df36c736c4636b8628",
      "started_at": "2026-09-17T20:10:20.005381+00:00",
      "finished_at": "2026-09-17T20:15:51.824565+00:00",
      "warnings": [],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/zai-org--GLM-OCR/line-recognition/riksarkivet-ood.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "zai-org/GLM-OCR",
      "sample_set_id": "line-recognition/swedish-fraktur",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.0655703961211234,
        "wer": 0.25696022727272727
      },
      "batch_size": 2,
      "model_revision": "2e85a62840ccac27daa451df36c736c4636b8628",
      "started_at": "2026-09-17T20:15:58.539353+00:00",
      "finished_at": "2026-09-17T20:19:51.116326+00:00",
      "warnings": [],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/zai-org--GLM-OCR/line-recognition/swedish-fraktur.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "zai-org/GLM-OCR",
      "sample_set_id": "line-recognition/historical-danish",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.5098914175219396,
        "wer": 0.9566408032861707
      },
      "batch_size": 2,
      "model_revision": "2e85a62840ccac27daa451df36c736c4636b8628",
      "started_at": "2026-09-17T20:19:57.868573+00:00",
      "finished_at": "2026-09-17T20:23:17.071105+00:00",
      "warnings": [],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/zai-org--GLM-OCR/line-recognition/historical-danish.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "zai-org/GLM-OCR",
      "sample_set_id": "page-transcription/modern-danish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 100,
      "failed_samples": 0,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.10957618025751073,
        "wer": 0.3136382031566168
      },
      "batch_size": 1,
      "model_revision": "2e85a62840ccac27daa451df36c736c4636b8628",
      "started_at": "2026-09-17T20:23:23.809322+00:00",
      "finished_at": "2026-09-17T20:26:38.605046+00:00",
      "warnings": [],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/zai-org--GLM-OCR/page-transcription/modern-danish.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "zai-org/GLM-OCR",
      "sample_set_id": "page-transcription/historical-danish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 100,
      "failed_samples": 0,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 1.394284193365938,
        "wer": 1.7685170457557924
      },
      "batch_size": 1,
      "model_revision": "2e85a62840ccac27daa451df36c736c4636b8628",
      "started_at": "2026-09-17T20:26:45.366176+00:00",
      "finished_at": "2026-09-17T21:07:04.760852+00:00",
      "warnings": [],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/zai-org--GLM-OCR/page-transcription/historical-danish.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "zai-org/GLM-OCR",
      "sample_set_id": "page-transcription/oj4ocrmt-danish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 100,
      "failed_samples": 0,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.11990236267632493,
        "wer": 0.3709262607996785
      },
      "batch_size": 1,
      "model_revision": "2e85a62840ccac27daa451df36c736c4636b8628",
      "started_at": "2026-09-17T21:07:11.742410+00:00",
      "finished_at": "2026-09-17T22:01:24.959198+00:00",
      "warnings": [],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/zai-org--GLM-OCR/page-transcription/oj4ocrmt-danish.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "zai-org/GLM-OCR",
      "sample_set_id": "page-transcription/oj4ocrmt-swedish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 100,
      "failed_samples": 0,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.07856105823519922,
        "wer": 0.22364256148039932
      },
      "batch_size": 1,
      "model_revision": "2e85a62840ccac27daa451df36c736c4636b8628",
      "started_at": "2026-09-17T22:01:31.848334+00:00",
      "finished_at": "2026-09-17T22:50:51.754232+00:00",
      "warnings": [],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/zai-org--GLM-OCR/page-transcription/oj4ocrmt-swedish.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "zai-org/GLM-OCR",
      "sample_set_id": "page-transcription/nasjonalt-vitenarkiv",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 100,
      "failed_samples": 0,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.1402557185653217,
        "wer": 0.13181537617447364
      },
      "batch_size": 1,
      "model_revision": "2e85a62840ccac27daa451df36c736c4636b8628",
      "started_at": "2026-09-17T22:50:58.741718+00:00",
      "finished_at": "2026-09-17T23:20:03.253915+00:00",
      "warnings": [],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/zai-org--GLM-OCR/page-transcription/nasjonalt-vitenarkiv.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "PaddlePaddle/PaddleOCR-VL-1.6",
      "sample_set_id": "line-recognition/norhand",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.5392921220029359,
        "wer": 0.9761686526122824
      },
      "batch_size": 2,
      "model_revision": "c5630abae1d940eafe0697512a0325494b02ab42",
      "started_at": "2026-09-17T23:20:10.023662+00:00",
      "finished_at": "2026-09-17T23:37:24.902062+00:00",
      "warnings": [],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/PaddlePaddle--PaddleOCR-VL-1.6/line-recognition/norhand.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "PaddlePaddle/PaddleOCR-VL-1.6",
      "sample_set_id": "line-recognition/danish-typewritten",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.028828501684520568,
        "wer": 0.0980469262026478
      },
      "batch_size": 2,
      "model_revision": "c5630abae1d940eafe0697512a0325494b02ab42",
      "started_at": "2026-09-17T23:37:31.677576+00:00",
      "finished_at": "2026-09-17T23:50:31.392956+00:00",
      "warnings": [],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/PaddlePaddle--PaddleOCR-VL-1.6/line-recognition/danish-typewritten.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "PaddlePaddle/PaddleOCR-VL-1.6",
      "sample_set_id": "line-recognition/modern-danish",
      "status": "completed",
      "completed_samples": 977,
      "successful_samples": 977,
      "failed_samples": 0,
      "selected_samples": 977,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.39133989401968206,
        "wer": 0.7737926136363636
      },
      "batch_size": 2,
      "model_revision": "c5630abae1d940eafe0697512a0325494b02ab42",
      "started_at": "2026-09-17T23:50:38.175645+00:00",
      "finished_at": "2026-09-18T00:02:42.864497+00:00",
      "warnings": [
        "line-crop"
      ],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/PaddlePaddle--PaddleOCR-VL-1.6/line-recognition/modern-danish.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "PaddlePaddle/PaddleOCR-VL-1.6",
      "sample_set_id": "line-recognition/riksarkivet-ood",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 1.012887175021769,
        "wer": 1.4902446577887891
      },
      "batch_size": 2,
      "model_revision": "c5630abae1d940eafe0697512a0325494b02ab42",
      "started_at": "2026-09-18T00:02:49.823085+00:00",
      "finished_at": "2026-09-18T01:01:28.470367+00:00",
      "warnings": [],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/PaddlePaddle--PaddleOCR-VL-1.6/line-recognition/riksarkivet-ood.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "PaddlePaddle/PaddleOCR-VL-1.6",
      "sample_set_id": "line-recognition/swedish-fraktur",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.1364696734059098,
        "wer": 0.4323863636363636
      },
      "batch_size": 2,
      "model_revision": "c5630abae1d940eafe0697512a0325494b02ab42",
      "started_at": "2026-09-18T01:01:35.229332+00:00",
      "finished_at": "2026-09-18T01:14:16.361708+00:00",
      "warnings": [],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/PaddlePaddle--PaddleOCR-VL-1.6/line-recognition/swedish-fraktur.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "PaddlePaddle/PaddleOCR-VL-1.6",
      "sample_set_id": "line-recognition/historical-danish",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 1.2956269522534583,
        "wer": 2.106115928799635
      },
      "batch_size": 2,
      "model_revision": "c5630abae1d940eafe0697512a0325494b02ab42",
      "started_at": "2026-09-18T01:14:23.275094+00:00",
      "finished_at": "2026-09-18T01:45:27.777285+00:00",
      "warnings": [],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/PaddlePaddle--PaddleOCR-VL-1.6/line-recognition/historical-danish.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Qwen/Qwen2-VL-2B-Instruct",
      "sample_set_id": "line-recognition/norhand",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.4218235198173218,
        "wer": 0.8535288725939505
      },
      "batch_size": 2,
      "model_revision": "895c3a49bc3fa70a340399125c650a463535e71c",
      "started_at": "2026-09-18T01:45:34.498958+00:00",
      "finished_at": "2026-09-18T01:50:48.405869+00:00",
      "warnings": [],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen2-VL-2B-Instruct/line-recognition/norhand.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Qwen/Qwen2-VL-2B-Instruct",
      "sample_set_id": "line-recognition/danish-typewritten",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.018196856906534328,
        "wer": 0.09214838117708743
      },
      "batch_size": 2,
      "model_revision": "895c3a49bc3fa70a340399125c650a463535e71c",
      "started_at": "2026-09-18T01:50:55.181600+00:00",
      "finished_at": "2026-09-18T01:56:36.241971+00:00",
      "warnings": [],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen2-VL-2B-Instruct/line-recognition/danish-typewritten.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Qwen/Qwen2-VL-2B-Instruct",
      "sample_set_id": "line-recognition/modern-danish",
      "status": "completed",
      "completed_samples": 977,
      "successful_samples": 977,
      "failed_samples": 0,
      "selected_samples": 977,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.33668433005299014,
        "wer": 0.6372514204545454
      },
      "batch_size": 2,
      "model_revision": "895c3a49bc3fa70a340399125c650a463535e71c",
      "started_at": "2026-09-18T01:56:42.959496+00:00",
      "finished_at": "2026-09-18T02:01:45.093962+00:00",
      "warnings": [
        "line-crop"
      ],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen2-VL-2B-Instruct/line-recognition/modern-danish.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Qwen/Qwen2-VL-2B-Instruct",
      "sample_set_id": "line-recognition/riksarkivet-ood",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 2.2275158601816147,
        "wer": 2.796376587178693
      },
      "batch_size": 2,
      "model_revision": "895c3a49bc3fa70a340399125c650a463535e71c",
      "started_at": "2026-09-18T02:01:51.844715+00:00",
      "finished_at": "2026-09-18T02:25:54.076357+00:00",
      "warnings": [],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen2-VL-2B-Instruct/line-recognition/riksarkivet-ood.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Qwen/Qwen2-VL-2B-Instruct",
      "sample_set_id": "line-recognition/swedish-fraktur",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.13347360717226237,
        "wer": 0.3886363636363636
      },
      "batch_size": 2,
      "model_revision": "895c3a49bc3fa70a340399125c650a463535e71c",
      "started_at": "2026-09-18T02:26:01.057632+00:00",
      "finished_at": "2026-09-18T02:31:29.274080+00:00",
      "warnings": [],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen2-VL-2B-Instruct/line-recognition/swedish-fraktur.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Qwen/Qwen2-VL-2B-Instruct",
      "sample_set_id": "line-recognition/historical-danish",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.9643388368287966,
        "wer": 1.6127339114559562
      },
      "batch_size": 2,
      "model_revision": "895c3a49bc3fa70a340399125c650a463535e71c",
      "started_at": "2026-09-18T02:31:36.017234+00:00",
      "finished_at": "2026-09-18T02:40:34.597471+00:00",
      "warnings": [],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen2-VL-2B-Instruct/line-recognition/historical-danish.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Qwen/Qwen2-VL-2B-Instruct",
      "sample_set_id": "page-transcription/modern-danish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 100,
      "failed_samples": 0,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.10561963519313304,
        "wer": 0.23836503439902873
      },
      "batch_size": 1,
      "model_revision": "895c3a49bc3fa70a340399125c650a463535e71c",
      "started_at": "2026-09-18T12:42:49.641794+00:00",
      "finished_at": "2026-09-18T12:51:02.891927+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": null,
      "inference_settings": {
        "max_pixels": 3211264,
        "min_pixels": 3136,
        "image_patch_size": 14,
        "max_new_tokens": 4096,
        "do_sample": false,
        "dtype": "torch.bfloat16",
        "model_revision": "895c3a49bc3fa70a340399125c650a463535e71c",
        "system_prompt": "You are an OCR engine. Transcribe all text on the page in natural reading order. Return ONLY the text from the image. Preserve line breaks. Do not include coordinates, bounding boxes, labels, or explanations.",
        "user_prompt": "Transcribe all text on this page in natural reading order. Preserve line breaks and output text only."
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7
      },
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen2-VL-2B-Instruct/page-transcription/modern-danish.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Qwen/Qwen2-VL-2B-Instruct",
      "sample_set_id": "page-transcription/historical-danish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 97,
      "failed_samples": 3,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.9467262201816549,
        "wer": 0.9768304967923228
      },
      "batch_size": 1,
      "model_revision": "895c3a49bc3fa70a340399125c650a463535e71c",
      "started_at": "2026-09-19T21:01:22.440572+00:00",
      "finished_at": "2026-09-19T21:10:55.502191+00:00",
      "warnings": [
        "repetition"
      ],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": null,
      "inference_settings": {
        "max_pixels": 3211264,
        "min_pixels": 3136,
        "image_patch_size": 14,
        "max_new_tokens": 4096,
        "do_sample": false,
        "dtype": "torch.bfloat16",
        "model_revision": "895c3a49bc3fa70a340399125c650a463535e71c",
        "system_prompt": "You are an OCR engine. Transcribe all text on the page in natural reading order. Return ONLY the text from the image. Preserve line breaks. Do not include coordinates, bounding boxes, labels, or explanations.",
        "user_prompt": "Transcribe all text on this page in natural reading order. Preserve line breaks and output text only."
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen2-VL-2B-Instruct/page-transcription/historical-danish.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Qwen/Qwen2-VL-2B-Instruct",
      "sample_set_id": "page-transcription/oj4ocrmt-danish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 100,
      "failed_samples": 0,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.260908626042835,
        "wer": 0.27894313843680935
      },
      "batch_size": 1,
      "model_revision": "895c3a49bc3fa70a340399125c650a463535e71c",
      "started_at": "2026-09-18T12:51:13.220377+00:00",
      "finished_at": "2026-09-18T14:40:37.936533+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": null,
      "inference_settings": {
        "max_pixels": 3211264,
        "min_pixels": 3136,
        "image_patch_size": 14,
        "max_new_tokens": 4096,
        "do_sample": false,
        "dtype": "torch.bfloat16",
        "model_revision": "895c3a49bc3fa70a340399125c650a463535e71c",
        "system_prompt": "You are an OCR engine. Transcribe all text on the page in natural reading order. Return ONLY the text from the image. Preserve line breaks. Do not include coordinates, bounding boxes, labels, or explanations.",
        "user_prompt": "Transcribe all text on this page in natural reading order. Preserve line breaks and output text only."
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7
      },
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen2-VL-2B-Instruct/page-transcription/oj4ocrmt-danish.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Qwen/Qwen2-VL-2B-Instruct",
      "sample_set_id": "page-transcription/oj4ocrmt-swedish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 99,
      "failed_samples": 1,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.3147847841898665,
        "wer": 0.33538267997727456
      },
      "batch_size": 1,
      "model_revision": "895c3a49bc3fa70a340399125c650a463535e71c",
      "started_at": "2026-09-19T21:11:03.285515+00:00",
      "finished_at": "2026-09-19T21:45:26.071439+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": null,
      "inference_settings": {
        "max_pixels": 3211264,
        "min_pixels": 3136,
        "image_patch_size": 14,
        "max_new_tokens": 4096,
        "do_sample": false,
        "dtype": "torch.bfloat16",
        "model_revision": "895c3a49bc3fa70a340399125c650a463535e71c",
        "system_prompt": "You are an OCR engine. Transcribe all text on the page in natural reading order. Return ONLY the text from the image. Preserve line breaks. Do not include coordinates, bounding boxes, labels, or explanations.",
        "user_prompt": "Transcribe all text on this page in natural reading order. Preserve line breaks and output text only."
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen2-VL-2B-Instruct/page-transcription/oj4ocrmt-swedish.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Qwen/Qwen2-VL-2B-Instruct",
      "sample_set_id": "page-transcription/nasjonalt-vitenarkiv",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 98,
      "failed_samples": 2,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.3198116972730726,
        "wer": 0.29096083944859746
      },
      "batch_size": 1,
      "model_revision": "895c3a49bc3fa70a340399125c650a463535e71c",
      "started_at": "2026-09-19T21:45:34.479237+00:00",
      "finished_at": "2026-09-19T21:56:39.725452+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": null,
      "inference_settings": {
        "max_pixels": 3211264,
        "min_pixels": 3136,
        "image_patch_size": 14,
        "max_new_tokens": 4096,
        "do_sample": false,
        "dtype": "torch.bfloat16",
        "model_revision": "895c3a49bc3fa70a340399125c650a463535e71c",
        "system_prompt": "You are an OCR engine. Transcribe all text on the page in natural reading order. Return ONLY the text from the image. Preserve line breaks. Do not include coordinates, bounding boxes, labels, or explanations.",
        "user_prompt": "Transcribe all text on this page in natural reading order. Preserve line breaks and output text only."
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen2-VL-2B-Instruct/page-transcription/nasjonalt-vitenarkiv.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Qwen/Qwen3-VL-2B-Instruct",
      "sample_set_id": "line-recognition/norhand",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 986,
      "failed_samples": 14,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.611286902625999,
        "wer": 0.8208982584784601
      },
      "batch_size": 2,
      "model_revision": "89644892e4d85e24eaac8bacfd4f463576704203",
      "started_at": "2026-09-19T21:56:48.101093+00:00",
      "finished_at": "2026-09-19T22:07:07.321851+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": null,
      "inference_settings": {
        "max_pixels": 16777216,
        "min_pixels": 65536,
        "image_patch_size": 16,
        "max_new_tokens": 1024,
        "do_sample": false,
        "dtype": "torch.bfloat16",
        "model_revision": "89644892e4d85e24eaac8bacfd4f463576704203",
        "system_prompt": "You are an OCR engine. Transcribe the text. Return ONLY the text from the image, Do not include coordinates, bounding boxes, labels, or explanations. Output text in a single line",
        "user_prompt": "Transcribe the text on the image. Output text only in a single line."
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen3-VL-2B-Instruct/line-recognition/norhand.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Qwen/Qwen3-VL-2B-Instruct",
      "sample_set_id": "line-recognition/danish-typewritten",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.33952672032923803,
        "wer": 0.3735745182854896
      },
      "batch_size": 2,
      "model_revision": "89644892e4d85e24eaac8bacfd4f463576704203",
      "started_at": "2026-09-18T15:55:11.992185+00:00",
      "finished_at": "2026-09-18T16:09:23.576962+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": null,
      "inference_settings": {
        "max_pixels": 16777216,
        "min_pixels": 65536,
        "image_patch_size": 16,
        "max_new_tokens": 1024,
        "do_sample": false,
        "dtype": "torch.bfloat16",
        "model_revision": "89644892e4d85e24eaac8bacfd4f463576704203",
        "system_prompt": "You are an OCR engine. Transcribe the text. Return ONLY the text from the image, Do not include coordinates, bounding boxes, labels, or explanations. Output text in a single line",
        "user_prompt": "Transcribe the text on the image. Output text only in a single line."
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7
      },
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen3-VL-2B-Instruct/line-recognition/danish-typewritten.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Qwen/Qwen3-VL-2B-Instruct",
      "sample_set_id": "line-recognition/modern-danish",
      "status": "completed",
      "completed_samples": 977,
      "successful_samples": 968,
      "failed_samples": 9,
      "selected_samples": 977,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.4815745647236942,
        "wer": 0.6345880681818182
      },
      "batch_size": 2,
      "model_revision": "89644892e4d85e24eaac8bacfd4f463576704203",
      "started_at": "2026-09-19T22:07:36.051186+00:00",
      "finished_at": "2026-09-19T22:15:45.131736+00:00",
      "warnings": [
        "line-crop"
      ],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": null,
      "inference_settings": {
        "max_pixels": 16777216,
        "min_pixels": 65536,
        "image_patch_size": 16,
        "max_new_tokens": 1024,
        "do_sample": false,
        "dtype": "torch.bfloat16",
        "model_revision": "89644892e4d85e24eaac8bacfd4f463576704203",
        "system_prompt": "You are an OCR engine. Transcribe the text. Return ONLY the text from the image, Do not include coordinates, bounding boxes, labels, or explanations. Output text in a single line",
        "user_prompt": "Transcribe the text on the image. Output text only in a single line."
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen3-VL-2B-Instruct/line-recognition/modern-danish.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Qwen/Qwen3-VL-2B-Instruct",
      "sample_set_id": "line-recognition/riksarkivet-ood",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 936,
      "failed_samples": 64,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.7601940539868143,
        "wer": 0.9710436667698978
      },
      "batch_size": 2,
      "model_revision": "89644892e4d85e24eaac8bacfd4f463576704203",
      "started_at": "2026-09-19T22:15:53.426572+00:00",
      "finished_at": "2026-09-19T22:53:53.559327+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": null,
      "inference_settings": {
        "max_pixels": 16777216,
        "min_pixels": 65536,
        "image_patch_size": 16,
        "max_new_tokens": 1024,
        "do_sample": false,
        "dtype": "torch.bfloat16",
        "model_revision": "89644892e4d85e24eaac8bacfd4f463576704203",
        "system_prompt": "You are an OCR engine. Transcribe the text. Return ONLY the text from the image, Do not include coordinates, bounding boxes, labels, or explanations. Output text in a single line",
        "user_prompt": "Transcribe the text on the image. Output text only in a single line."
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen3-VL-2B-Instruct/line-recognition/riksarkivet-ood.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Qwen/Qwen3-VL-2B-Instruct",
      "sample_set_id": "line-recognition/swedish-fraktur",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.2889488610374165,
        "wer": 0.45340909090909093
      },
      "batch_size": 2,
      "model_revision": "89644892e4d85e24eaac8bacfd4f463576704203",
      "started_at": "2026-09-18T16:12:44.871274+00:00",
      "finished_at": "2026-09-18T16:25:30.124373+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": null,
      "inference_settings": {
        "max_pixels": 16777216,
        "min_pixels": 65536,
        "image_patch_size": 16,
        "max_new_tokens": 1024,
        "do_sample": false,
        "dtype": "torch.bfloat16",
        "model_revision": "89644892e4d85e24eaac8bacfd4f463576704203",
        "system_prompt": "You are an OCR engine. Transcribe the text. Return ONLY the text from the image, Do not include coordinates, bounding boxes, labels, or explanations. Output text in a single line",
        "user_prompt": "Transcribe the text on the image. Output text only in a single line."
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7
      },
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen3-VL-2B-Instruct/line-recognition/swedish-fraktur.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Qwen/Qwen3-VL-2B-Instruct",
      "sample_set_id": "line-recognition/historical-danish",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 946,
      "failed_samples": 54,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.7331176558084188,
        "wer": 0.9246919214970333
      },
      "batch_size": 2,
      "model_revision": "89644892e4d85e24eaac8bacfd4f463576704203",
      "started_at": "2026-09-19T22:54:01.416836+00:00",
      "finished_at": "2026-09-19T23:22:43.134506+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": null,
      "inference_settings": {
        "max_pixels": 16777216,
        "min_pixels": 65536,
        "image_patch_size": 16,
        "max_new_tokens": 1024,
        "do_sample": false,
        "dtype": "torch.bfloat16",
        "model_revision": "89644892e4d85e24eaac8bacfd4f463576704203",
        "system_prompt": "You are an OCR engine. Transcribe the text. Return ONLY the text from the image, Do not include coordinates, bounding boxes, labels, or explanations. Output text in a single line",
        "user_prompt": "Transcribe the text on the image. Output text only in a single line."
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen3-VL-2B-Instruct/line-recognition/historical-danish.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Qwen/Qwen3-VL-2B-Instruct",
      "sample_set_id": "page-transcription/modern-danish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 100,
      "failed_samples": 0,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.0978406652360515,
        "wer": 0.24686361796843384
      },
      "batch_size": 1,
      "model_revision": "89644892e4d85e24eaac8bacfd4f463576704203",
      "started_at": "2026-09-18T16:27:41.932933+00:00",
      "finished_at": "2026-09-18T16:35:56.944921+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": null,
      "inference_settings": {
        "max_pixels": 4194304,
        "min_pixels": 65536,
        "image_patch_size": 16,
        "max_new_tokens": 4096,
        "do_sample": false,
        "dtype": "torch.bfloat16",
        "model_revision": "89644892e4d85e24eaac8bacfd4f463576704203",
        "system_prompt": "You are an OCR engine. Transcribe all text on the page in natural reading order. Return ONLY the text from the image. Preserve line breaks. Do not include coordinates, bounding boxes, labels, or explanations.",
        "user_prompt": "Transcribe all text on this page in natural reading order. Preserve line breaks and output text only."
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7
      },
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen3-VL-2B-Instruct/page-transcription/modern-danish.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Qwen/Qwen3-VL-2B-Instruct",
      "sample_set_id": "page-transcription/historical-danish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 15,
      "failed_samples": 85,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.9082493262800678,
        "wer": 0.957637452945231
      },
      "batch_size": 1,
      "model_revision": "89644892e4d85e24eaac8bacfd4f463576704203",
      "started_at": "2026-09-19T23:22:51.796497+00:00",
      "finished_at": "2026-09-20T02:53:58.111030+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": null,
      "inference_settings": {
        "max_pixels": 4194304,
        "min_pixels": 65536,
        "image_patch_size": 16,
        "max_new_tokens": 4096,
        "do_sample": false,
        "dtype": "torch.bfloat16",
        "model_revision": "89644892e4d85e24eaac8bacfd4f463576704203",
        "system_prompt": "You are an OCR engine. Transcribe all text on the page in natural reading order. Return ONLY the text from the image. Preserve line breaks. Do not include coordinates, bounding boxes, labels, or explanations.",
        "user_prompt": "Transcribe all text on this page in natural reading order. Preserve line breaks and output text only."
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen3-VL-2B-Instruct/page-transcription/historical-danish.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Qwen/Qwen3-VL-2B-Instruct",
      "sample_set_id": "page-transcription/oj4ocrmt-danish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 99,
      "failed_samples": 1,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.023962956580207535,
        "wer": 0.04818163552340768
      },
      "batch_size": 1,
      "model_revision": "89644892e4d85e24eaac8bacfd4f463576704203",
      "started_at": "2026-09-20T02:54:06.822429+00:00",
      "finished_at": "2026-09-20T03:52:20.184496+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": null,
      "inference_settings": {
        "max_pixels": 4194304,
        "min_pixels": 65536,
        "image_patch_size": 16,
        "max_new_tokens": 4096,
        "do_sample": false,
        "dtype": "torch.bfloat16",
        "model_revision": "89644892e4d85e24eaac8bacfd4f463576704203",
        "system_prompt": "You are an OCR engine. Transcribe all text on the page in natural reading order. Return ONLY the text from the image. Preserve line breaks. Do not include coordinates, bounding boxes, labels, or explanations.",
        "user_prompt": "Transcribe all text on this page in natural reading order. Preserve line breaks and output text only."
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen3-VL-2B-Instruct/page-transcription/oj4ocrmt-danish.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Qwen/Qwen3-VL-2B-Instruct",
      "sample_set_id": "page-transcription/oj4ocrmt-swedish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 99,
      "failed_samples": 1,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.023472942721378377,
        "wer": 0.05251197143089035
      },
      "batch_size": 1,
      "model_revision": "89644892e4d85e24eaac8bacfd4f463576704203",
      "started_at": "2026-09-20T03:52:27.685131+00:00",
      "finished_at": "2026-09-20T04:49:32.786937+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": null,
      "inference_settings": {
        "max_pixels": 4194304,
        "min_pixels": 65536,
        "image_patch_size": 16,
        "max_new_tokens": 4096,
        "do_sample": false,
        "dtype": "torch.bfloat16",
        "model_revision": "89644892e4d85e24eaac8bacfd4f463576704203",
        "system_prompt": "You are an OCR engine. Transcribe all text on the page in natural reading order. Return ONLY the text from the image. Preserve line breaks. Do not include coordinates, bounding boxes, labels, or explanations.",
        "user_prompt": "Transcribe all text on this page in natural reading order. Preserve line breaks and output text only."
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen3-VL-2B-Instruct/page-transcription/oj4ocrmt-swedish.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Qwen/Qwen3-VL-2B-Instruct",
      "sample_set_id": "page-transcription/nasjonalt-vitenarkiv",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 100,
      "failed_samples": 0,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.13876987733394883,
        "wer": 0.14316576366504355
      },
      "batch_size": 1,
      "model_revision": "89644892e4d85e24eaac8bacfd4f463576704203",
      "started_at": "2026-09-18T17:39:02.284982+00:00",
      "finished_at": "2026-09-18T19:15:32.124090+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": null,
      "inference_settings": {
        "max_pixels": 4194304,
        "min_pixels": 65536,
        "image_patch_size": 16,
        "max_new_tokens": 4096,
        "do_sample": false,
        "dtype": "torch.bfloat16",
        "model_revision": "89644892e4d85e24eaac8bacfd4f463576704203",
        "system_prompt": "You are an OCR engine. Transcribe all text on the page in natural reading order. Return ONLY the text from the image. Preserve line breaks. Do not include coordinates, bounding boxes, labels, or explanations.",
        "user_prompt": "Transcribe all text on this page in natural reading order. Preserve line breaks and output text only."
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7
      },
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen3-VL-2B-Instruct/page-transcription/nasjonalt-vitenarkiv.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Qwen/Qwen3-VL-4B-Instruct",
      "sample_set_id": "line-recognition/norhand",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 992,
      "failed_samples": 8,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.6191812102430272,
        "wer": 0.8115490375802017
      },
      "batch_size": 2,
      "model_revision": "ebb281ec70b05090aa6165b016eac8ec08e71b17",
      "started_at": "2026-09-20T04:49:40.839292+00:00",
      "finished_at": "2026-09-20T04:59:21.958225+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": null,
      "inference_settings": {
        "max_pixels": 16777216,
        "min_pixels": 65536,
        "image_patch_size": 16,
        "max_new_tokens": 1024,
        "do_sample": false,
        "dtype": "torch.bfloat16",
        "model_revision": "ebb281ec70b05090aa6165b016eac8ec08e71b17",
        "system_prompt": "You are an OCR engine. Transcribe the text. Return ONLY the text from the image, Do not include coordinates, bounding boxes, labels, or explanations. Output text in a single line",
        "user_prompt": "Transcribe the text on the image. Output text only in a single line."
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 6,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen3-VL-4B-Instruct/line-recognition/norhand.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Qwen/Qwen3-VL-4B-Instruct",
      "sample_set_id": "line-recognition/danish-typewritten",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.3500373217131675,
        "wer": 0.3771136453008258
      },
      "batch_size": 2,
      "model_revision": "ebb281ec70b05090aa6165b016eac8ec08e71b17",
      "started_at": "2026-09-19T08:13:51.117026+00:00",
      "finished_at": "2026-09-19T08:32:31.897894+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": null,
      "inference_settings": {
        "max_pixels": 16777216,
        "min_pixels": 65536,
        "image_patch_size": 16,
        "max_new_tokens": 1024,
        "do_sample": false,
        "dtype": "torch.bfloat16",
        "model_revision": "ebb281ec70b05090aa6165b016eac8ec08e71b17",
        "system_prompt": "You are an OCR engine. Transcribe the text. Return ONLY the text from the image, Do not include coordinates, bounding boxes, labels, or explanations. Output text in a single line",
        "user_prompt": "Transcribe the text on the image. Output text only in a single line."
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 6,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen3-VL-4B-Instruct/line-recognition/danish-typewritten.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Qwen/Qwen3-VL-4B-Instruct",
      "sample_set_id": "line-recognition/modern-danish",
      "status": "completed",
      "completed_samples": 977,
      "successful_samples": 973,
      "failed_samples": 4,
      "selected_samples": 977,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.4862982588947767,
        "wer": 0.6044034090909091
      },
      "batch_size": 2,
      "model_revision": "ebb281ec70b05090aa6165b016eac8ec08e71b17",
      "started_at": "2026-09-20T04:59:30.213691+00:00",
      "finished_at": "2026-09-20T05:06:15.565026+00:00",
      "warnings": [
        "line-crop"
      ],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": null,
      "inference_settings": {
        "max_pixels": 16777216,
        "min_pixels": 65536,
        "image_patch_size": 16,
        "max_new_tokens": 1024,
        "do_sample": false,
        "dtype": "torch.bfloat16",
        "model_revision": "ebb281ec70b05090aa6165b016eac8ec08e71b17",
        "system_prompt": "You are an OCR engine. Transcribe the text. Return ONLY the text from the image, Do not include coordinates, bounding boxes, labels, or explanations. Output text in a single line",
        "user_prompt": "Transcribe the text on the image. Output text only in a single line."
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 6,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen3-VL-4B-Instruct/line-recognition/modern-danish.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Qwen/Qwen3-VL-4B-Instruct",
      "sample_set_id": "line-recognition/riksarkivet-ood",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 949,
      "failed_samples": 51,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.7667122776464734,
        "wer": 0.9739857541034376
      },
      "batch_size": 2,
      "model_revision": "ebb281ec70b05090aa6165b016eac8ec08e71b17",
      "started_at": "2026-09-20T05:06:23.825676+00:00",
      "finished_at": "2026-09-20T05:47:14.307928+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": null,
      "inference_settings": {
        "max_pixels": 16777216,
        "min_pixels": 65536,
        "image_patch_size": 16,
        "max_new_tokens": 1024,
        "do_sample": false,
        "dtype": "torch.bfloat16",
        "model_revision": "ebb281ec70b05090aa6165b016eac8ec08e71b17",
        "system_prompt": "You are an OCR engine. Transcribe the text. Return ONLY the text from the image, Do not include coordinates, bounding boxes, labels, or explanations. Output text in a single line",
        "user_prompt": "Transcribe the text on the image. Output text only in a single line."
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 6,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen3-VL-4B-Instruct/line-recognition/riksarkivet-ood.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Qwen/Qwen3-VL-4B-Instruct",
      "sample_set_id": "line-recognition/swedish-fraktur",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 998,
      "failed_samples": 2,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.307268319458421,
        "wer": 0.4580965909090909
      },
      "batch_size": 2,
      "model_revision": "ebb281ec70b05090aa6165b016eac8ec08e71b17",
      "started_at": "2026-09-20T05:47:22.401016+00:00",
      "finished_at": "2026-09-20T05:47:58.440107+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": null,
      "inference_settings": {
        "max_pixels": 16777216,
        "min_pixels": 65536,
        "image_patch_size": 16,
        "max_new_tokens": 1024,
        "do_sample": false,
        "dtype": "torch.bfloat16",
        "model_revision": "ebb281ec70b05090aa6165b016eac8ec08e71b17",
        "system_prompt": "You are an OCR engine. Transcribe the text. Return ONLY the text from the image, Do not include coordinates, bounding boxes, labels, or explanations. Output text in a single line",
        "user_prompt": "Transcribe the text on the image. Output text only in a single line."
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 6,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen3-VL-4B-Instruct/line-recognition/swedish-fraktur.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Qwen/Qwen3-VL-4B-Instruct",
      "sample_set_id": "line-recognition/historical-danish",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 984,
      "failed_samples": 16,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.7255317566562547,
        "wer": 0.9009584664536742
      },
      "batch_size": 2,
      "model_revision": "ebb281ec70b05090aa6165b016eac8ec08e71b17",
      "started_at": "2026-09-20T05:48:06.646478+00:00",
      "finished_at": "2026-09-20T06:02:18.414177+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": null,
      "inference_settings": {
        "max_pixels": 16777216,
        "min_pixels": 65536,
        "image_patch_size": 16,
        "max_new_tokens": 1024,
        "do_sample": false,
        "dtype": "torch.bfloat16",
        "model_revision": "ebb281ec70b05090aa6165b016eac8ec08e71b17",
        "system_prompt": "You are an OCR engine. Transcribe the text. Return ONLY the text from the image, Do not include coordinates, bounding boxes, labels, or explanations. Output text in a single line",
        "user_prompt": "Transcribe the text on the image. Output text only in a single line."
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 6,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen3-VL-4B-Instruct/line-recognition/historical-danish.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Qwen/Qwen3-VL-4B-Instruct",
      "sample_set_id": "page-transcription/modern-danish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 100,
      "failed_samples": 0,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.08932403433476395,
        "wer": 0.21651153379198704
      },
      "batch_size": 1,
      "model_revision": "ebb281ec70b05090aa6165b016eac8ec08e71b17",
      "started_at": "2026-09-19T08:57:32.971668+00:00",
      "finished_at": "2026-09-19T09:08:41.562990+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": null,
      "inference_settings": {
        "max_pixels": 4194304,
        "min_pixels": 65536,
        "image_patch_size": 16,
        "max_new_tokens": 4096,
        "do_sample": false,
        "dtype": "torch.bfloat16",
        "model_revision": "ebb281ec70b05090aa6165b016eac8ec08e71b17",
        "system_prompt": "You are an OCR engine. Transcribe all text on the page in natural reading order. Return ONLY the text from the image. Preserve line breaks. Do not include coordinates, bounding boxes, labels, or explanations.",
        "user_prompt": "Transcribe all text on this page in natural reading order. Preserve line breaks and output text only."
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 6,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen3-VL-4B-Instruct/page-transcription/modern-danish.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Qwen/Qwen3-VL-4B-Instruct",
      "sample_set_id": "page-transcription/historical-danish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 39,
      "failed_samples": 61,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.7626592807000033,
        "wer": 0.874927098245056
      },
      "batch_size": 1,
      "model_revision": "ebb281ec70b05090aa6165b016eac8ec08e71b17",
      "started_at": "2026-09-20T06:02:26.553227+00:00",
      "finished_at": "2026-09-20T09:30:55.606449+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": null,
      "inference_settings": {
        "max_pixels": 4194304,
        "min_pixels": 65536,
        "image_patch_size": 16,
        "max_new_tokens": 4096,
        "do_sample": false,
        "dtype": "torch.bfloat16",
        "model_revision": "ebb281ec70b05090aa6165b016eac8ec08e71b17",
        "system_prompt": "You are an OCR engine. Transcribe all text on the page in natural reading order. Return ONLY the text from the image. Preserve line breaks. Do not include coordinates, bounding boxes, labels, or explanations.",
        "user_prompt": "Transcribe all text on this page in natural reading order. Preserve line breaks and output text only."
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 6,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen3-VL-4B-Instruct/page-transcription/historical-danish.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Qwen/Qwen3-VL-4B-Instruct",
      "sample_set_id": "page-transcription/oj4ocrmt-danish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 98,
      "failed_samples": 2,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.0427389303401768,
        "wer": 0.0715089411291943
      },
      "batch_size": 1,
      "model_revision": "ebb281ec70b05090aa6165b016eac8ec08e71b17",
      "started_at": "2026-09-20T09:31:24.221741+00:00",
      "finished_at": "2026-09-20T11:29:06.971488+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": null,
      "inference_settings": {
        "max_pixels": 4194304,
        "min_pixels": 65536,
        "image_patch_size": 16,
        "max_new_tokens": 4096,
        "do_sample": false,
        "dtype": "torch.bfloat16",
        "model_revision": "ebb281ec70b05090aa6165b016eac8ec08e71b17",
        "system_prompt": "You are an OCR engine. Transcribe all text on the page in natural reading order. Return ONLY the text from the image. Preserve line breaks. Do not include coordinates, bounding boxes, labels, or explanations.",
        "user_prompt": "Transcribe all text on this page in natural reading order. Preserve line breaks and output text only."
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 6,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen3-VL-4B-Instruct/page-transcription/oj4ocrmt-danish.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Qwen/Qwen3-VL-4B-Instruct",
      "sample_set_id": "page-transcription/oj4ocrmt-swedish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 99,
      "failed_samples": 1,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.03938382817828569,
        "wer": 0.07075318561805048
      },
      "batch_size": 1,
      "model_revision": "ebb281ec70b05090aa6165b016eac8ec08e71b17",
      "started_at": "2026-09-20T11:29:34.792386+00:00",
      "finished_at": "2026-09-20T13:21:59.313345+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": null,
      "inference_settings": {
        "max_pixels": 4194304,
        "min_pixels": 65536,
        "image_patch_size": 16,
        "max_new_tokens": 4096,
        "do_sample": false,
        "dtype": "torch.bfloat16",
        "model_revision": "ebb281ec70b05090aa6165b016eac8ec08e71b17",
        "system_prompt": "You are an OCR engine. Transcribe all text on the page in natural reading order. Return ONLY the text from the image. Preserve line breaks. Do not include coordinates, bounding boxes, labels, or explanations.",
        "user_prompt": "Transcribe all text on this page in natural reading order. Preserve line breaks and output text only."
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 6,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen3-VL-4B-Instruct/page-transcription/oj4ocrmt-swedish.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Qwen/Qwen3-VL-4B-Instruct",
      "sample_set_id": "page-transcription/nasjonalt-vitenarkiv",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 100,
      "failed_samples": 0,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.14777147858032438,
        "wer": 0.13167821137096222
      },
      "batch_size": 1,
      "model_revision": "ebb281ec70b05090aa6165b016eac8ec08e71b17",
      "started_at": "2026-09-19T09:31:17.445317+00:00",
      "finished_at": "2026-09-19T11:39:35.530352+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": null,
      "inference_settings": {
        "max_pixels": 4194304,
        "min_pixels": 65536,
        "image_patch_size": 16,
        "max_new_tokens": 4096,
        "do_sample": false,
        "dtype": "torch.bfloat16",
        "model_revision": "ebb281ec70b05090aa6165b016eac8ec08e71b17",
        "system_prompt": "You are an OCR engine. Transcribe all text on the page in natural reading order. Return ONLY the text from the image. Preserve line breaks. Do not include coordinates, bounding boxes, labels, or explanations.",
        "user_prompt": "Transcribe all text on this page in natural reading order. Preserve line breaks and output text only."
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 6,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen3-VL-4B-Instruct/page-transcription/nasjonalt-vitenarkiv.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Qwen/Qwen2-VL-7B-Instruct",
      "sample_set_id": "line-recognition/norhand",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 997,
      "failed_samples": 3,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.29721089544935575,
        "wer": 0.6117323556370302
      },
      "batch_size": 1,
      "model_revision": "eed13092ef92e448dd6875b2a00151bd3f7db0ac",
      "started_at": "2026-09-20T13:22:07.300563+00:00",
      "finished_at": "2026-09-20T13:29:22.860771+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": null,
      "inference_settings": {
        "max_pixels": 12845056,
        "min_pixels": 3136,
        "image_patch_size": 14,
        "max_new_tokens": 1024,
        "do_sample": false,
        "dtype": "torch.bfloat16",
        "model_revision": "eed13092ef92e448dd6875b2a00151bd3f7db0ac",
        "system_prompt": "You are an OCR engine. Transcribe the text. Return ONLY the text from the image, Do not include coordinates, bounding boxes, labels, or explanations. Output text in a single line",
        "user_prompt": "Transcribe the text on the image. Output text only in a single line."
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen2-VL-7B-Instruct/line-recognition/norhand.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Qwen/Qwen2-VL-7B-Instruct",
      "sample_set_id": "line-recognition/danish-typewritten",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.012487643486856706,
        "wer": 0.07274872198191112
      },
      "batch_size": 1,
      "model_revision": "eed13092ef92e448dd6875b2a00151bd3f7db0ac",
      "started_at": "2026-09-19T16:35:26.817390+00:00",
      "finished_at": "2026-09-19T16:47:15.125001+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": null,
      "inference_settings": {
        "max_pixels": 12845056,
        "min_pixels": 3136,
        "image_patch_size": 14,
        "max_new_tokens": 1024,
        "do_sample": false,
        "dtype": "torch.bfloat16",
        "model_revision": "eed13092ef92e448dd6875b2a00151bd3f7db0ac",
        "system_prompt": "You are an OCR engine. Transcribe the text. Return ONLY the text from the image, Do not include coordinates, bounding boxes, labels, or explanations. Output text in a single line",
        "user_prompt": "Transcribe the text on the image. Output text only in a single line."
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen2-VL-7B-Instruct/line-recognition/danish-typewritten.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Qwen/Qwen2-VL-7B-Instruct",
      "sample_set_id": "line-recognition/modern-danish",
      "status": "completed",
      "completed_samples": 977,
      "successful_samples": 977,
      "failed_samples": 0,
      "selected_samples": 977,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.19630582891748674,
        "wer": 0.3986150568181818
      },
      "batch_size": 1,
      "model_revision": "eed13092ef92e448dd6875b2a00151bd3f7db0ac",
      "started_at": "2026-09-19T16:47:23.477819+00:00",
      "finished_at": "2026-09-19T16:56:11.256881+00:00",
      "warnings": [
        "line-crop"
      ],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": null,
      "inference_settings": {
        "max_pixels": 12845056,
        "min_pixels": 3136,
        "image_patch_size": 14,
        "max_new_tokens": 1024,
        "do_sample": false,
        "dtype": "torch.bfloat16",
        "model_revision": "eed13092ef92e448dd6875b2a00151bd3f7db0ac",
        "system_prompt": "You are an OCR engine. Transcribe the text. Return ONLY the text from the image, Do not include coordinates, bounding boxes, labels, or explanations. Output text in a single line",
        "user_prompt": "Transcribe the text on the image. Output text only in a single line."
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen2-VL-7B-Instruct/line-recognition/modern-danish.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Qwen/Qwen2-VL-7B-Instruct",
      "sample_set_id": "line-recognition/riksarkivet-ood",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 967,
      "failed_samples": 33,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.5566363975618858,
        "wer": 0.9187054815732425
      },
      "batch_size": 1,
      "model_revision": "eed13092ef92e448dd6875b2a00151bd3f7db0ac",
      "started_at": "2026-09-20T13:29:30.555744+00:00",
      "finished_at": "2026-09-20T13:59:23.056681+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": null,
      "inference_settings": {
        "max_pixels": 12845056,
        "min_pixels": 3136,
        "image_patch_size": 14,
        "max_new_tokens": 1024,
        "do_sample": false,
        "dtype": "torch.bfloat16",
        "model_revision": "eed13092ef92e448dd6875b2a00151bd3f7db0ac",
        "system_prompt": "You are an OCR engine. Transcribe the text. Return ONLY the text from the image, Do not include coordinates, bounding boxes, labels, or explanations. Output text in a single line",
        "user_prompt": "Transcribe the text on the image. Output text only in a single line."
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen2-VL-7B-Instruct/line-recognition/riksarkivet-ood.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Qwen/Qwen2-VL-7B-Instruct",
      "sample_set_id": "line-recognition/swedish-fraktur",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.0708306650809624,
        "wer": 0.27372159090909093
      },
      "batch_size": 1,
      "model_revision": "eed13092ef92e448dd6875b2a00151bd3f7db0ac",
      "started_at": "2026-09-19T16:57:15.773323+00:00",
      "finished_at": "2026-09-19T17:06:58.137086+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": null,
      "inference_settings": {
        "max_pixels": 12845056,
        "min_pixels": 3136,
        "image_patch_size": 14,
        "max_new_tokens": 1024,
        "do_sample": false,
        "dtype": "torch.bfloat16",
        "model_revision": "eed13092ef92e448dd6875b2a00151bd3f7db0ac",
        "system_prompt": "You are an OCR engine. Transcribe the text. Return ONLY the text from the image, Do not include coordinates, bounding boxes, labels, or explanations. Output text in a single line",
        "user_prompt": "Transcribe the text on the image. Output text only in a single line."
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen2-VL-7B-Instruct/line-recognition/swedish-fraktur.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Qwen/Qwen2-VL-7B-Instruct",
      "sample_set_id": "line-recognition/historical-danish",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 993,
      "failed_samples": 7,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.45764539640041646,
        "wer": 0.8119580100410771
      },
      "batch_size": 1,
      "model_revision": "eed13092ef92e448dd6875b2a00151bd3f7db0ac",
      "started_at": "2026-09-20T13:59:30.966369+00:00",
      "finished_at": "2026-09-20T14:07:48.360907+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": null,
      "inference_settings": {
        "max_pixels": 12845056,
        "min_pixels": 3136,
        "image_patch_size": 14,
        "max_new_tokens": 1024,
        "do_sample": false,
        "dtype": "torch.bfloat16",
        "model_revision": "eed13092ef92e448dd6875b2a00151bd3f7db0ac",
        "system_prompt": "You are an OCR engine. Transcribe the text. Return ONLY the text from the image, Do not include coordinates, bounding boxes, labels, or explanations. Output text in a single line",
        "user_prompt": "Transcribe the text on the image. Output text only in a single line."
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen2-VL-7B-Instruct/line-recognition/historical-danish.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Qwen/Qwen2-VL-7B-Instruct",
      "sample_set_id": "page-transcription/modern-danish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 100,
      "failed_samples": 0,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.05760461373390558,
        "wer": 0.16471064346418454
      },
      "batch_size": 1,
      "model_revision": "eed13092ef92e448dd6875b2a00151bd3f7db0ac",
      "started_at": "2026-09-19T17:10:57.780789+00:00",
      "finished_at": "2026-09-19T17:20:03.380478+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": null,
      "inference_settings": {
        "max_pixels": 3211264,
        "min_pixels": 3136,
        "image_patch_size": 14,
        "max_new_tokens": 4096,
        "do_sample": false,
        "dtype": "torch.bfloat16",
        "model_revision": "eed13092ef92e448dd6875b2a00151bd3f7db0ac",
        "system_prompt": "You are an OCR engine. Transcribe all text on the page in natural reading order. Return ONLY the text from the image. Preserve line breaks. Do not include coordinates, bounding boxes, labels, or explanations.",
        "user_prompt": "Transcribe all text on this page in natural reading order. Preserve line breaks and output text only."
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen2-VL-7B-Instruct/page-transcription/modern-danish.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Qwen/Qwen2-VL-7B-Instruct",
      "sample_set_id": "page-transcription/historical-danish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 80,
      "failed_samples": 20,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.5826928835213095,
        "wer": 0.7690472403372037
      },
      "batch_size": 1,
      "model_revision": "eed13092ef92e448dd6875b2a00151bd3f7db0ac",
      "started_at": "2026-09-20T14:07:55.962405+00:00",
      "finished_at": "2026-09-20T16:31:50.066396+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": null,
      "inference_settings": {
        "max_pixels": 3211264,
        "min_pixels": 3136,
        "image_patch_size": 14,
        "max_new_tokens": 4096,
        "do_sample": false,
        "dtype": "torch.bfloat16",
        "model_revision": "eed13092ef92e448dd6875b2a00151bd3f7db0ac",
        "system_prompt": "You are an OCR engine. Transcribe all text on the page in natural reading order. Return ONLY the text from the image. Preserve line breaks. Do not include coordinates, bounding boxes, labels, or explanations.",
        "user_prompt": "Transcribe all text on this page in natural reading order. Preserve line breaks and output text only."
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen2-VL-7B-Instruct/page-transcription/historical-danish.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Qwen/Qwen2-VL-7B-Instruct",
      "sample_set_id": "page-transcription/oj4ocrmt-danish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 99,
      "failed_samples": 1,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.024649469012297896,
        "wer": 0.04492666264818163
      },
      "batch_size": 1,
      "model_revision": "eed13092ef92e448dd6875b2a00151bd3f7db0ac",
      "started_at": "2026-09-20T16:32:00.578307+00:00",
      "finished_at": "2026-09-20T17:18:44.859020+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": null,
      "inference_settings": {
        "max_pixels": 3211264,
        "min_pixels": 3136,
        "image_patch_size": 14,
        "max_new_tokens": 4096,
        "do_sample": false,
        "dtype": "torch.bfloat16",
        "model_revision": "eed13092ef92e448dd6875b2a00151bd3f7db0ac",
        "system_prompt": "You are an OCR engine. Transcribe all text on the page in natural reading order. Return ONLY the text from the image. Preserve line breaks. Do not include coordinates, bounding boxes, labels, or explanations.",
        "user_prompt": "Transcribe all text on this page in natural reading order. Preserve line breaks and output text only."
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen2-VL-7B-Instruct/page-transcription/oj4ocrmt-danish.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Qwen/Qwen2-VL-7B-Instruct",
      "sample_set_id": "page-transcription/oj4ocrmt-swedish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 99,
      "failed_samples": 1,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.039494202517100944,
        "wer": 0.062068825582339095
      },
      "batch_size": 1,
      "model_revision": "eed13092ef92e448dd6875b2a00151bd3f7db0ac",
      "started_at": "2026-09-20T17:18:53.865356+00:00",
      "finished_at": "2026-09-20T18:40:14.263455+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": null,
      "inference_settings": {
        "max_pixels": 3211264,
        "min_pixels": 3136,
        "image_patch_size": 14,
        "max_new_tokens": 4096,
        "do_sample": false,
        "dtype": "torch.bfloat16",
        "model_revision": "eed13092ef92e448dd6875b2a00151bd3f7db0ac",
        "system_prompt": "You are an OCR engine. Transcribe all text on the page in natural reading order. Return ONLY the text from the image. Preserve line breaks. Do not include coordinates, bounding boxes, labels, or explanations.",
        "user_prompt": "Transcribe all text on this page in natural reading order. Preserve line breaks and output text only."
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen2-VL-7B-Instruct/page-transcription/oj4ocrmt-swedish.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Qwen/Qwen2-VL-7B-Instruct",
      "sample_set_id": "page-transcription/nasjonalt-vitenarkiv",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 97,
      "failed_samples": 3,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.14366017031875863,
        "wer": 0.13473012824909128
      },
      "batch_size": 1,
      "model_revision": "eed13092ef92e448dd6875b2a00151bd3f7db0ac",
      "started_at": "2026-09-20T18:40:23.607361+00:00",
      "finished_at": "2026-09-20T18:47:52.131595+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": null,
      "inference_settings": {
        "max_pixels": 3211264,
        "min_pixels": 3136,
        "image_patch_size": 14,
        "max_new_tokens": 4096,
        "do_sample": false,
        "dtype": "torch.bfloat16",
        "model_revision": "eed13092ef92e448dd6875b2a00151bd3f7db0ac",
        "system_prompt": "You are an OCR engine. Transcribe all text on the page in natural reading order. Return ONLY the text from the image. Preserve line breaks. Do not include coordinates, bounding boxes, labels, or explanations.",
        "user_prompt": "Transcribe all text on this page in natural reading order. Preserve line breaks and output text only."
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen2-VL-7B-Instruct/page-transcription/nasjonalt-vitenarkiv.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Tesseract/tessdata_best-dan",
      "sample_set_id": "line-recognition/norhand",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.857967705105203,
        "wer": 1.0102658111824014
      },
      "batch_size": 8,
      "model_revision": null,
      "started_at": "2026-09-17T14:43:51.317233+00:00",
      "finished_at": "2026-09-17T14:46:31.410981+00:00",
      "warnings": [],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Tesseract--tessdata_best-dan/line-recognition/norhand.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Tesseract/tessdata_best-dan",
      "sample_set_id": "line-recognition/danish-typewritten",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.08354011579818031,
        "wer": 0.1968803250753703
      },
      "batch_size": 8,
      "model_revision": null,
      "started_at": "2026-09-17T14:46:43.225141+00:00",
      "finished_at": "2026-09-17T14:49:24.098426+00:00",
      "warnings": [],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Tesseract--tessdata_best-dan/line-recognition/danish-typewritten.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Tesseract/tessdata_best-dan",
      "sample_set_id": "line-recognition/modern-danish",
      "status": "completed",
      "completed_samples": 977,
      "successful_samples": 977,
      "failed_samples": 0,
      "selected_samples": 977,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.5629371688115065,
        "wer": 0.9248934659090909
      },
      "batch_size": 8,
      "model_revision": null,
      "started_at": "2026-09-17T14:49:33.431136+00:00",
      "finished_at": "2026-09-17T14:51:42.875915+00:00",
      "warnings": [
        "line-crop"
      ],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Tesseract--tessdata_best-dan/line-recognition/modern-danish.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Tesseract/tessdata_best-dan",
      "sample_set_id": "line-recognition/riksarkivet-ood",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.917651449185222,
        "wer": 1.032517807370703
      },
      "batch_size": 8,
      "model_revision": null,
      "started_at": "2026-09-17T15:07:11.233776+00:00",
      "finished_at": "2026-09-17T15:10:12.415234+00:00",
      "warnings": [],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Tesseract--tessdata_best-dan/line-recognition/riksarkivet-ood.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Tesseract/tessdata_best-dan",
      "sample_set_id": "line-recognition/swedish-fraktur",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.18920958741194768,
        "wer": 0.5170454545454546
      },
      "batch_size": 8,
      "model_revision": null,
      "started_at": "2026-09-17T15:35:43.351681+00:00",
      "finished_at": "2026-09-17T15:38:03.214244+00:00",
      "warnings": [],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Tesseract--tessdata_best-dan/line-recognition/swedish-fraktur.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Tesseract/tessdata_best-dan",
      "sample_set_id": "line-recognition/historical-danish",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.8649040606871932,
        "wer": 1.0652670013692378
      },
      "batch_size": 8,
      "model_revision": null,
      "started_at": "2026-09-17T15:55:10.019978+00:00",
      "finished_at": "2026-09-17T15:57:18.871940+00:00",
      "warnings": [],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Tesseract--tessdata_best-dan/line-recognition/historical-danish.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Tesseract/tessdata_best-dan",
      "sample_set_id": "page-transcription/modern-danish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 100,
      "failed_samples": 0,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.49611051502145925,
        "wer": 0.8980169971671388
      },
      "batch_size": 1,
      "model_revision": null,
      "started_at": "2026-09-17T14:55:49.146472+00:00",
      "finished_at": "2026-09-17T14:56:01.923615+00:00",
      "warnings": [],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Tesseract--tessdata_best-dan/page-transcription/modern-danish.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Tesseract/tessdata_best-dan",
      "sample_set_id": "page-transcription/historical-danish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 100,
      "failed_samples": 0,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.7900489070765545,
        "wer": 1.1297916335295053
      },
      "batch_size": 1,
      "model_revision": null,
      "started_at": "2026-09-17T15:57:27.688353+00:00",
      "finished_at": "2026-09-17T16:02:28.884299+00:00",
      "warnings": [],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Tesseract--tessdata_best-dan/page-transcription/historical-danish.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Tesseract/tessdata_best-dan",
      "sample_set_id": "page-transcription/oj4ocrmt-danish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 100,
      "failed_samples": 0,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.020242228707520276,
        "wer": 0.04888487040385774
      },
      "batch_size": 1,
      "model_revision": null,
      "started_at": "2026-09-17T16:02:37.116811+00:00",
      "finished_at": "2026-09-17T16:06:57.690644+00:00",
      "warnings": [],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Tesseract--tessdata_best-dan/page-transcription/oj4ocrmt-danish.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Tesseract/tessdata_best-dan",
      "sample_set_id": "page-transcription/oj4ocrmt-swedish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 100,
      "failed_samples": 0,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.04648174719748233,
        "wer": 0.23557341124908693
      },
      "batch_size": 1,
      "model_revision": null,
      "started_at": "2026-09-17T16:07:10.410315+00:00",
      "finished_at": "2026-09-17T16:11:31.543970+00:00",
      "warnings": [],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Tesseract--tessdata_best-dan/page-transcription/oj4ocrmt-swedish.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Tesseract/tessdata_best-dan",
      "sample_set_id": "page-transcription/nasjonalt-vitenarkiv",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 100,
      "failed_samples": 0,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.16740477873467877,
        "wer": 0.17361635004457857
      },
      "batch_size": 1,
      "model_revision": null,
      "started_at": "2026-09-17T16:11:39.383617+00:00",
      "finished_at": "2026-09-17T16:14:52.230977+00:00",
      "warnings": [],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Tesseract--tessdata_best-dan/page-transcription/nasjonalt-vitenarkiv.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Tesseract/tessdata_best-nor",
      "sample_set_id": "line-recognition/norhand",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.8553906377426195,
        "wer": 1.0507791017415216
      },
      "batch_size": 8,
      "model_revision": null,
      "started_at": "2026-09-17T14:52:26.814247+00:00",
      "finished_at": "2026-09-17T14:55:35.738153+00:00",
      "warnings": [],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Tesseract--tessdata_best-nor/line-recognition/norhand.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Tesseract/tessdata_best-nor",
      "sample_set_id": "line-recognition/danish-typewritten",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.07853698884383385,
        "wer": 0.19727356141040767
      },
      "batch_size": 8,
      "model_revision": null,
      "started_at": "2026-09-17T14:56:14.329076+00:00",
      "finished_at": "2026-09-17T14:59:46.993434+00:00",
      "warnings": [],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Tesseract--tessdata_best-nor/line-recognition/danish-typewritten.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Tesseract/tessdata_best-nor",
      "sample_set_id": "line-recognition/modern-danish",
      "status": "completed",
      "completed_samples": 977,
      "successful_samples": 977,
      "failed_samples": 0,
      "selected_samples": 977,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.5529447388342165,
        "wer": 0.9332386363636364
      },
      "batch_size": 8,
      "model_revision": null,
      "started_at": "2026-09-17T14:59:59.492586+00:00",
      "finished_at": "2026-09-17T15:02:45.457393+00:00",
      "warnings": [
        "line-crop"
      ],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Tesseract--tessdata_best-nor/line-recognition/modern-danish.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Tesseract/tessdata_best-nor",
      "sample_set_id": "line-recognition/riksarkivet-ood",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.8995646224654807,
        "wer": 1.0554351192319604
      },
      "batch_size": 8,
      "model_revision": null,
      "started_at": "2026-09-17T15:10:26.080127+00:00",
      "finished_at": "2026-09-17T15:13:56.439876+00:00",
      "warnings": [],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Tesseract--tessdata_best-nor/line-recognition/riksarkivet-ood.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Tesseract/tessdata_best-nor",
      "sample_set_id": "line-recognition/swedish-fraktur",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.17777422010794985,
        "wer": 0.48480113636363636
      },
      "batch_size": 8,
      "model_revision": null,
      "started_at": "2026-09-17T15:38:11.021265+00:00",
      "finished_at": "2026-09-17T15:41:04.631295+00:00",
      "warnings": [],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Tesseract--tessdata_best-nor/line-recognition/swedish-fraktur.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Tesseract/tessdata_best-nor",
      "sample_set_id": "line-recognition/historical-danish",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.8710025286330507,
        "wer": 1.1220903696942035
      },
      "batch_size": 8,
      "model_revision": null,
      "started_at": "2026-09-17T16:15:00.112878+00:00",
      "finished_at": "2026-09-17T16:17:30.366027+00:00",
      "warnings": [],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Tesseract--tessdata_best-nor/line-recognition/historical-danish.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Tesseract/tessdata_best-nor",
      "sample_set_id": "page-transcription/modern-danish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 100,
      "failed_samples": 0,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.486587982832618,
        "wer": 0.9012545528126265
      },
      "batch_size": 1,
      "model_revision": null,
      "started_at": "2026-09-17T15:02:58.520974+00:00",
      "finished_at": "2026-09-17T15:03:41.069808+00:00",
      "warnings": [],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Tesseract--tessdata_best-nor/page-transcription/modern-danish.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Tesseract/tessdata_best-nor",
      "sample_set_id": "page-transcription/historical-danish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 100,
      "failed_samples": 0,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.7995308913065177,
        "wer": 1.2074121202481312
      },
      "batch_size": 1,
      "model_revision": null,
      "started_at": "2026-09-17T16:17:38.835896+00:00",
      "finished_at": "2026-09-17T16:24:00.388751+00:00",
      "warnings": [],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Tesseract--tessdata_best-nor/page-transcription/historical-danish.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Tesseract/tessdata_best-nor",
      "sample_set_id": "page-transcription/oj4ocrmt-danish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 100,
      "failed_samples": 0,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.02036653548534734,
        "wer": 0.050030138637733576
      },
      "batch_size": 1,
      "model_revision": null,
      "started_at": "2026-09-17T16:24:08.215480+00:00",
      "finished_at": "2026-09-17T16:32:51.132690+00:00",
      "warnings": [],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Tesseract--tessdata_best-nor/page-transcription/oj4ocrmt-danish.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Tesseract/tessdata_best-nor",
      "sample_set_id": "page-transcription/oj4ocrmt-swedish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 100,
      "failed_samples": 0,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.03164630401621088,
        "wer": 0.14237886535183833
      },
      "batch_size": 1,
      "model_revision": null,
      "started_at": "2026-09-17T16:33:04.530321+00:00",
      "finished_at": "2026-09-17T16:40:47.196767+00:00",
      "warnings": [],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Tesseract--tessdata_best-nor/page-transcription/oj4ocrmt-swedish.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Tesseract/tessdata_best-nor",
      "sample_set_id": "page-transcription/nasjonalt-vitenarkiv",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 100,
      "failed_samples": 0,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.16795776171722854,
        "wer": 0.17906865098415747
      },
      "batch_size": 1,
      "model_revision": null,
      "started_at": "2026-09-17T16:40:55.599883+00:00",
      "finished_at": "2026-09-17T16:45:59.703003+00:00",
      "warnings": [],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Tesseract--tessdata_best-nor/page-transcription/nasjonalt-vitenarkiv.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Tesseract/tessdata_best-swe",
      "sample_set_id": "line-recognition/norhand",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.8649812428641331,
        "wer": 1.0467461044912925
      },
      "batch_size": 8,
      "model_revision": null,
      "started_at": "2026-09-17T15:03:54.006998+00:00",
      "finished_at": "2026-09-17T15:06:57.831702+00:00",
      "warnings": [],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Tesseract--tessdata_best-swe/line-recognition/norhand.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Tesseract/tessdata_best-swe",
      "sample_set_id": "line-recognition/danish-typewritten",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.10498497044523795,
        "wer": 0.29977716607681215
      },
      "batch_size": 8,
      "model_revision": null,
      "started_at": "2026-09-17T15:14:10.067367+00:00",
      "finished_at": "2026-09-17T15:17:42.480617+00:00",
      "warnings": [],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Tesseract--tessdata_best-swe/line-recognition/danish-typewritten.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Tesseract/tessdata_best-swe",
      "sample_set_id": "line-recognition/modern-danish",
      "status": "completed",
      "completed_samples": 977,
      "successful_samples": 977,
      "failed_samples": 0,
      "selected_samples": 977,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.5773202119606359,
        "wer": 0.9493963068181818
      },
      "batch_size": 8,
      "model_revision": null,
      "started_at": "2026-09-17T15:17:56.226261+00:00",
      "finished_at": "2026-09-17T15:20:38.545965+00:00",
      "warnings": [
        "line-crop"
      ],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Tesseract--tessdata_best-swe/line-recognition/modern-danish.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Tesseract/tessdata_best-swe",
      "sample_set_id": "line-recognition/riksarkivet-ood",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.9106107724841398,
        "wer": 1.0270981728089192
      },
      "batch_size": 8,
      "model_revision": null,
      "started_at": "2026-09-17T15:20:46.784664+00:00",
      "finished_at": "2026-09-17T15:24:00.539929+00:00",
      "warnings": [],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Tesseract--tessdata_best-swe/line-recognition/riksarkivet-ood.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Tesseract/tessdata_best-swe",
      "sample_set_id": "line-recognition/swedish-fraktur",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.17198792425212697,
        "wer": 0.4342329545454545
      },
      "batch_size": 8,
      "model_revision": null,
      "started_at": "2026-09-17T15:41:12.129628+00:00",
      "finished_at": "2026-09-17T15:44:01.616373+00:00",
      "warnings": [],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Tesseract--tessdata_best-swe/line-recognition/swedish-fraktur.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Tesseract/tessdata_best-swe",
      "sample_set_id": "line-recognition/historical-danish",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.8665402350141306,
        "wer": 1.0759926973984482
      },
      "batch_size": 8,
      "model_revision": null,
      "started_at": "2026-09-17T16:46:08.274328+00:00",
      "finished_at": "2026-09-17T16:48:34.227109+00:00",
      "warnings": [],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Tesseract--tessdata_best-swe/line-recognition/historical-danish.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Tesseract/tessdata_best-swe",
      "sample_set_id": "page-transcription/modern-danish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 100,
      "failed_samples": 0,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.5112660944206009,
        "wer": 0.9348441926345609
      },
      "batch_size": 1,
      "model_revision": null,
      "started_at": "2026-09-17T15:24:09.074984+00:00",
      "finished_at": "2026-09-17T15:24:49.153544+00:00",
      "warnings": [],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Tesseract--tessdata_best-swe/page-transcription/modern-danish.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Tesseract/tessdata_best-swe",
      "sample_set_id": "page-transcription/historical-danish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 100,
      "failed_samples": 0,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.7914129820008651,
        "wer": 1.1324426064365622
      },
      "batch_size": 1,
      "model_revision": null,
      "started_at": "2026-09-17T16:48:42.817476+00:00",
      "finished_at": "2026-09-17T16:55:03.403351+00:00",
      "warnings": [],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Tesseract--tessdata_best-swe/page-transcription/historical-danish.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Tesseract/tessdata_best-swe",
      "sample_set_id": "page-transcription/oj4ocrmt-danish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 100,
      "failed_samples": 0,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.035924658792020635,
        "wer": 0.1460920233072132
      },
      "batch_size": 1,
      "model_revision": null,
      "started_at": "2026-09-17T16:55:11.574959+00:00",
      "finished_at": "2026-09-17T17:01:58.559619+00:00",
      "warnings": [],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Tesseract--tessdata_best-swe/page-transcription/oj4ocrmt-danish.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Tesseract/tessdata_best-swe",
      "sample_set_id": "page-transcription/oj4ocrmt-swedish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 100,
      "failed_samples": 0,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.01807026034193404,
        "wer": 0.0472770067364662
      },
      "batch_size": 1,
      "model_revision": null,
      "started_at": "2026-09-17T17:02:07.007334+00:00",
      "finished_at": "2026-09-17T17:08:49.894684+00:00",
      "warnings": [],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Tesseract--tessdata_best-swe/page-transcription/oj4ocrmt-swedish.json"
    },
    {
      "run_id": "mvp_20260917",
      "model_id": "Tesseract/tessdata_best-swe",
      "sample_set_id": "page-transcription/nasjonalt-vitenarkiv",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 100,
      "failed_samples": 0,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.17743540918336434,
        "wer": 0.23242575955009945
      },
      "batch_size": 1,
      "model_revision": null,
      "started_at": "2026-09-17T17:08:58.685767+00:00",
      "finished_at": "2026-09-17T17:13:53.090272+00:00",
      "warnings": [],
      "code_revision": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "implementation_sha256": null,
      "inference_settings": null,
      "runtime_guards": null,
      "failure_policy": null,
      "gpu_memory": null,
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Tesseract--tessdata_best-swe/page-transcription/nasjonalt-vitenarkiv.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "HuggingFaceTB/SmolVLM2-2.2B-Instruct",
      "sample_set_id": "page-transcription/modern-danish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 94,
      "failed_samples": 6,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.40048283261802575,
        "wer": 0.6847430190206394
      },
      "batch_size": 1,
      "model_revision": "482adb537c021c86670beed01cd58990d01e72e4",
      "started_at": "2026-09-20T19:12:26.657397+00:00",
      "finished_at": "2026-09-20T19:21:53.464336+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "482adb537c021c86670beed01cd58990d01e72e4",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 4096,
        "do_sample": false,
        "chat_template_options": {},
        "prompt": "Transcribe all text on this page in natural reading order. Preserve line breaks. Return only the original text, without explanation or translation.",
        "image_options": {},
        "image_processor": {
          "do_convert_rgb": true,
          "do_image_splitting": true,
          "do_normalize": true,
          "do_pad": true,
          "do_rescale": true,
          "do_resize": true,
          "image_mean": [
            0.5,
            0.5,
            0.5
          ],
          "image_processor_type": "SmolVLMImageProcessor",
          "image_std": [
            0.5,
            0.5,
            0.5
          ],
          "max_image_size": {
            "longest_edge": 384
          },
          "resample": 1,
          "rescale_factor": 0.00392156862745098,
          "size": {
            "longest_edge": 1536
          },
          "video_sampling": {
            "fps": 1,
            "max_frames": 64,
            "video_size": {
              "longest_edge": 384
            }
          }
        },
        "eos_token_id": 49279,
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 5.26,
        "torch_peak_reserved_gib": 7.291
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/HuggingFaceTB--SmolVLM2-2.2B-Instruct/page-transcription/modern-danish.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "google/gemma-4-E2B-it",
      "sample_set_id": "page-transcription/modern-danish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 100,
      "failed_samples": 0,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.09455472103004292,
        "wer": 0.22703358963982193
      },
      "batch_size": 1,
      "model_revision": "3e22461f65e89153144f8adb70e3b8c2cc9845a7",
      "started_at": "2026-09-20T19:22:01.738571+00:00",
      "finished_at": "2026-09-20T19:26:53.612591+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "3e22461f65e89153144f8adb70e3b8c2cc9845a7",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 4096,
        "do_sample": false,
        "chat_template_options": {
          "enable_thinking": false
        },
        "prompt": "Transcribe all text on this page in natural reading order. Preserve line breaks. Return only the original text, without explanation or translation.",
        "image_options": {
          "max_soft_tokens": 1120
        },
        "image_processor": {
          "do_convert_rgb": true,
          "do_normalize": false,
          "do_rescale": true,
          "do_resize": true,
          "image_mean": [
            0.0,
            0.0,
            0.0
          ],
          "image_processor_type": "Gemma4ImageProcessor",
          "image_seq_length": 280,
          "image_std": [
            1.0,
            1.0,
            1.0
          ],
          "max_soft_tokens": 280,
          "patch_size": 16,
          "pooling_kernel_size": 3,
          "resample": 3,
          "rescale_factor": 0.00392156862745098
        },
        "eos_token_id": [
          1,
          106,
          50
        ],
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 9.945,
        "torch_peak_reserved_gib": 10.074
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/google--gemma-4-E2B-it/page-transcription/modern-danish.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "google/gemma-3-4b-it",
      "sample_set_id": "page-transcription/modern-danish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 100,
      "failed_samples": 0,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.14484978540772533,
        "wer": 0.311614730878187
      },
      "batch_size": 1,
      "model_revision": "093f9f388b31de276ce2de164bdc2081324b9767",
      "started_at": "2026-09-20T19:27:01.599503+00:00",
      "finished_at": "2026-09-20T19:32:05.770707+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "093f9f388b31de276ce2de164bdc2081324b9767",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 4096,
        "do_sample": false,
        "chat_template_options": {},
        "prompt": "Transcribe all text on this page in natural reading order. Preserve line breaks. Return only the original text, without explanation or translation.",
        "image_options": {
          "do_pan_and_scan": true,
          "pan_and_scan_min_crop_size": 256,
          "pan_and_scan_max_num_crops": 2,
          "pan_and_scan_min_ratio_to_activate": 1.2
        },
        "image_processor": {
          "do_convert_rgb": null,
          "do_normalize": true,
          "do_rescale": true,
          "do_resize": true,
          "image_mean": [
            0.5,
            0.5,
            0.5
          ],
          "image_processor_type": "Gemma3ImageProcessor",
          "image_seq_length": 256,
          "image_std": [
            0.5,
            0.5,
            0.5
          ],
          "resample": 2,
          "rescale_factor": 0.00392156862745098,
          "size": {
            "height": 896,
            "width": 896
          }
        },
        "eos_token_id": [
          1,
          106
        ],
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 8.341,
        "torch_peak_reserved_gib": 8.455
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/google--gemma-3-4b-it/page-transcription/modern-danish.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "Qwen/Qwen3.5-2B",
      "sample_set_id": "page-transcription/modern-danish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 100,
      "failed_samples": 0,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.08261802575107297,
        "wer": 0.21813031161473087
      },
      "batch_size": 1,
      "model_revision": "15852e8c16360a2fea060d615a32b45270f8a8fc",
      "started_at": "2026-09-20T19:32:13.511440+00:00",
      "finished_at": "2026-09-20T19:36:10.628345+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "15852e8c16360a2fea060d615a32b45270f8a8fc",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 4096,
        "do_sample": false,
        "chat_template_options": {
          "enable_thinking": false
        },
        "prompt": "Transcribe all text on this page in natural reading order. Preserve line breaks. Return only the original text, without explanation or translation.",
        "image_options": {
          "size": {
            "longest_edge": 2097152,
            "shortest_edge": 65536
          }
        },
        "image_processor": {
          "size": {
            "longest_edge": 16777216,
            "shortest_edge": 65536
          },
          "patch_size": 16,
          "temporal_patch_size": 2,
          "merge_size": 2,
          "image_mean": [
            0.5,
            0.5,
            0.5
          ],
          "image_std": [
            0.5,
            0.5,
            0.5
          ],
          "image_processor_type": "Qwen2VLImageProcessor",
          "do_convert_rgb": true,
          "do_resize": true,
          "resample": 3,
          "do_rescale": true,
          "rescale_factor": 0.00392156862745098,
          "do_normalize": true
        },
        "eos_token_id": [
          248044,
          248046
        ],
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 4.646,
        "torch_peak_reserved_gib": 4.814
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen3.5-2B/page-transcription/modern-danish.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "datalab-to/chandra-ocr-2",
      "sample_set_id": "page-transcription/modern-danish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 100,
      "failed_samples": 0,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.0726260729613734,
        "wer": 0.17118575475515985
      },
      "batch_size": 1,
      "model_revision": "af93b47dba1b47b6640c86ccf487ed2260ab9a09",
      "started_at": "2026-09-20T19:36:18.346733+00:00",
      "finished_at": "2026-09-20T19:45:03.886665+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "af93b47dba1b47b6640c86ccf487ed2260ab9a09",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 6144,
        "do_sample": false,
        "chat_template_options": {},
        "prompt": "OCR this image to HTML, arranged as layout blocks.  Each layout block should be a div with the data-bbox attribute representing the bounding box of the block in x0 y0 x1 y1 format.  Bboxes are normalized 0-1000. The data-label attribute is the label for the block.\n\nUse the following labels:\n- Caption\n- Footnote\n- Equation-Block\n- List-Group\n- Page-Header\n- Page-Footer\n- Image\n- Section-Header\n- Table\n- Text\n- Complex-Block\n- Code-Block\n- Form\n- Table-Of-Contents\n- Figure\n- Chemical-Block\n- Diagram\n- Bibliography\n- Blank-Page\n\nOnly use these tags ['math', 'br', 'i', 'b', 'u', 'del', 'sup', 'sub', 'table', 'tr', 'td', 'p', 'th', 'div', 'pre', 'h1', 'h2', 'h3', 'h4', 'h5', 'ul', 'ol', 'li', 'input', 'a', 'span', 'img', 'hr', 'tbody', 'small', 'caption', 'strong', 'thead', 'big', 'code', 'chem'], and these attributes ['class', 'colspan', 'rowspan', 'display', 'checked', 'type', 'border', 'value', 'style', 'href', 'alt', 'align', 'data-bbox', 'data-label'].\n\nGuidelines:\n* Inline math: Surround math with <math>...</math> tags. Math expressions should be rendered in KaTeX-compatible LaTeX. Use display for block math.\n* Tables: Use colspan and rowspan attributes to match table structure.\n* Formatting: Maintain consistent formatting with the image, including spacing, indentation, subscripts/superscripts, and special characters.\n* Images: Include a description of any images in the alt attribute of an <img> tag. Do not fill out the src property. Describe in detail inside the div tag. Also convert charts to high fidelity data, and convert diagrams to mermaid.\n* Forms: Mark checkboxes and radio buttons properly.\n* Text: join lines together properly into paragraphs using <p>...</p> tags.  Use <br> tags for line breaks within paragraphs, but only when absolutely necessary to maintain meaning.\n* Chemistry: Use <chem>...</chem> tags for chemical formulas with reactive SMILES.\n* Lists: Preserve indents and proper list markers.\n* Use the simplest possible HTML structure that accurately represents the content of the block.\n* Make sure the text is accurate and easy for a human to read and interpret.  Reading order should be correct and natural.",
        "image_options": {
          "size": {
            "longest_edge": 2097152,
            "shortest_edge": 65536
          }
        },
        "image_processor": {
          "size": {
            "longest_edge": 16777216,
            "shortest_edge": 65536
          },
          "data_format": "channels_first",
          "do_convert_rgb": true,
          "do_normalize": true,
          "do_rescale": true,
          "do_resize": true,
          "image_mean": [
            0.5,
            0.5,
            0.5
          ],
          "image_processor_type": "Qwen2VLImageProcessor",
          "image_std": [
            0.5,
            0.5,
            0.5
          ],
          "merge_size": 2,
          "patch_size": 16,
          "resample": 3,
          "rescale_factor": 0.00392156862745098,
          "temporal_patch_size": 2
        },
        "eos_token_id": [
          248044,
          248046
        ],
        "postprocessing": "chandra_html_text_v1_exclude_image_descriptions"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 10.243,
        "torch_peak_reserved_gib": 10.287
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/datalab-to--chandra-ocr-2/page-transcription/modern-danish.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "Qwen/Qwen3.5-4B",
      "sample_set_id": "page-transcription/modern-danish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 100,
      "failed_samples": 0,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.07115075107296137,
        "wer": 0.17037636584378793
      },
      "batch_size": 1,
      "model_revision": "851bf6e806efd8d0a36b00ddf55e13ccb7b8cd0a",
      "started_at": "2026-09-20T19:45:12.561169+00:00",
      "finished_at": "2026-09-20T19:50:41.027316+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "851bf6e806efd8d0a36b00ddf55e13ccb7b8cd0a",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 4096,
        "do_sample": false,
        "chat_template_options": {
          "enable_thinking": false
        },
        "prompt": "Transcribe all text on this page in natural reading order. Preserve line breaks. Return only the original text, without explanation or translation.",
        "image_options": {
          "size": {
            "longest_edge": 2097152,
            "shortest_edge": 65536
          }
        },
        "image_processor": {
          "size": {
            "longest_edge": 16777216,
            "shortest_edge": 65536
          },
          "patch_size": 16,
          "temporal_patch_size": 2,
          "merge_size": 2,
          "image_mean": [
            0.5,
            0.5,
            0.5
          ],
          "image_std": [
            0.5,
            0.5,
            0.5
          ],
          "image_processor_type": "Qwen2VLImageProcessor",
          "do_convert_rgb": true,
          "do_resize": true,
          "resample": 3,
          "do_rescale": true,
          "rescale_factor": 0.00392156862745098,
          "do_normalize": true
        },
        "eos_token_id": [
          248044,
          248046
        ],
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 9.436,
        "torch_peak_reserved_gib": 9.594
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen3.5-4B/page-transcription/modern-danish.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "google/gemma-4-E4B-it",
      "sample_set_id": "page-transcription/modern-danish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 100,
      "failed_samples": 0,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.0761131974248927,
        "wer": 0.1837312828814245
      },
      "batch_size": 1,
      "model_revision": "ee0ef6023621cff504d758262d4e04895a5af4a2",
      "started_at": "2026-09-20T19:50:49.326278+00:00",
      "finished_at": "2026-09-20T19:57:00.617373+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "ee0ef6023621cff504d758262d4e04895a5af4a2",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 4096,
        "do_sample": false,
        "chat_template_options": {
          "enable_thinking": false
        },
        "prompt": "Transcribe all text on this page in natural reading order. Preserve line breaks. Return only the original text, without explanation or translation.",
        "image_options": {
          "max_soft_tokens": 1120
        },
        "image_processor": {
          "do_convert_rgb": true,
          "do_normalize": false,
          "do_rescale": true,
          "do_resize": true,
          "image_mean": [
            0.0,
            0.0,
            0.0
          ],
          "image_processor_type": "Gemma4ImageProcessor",
          "image_seq_length": 280,
          "image_std": [
            1.0,
            1.0,
            1.0
          ],
          "max_soft_tokens": 280,
          "patch_size": 16,
          "pooling_kernel_size": 3,
          "resample": 3,
          "rescale_factor": 0.00392156862745098
        },
        "eos_token_id": [
          1,
          106,
          50
        ],
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 15.238,
        "torch_peak_reserved_gib": 15.352
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/google--gemma-4-E4B-it/page-transcription/modern-danish.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "HuggingFaceTB/SmolVLM2-2.2B-Instruct",
      "sample_set_id": "line-recognition/norhand",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 994,
      "failed_samples": 6,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 1.0732343826455717,
        "wer": 1.5087076076993584
      },
      "batch_size": 1,
      "model_revision": "482adb537c021c86670beed01cd58990d01e72e4",
      "started_at": "2026-09-20T19:57:08.239987+00:00",
      "finished_at": "2026-09-20T20:05:13.550980+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "482adb537c021c86670beed01cd58990d01e72e4",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 1024,
        "do_sample": false,
        "chat_template_options": {},
        "prompt": "Transcribe the text in this image. Return only the original text in a single line, without explanation or translation.",
        "image_options": {},
        "image_processor": {
          "do_convert_rgb": true,
          "do_image_splitting": true,
          "do_normalize": true,
          "do_pad": true,
          "do_rescale": true,
          "do_resize": true,
          "image_mean": [
            0.5,
            0.5,
            0.5
          ],
          "image_processor_type": "SmolVLMImageProcessor",
          "image_std": [
            0.5,
            0.5,
            0.5
          ],
          "max_image_size": {
            "longest_edge": 384
          },
          "resample": 1,
          "rescale_factor": 0.00392156862745098,
          "size": {
            "longest_edge": 1536
          },
          "video_sampling": {
            "fps": 1,
            "max_frames": 64,
            "video_size": {
              "longest_edge": 384
            }
          }
        },
        "eos_token_id": 49279,
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 4.571,
        "torch_peak_reserved_gib": 4.848
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/HuggingFaceTB--SmolVLM2-2.2B-Instruct/line-recognition/norhand.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "google/gemma-4-E2B-it",
      "sample_set_id": "line-recognition/norhand",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 999,
      "failed_samples": 1,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.3117925297667591,
        "wer": 0.6593950504124656
      },
      "batch_size": 1,
      "model_revision": "3e22461f65e89153144f8adb70e3b8c2cc9845a7",
      "started_at": "2026-09-20T20:05:21.953837+00:00",
      "finished_at": "2026-09-20T20:17:12.488446+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "3e22461f65e89153144f8adb70e3b8c2cc9845a7",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 1024,
        "do_sample": false,
        "chat_template_options": {
          "enable_thinking": false
        },
        "prompt": "Transcribe the text in this image. Return only the original text in a single line, without explanation or translation.",
        "image_options": {
          "max_soft_tokens": 280
        },
        "image_processor": {
          "do_convert_rgb": true,
          "do_normalize": false,
          "do_rescale": true,
          "do_resize": true,
          "image_mean": [
            0.0,
            0.0,
            0.0
          ],
          "image_processor_type": "Gemma4ImageProcessor",
          "image_seq_length": 280,
          "image_std": [
            1.0,
            1.0,
            1.0
          ],
          "max_soft_tokens": 280,
          "patch_size": 16,
          "pooling_kernel_size": 3,
          "resample": 3,
          "rescale_factor": 0.00392156862745098
        },
        "eos_token_id": [
          1,
          106,
          50
        ],
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 9.591,
        "torch_peak_reserved_gib": 9.645
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/google--gemma-4-E2B-it/line-recognition/norhand.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "google/gemma-3-4b-it",
      "sample_set_id": "line-recognition/norhand",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 985,
      "failed_samples": 15,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.5939650954167346,
        "wer": 0.9574702108157653
      },
      "batch_size": 1,
      "model_revision": "093f9f388b31de276ce2de164bdc2081324b9767",
      "started_at": "2026-09-20T20:17:20.393994+00:00",
      "finished_at": "2026-09-20T20:43:09.649371+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "093f9f388b31de276ce2de164bdc2081324b9767",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 1024,
        "do_sample": false,
        "chat_template_options": {},
        "prompt": "Transcribe the text in this image. Return only the original text in a single line, without explanation or translation.",
        "image_options": {},
        "image_processor": {
          "do_convert_rgb": null,
          "do_normalize": true,
          "do_rescale": true,
          "do_resize": true,
          "image_mean": [
            0.5,
            0.5,
            0.5
          ],
          "image_processor_type": "Gemma3ImageProcessor",
          "image_seq_length": 256,
          "image_std": [
            0.5,
            0.5,
            0.5
          ],
          "resample": 2,
          "rescale_factor": 0.00392156862745098,
          "size": {
            "height": 896,
            "width": 896
          }
        },
        "eos_token_id": [
          1,
          106
        ],
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 8.216,
        "torch_peak_reserved_gib": 8.318
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/google--gemma-3-4b-it/line-recognition/norhand.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "Qwen/Qwen3.5-2B",
      "sample_set_id": "line-recognition/norhand",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 993,
      "failed_samples": 7,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.3787310389822215,
        "wer": 0.6603116406966086
      },
      "batch_size": 1,
      "model_revision": "15852e8c16360a2fea060d615a32b45270f8a8fc",
      "started_at": "2026-09-20T18:59:04.104616+00:00",
      "finished_at": "2026-09-20T19:12:18.835203+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "15852e8c16360a2fea060d615a32b45270f8a8fc",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 1024,
        "do_sample": false,
        "chat_template_options": {
          "enable_thinking": false
        },
        "prompt": "Transcribe the text in this image. Return only the original text in a single line, without explanation or translation.",
        "image_options": {
          "size": {
            "longest_edge": 2097152,
            "shortest_edge": 65536
          }
        },
        "image_processor": {
          "size": {
            "longest_edge": 16777216,
            "shortest_edge": 65536
          },
          "patch_size": 16,
          "temporal_patch_size": 2,
          "merge_size": 2,
          "image_mean": [
            0.5,
            0.5,
            0.5
          ],
          "image_std": [
            0.5,
            0.5,
            0.5
          ],
          "image_processor_type": "Qwen2VLImageProcessor",
          "do_convert_rgb": true,
          "do_resize": true,
          "resample": 3,
          "do_rescale": true,
          "rescale_factor": 0.00392156862745098,
          "do_normalize": true
        },
        "eos_token_id": [
          248044,
          248046
        ],
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 4.258,
        "torch_peak_reserved_gib": 4.389
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen3.5-2B/line-recognition/norhand.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "datalab-to/chandra-ocr-2",
      "sample_set_id": "line-recognition/norhand",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 983,
      "failed_samples": 17,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.3506442668406459,
        "wer": 0.6914757103574702
      },
      "batch_size": 1,
      "model_revision": "af93b47dba1b47b6640c86ccf487ed2260ab9a09",
      "started_at": "2026-09-20T20:43:17.665726+00:00",
      "finished_at": "2026-09-20T21:43:30.781960+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "af93b47dba1b47b6640c86ccf487ed2260ab9a09",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 1536,
        "do_sample": false,
        "chat_template_options": {},
        "prompt": "OCR this image to HTML, arranged as layout blocks.  Each layout block should be a div with the data-bbox attribute representing the bounding box of the block in x0 y0 x1 y1 format.  Bboxes are normalized 0-1000. The data-label attribute is the label for the block.\n\nUse the following labels:\n- Caption\n- Footnote\n- Equation-Block\n- List-Group\n- Page-Header\n- Page-Footer\n- Image\n- Section-Header\n- Table\n- Text\n- Complex-Block\n- Code-Block\n- Form\n- Table-Of-Contents\n- Figure\n- Chemical-Block\n- Diagram\n- Bibliography\n- Blank-Page\n\nOnly use these tags ['math', 'br', 'i', 'b', 'u', 'del', 'sup', 'sub', 'table', 'tr', 'td', 'p', 'th', 'div', 'pre', 'h1', 'h2', 'h3', 'h4', 'h5', 'ul', 'ol', 'li', 'input', 'a', 'span', 'img', 'hr', 'tbody', 'small', 'caption', 'strong', 'thead', 'big', 'code', 'chem'], and these attributes ['class', 'colspan', 'rowspan', 'display', 'checked', 'type', 'border', 'value', 'style', 'href', 'alt', 'align', 'data-bbox', 'data-label'].\n\nGuidelines:\n* Inline math: Surround math with <math>...</math> tags. Math expressions should be rendered in KaTeX-compatible LaTeX. Use display for block math.\n* Tables: Use colspan and rowspan attributes to match table structure.\n* Formatting: Maintain consistent formatting with the image, including spacing, indentation, subscripts/superscripts, and special characters.\n* Images: Include a description of any images in the alt attribute of an <img> tag. Do not fill out the src property. Describe in detail inside the div tag. Also convert charts to high fidelity data, and convert diagrams to mermaid.\n* Forms: Mark checkboxes and radio buttons properly.\n* Text: join lines together properly into paragraphs using <p>...</p> tags.  Use <br> tags for line breaks within paragraphs, but only when absolutely necessary to maintain meaning.\n* Chemistry: Use <chem>...</chem> tags for chemical formulas with reactive SMILES.\n* Lists: Preserve indents and proper list markers.\n* Use the simplest possible HTML structure that accurately represents the content of the block.\n* Make sure the text is accurate and easy for a human to read and interpret.  Reading order should be correct and natural.",
        "image_options": {
          "size": {
            "longest_edge": 2097152,
            "shortest_edge": 65536
          }
        },
        "image_processor": {
          "size": {
            "longest_edge": 16777216,
            "shortest_edge": 65536
          },
          "data_format": "channels_first",
          "do_convert_rgb": true,
          "do_normalize": true,
          "do_rescale": true,
          "do_resize": true,
          "image_mean": [
            0.5,
            0.5,
            0.5
          ],
          "image_processor_type": "Qwen2VLImageProcessor",
          "image_std": [
            0.5,
            0.5,
            0.5
          ],
          "merge_size": 2,
          "patch_size": 16,
          "resample": 3,
          "rescale_factor": 0.00392156862745098,
          "temporal_patch_size": 2
        },
        "eos_token_id": [
          248044,
          248046
        ],
        "postprocessing": "chandra_html_text_v1_exclude_image_descriptions"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 10.243,
        "torch_peak_reserved_gib": 10.287
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/datalab-to--chandra-ocr-2/line-recognition/norhand.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "Qwen/Qwen3.5-4B",
      "sample_set_id": "line-recognition/norhand",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 999,
      "failed_samples": 1,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.35641820257706736,
        "wer": 0.6520623281393217
      },
      "batch_size": 1,
      "model_revision": "851bf6e806efd8d0a36b00ddf55e13ccb7b8cd0a",
      "started_at": "2026-09-20T21:43:38.912658+00:00",
      "finished_at": "2026-09-20T21:56:36.760713+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "851bf6e806efd8d0a36b00ddf55e13ccb7b8cd0a",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 1024,
        "do_sample": false,
        "chat_template_options": {
          "enable_thinking": false
        },
        "prompt": "Transcribe the text in this image. Return only the original text in a single line, without explanation or translation.",
        "image_options": {
          "size": {
            "longest_edge": 2097152,
            "shortest_edge": 65536
          }
        },
        "image_processor": {
          "size": {
            "longest_edge": 16777216,
            "shortest_edge": 65536
          },
          "patch_size": 16,
          "temporal_patch_size": 2,
          "merge_size": 2,
          "image_mean": [
            0.5,
            0.5,
            0.5
          ],
          "image_std": [
            0.5,
            0.5,
            0.5
          ],
          "image_processor_type": "Qwen2VLImageProcessor",
          "do_convert_rgb": true,
          "do_resize": true,
          "resample": 3,
          "do_rescale": true,
          "rescale_factor": 0.00392156862745098,
          "do_normalize": true
        },
        "eos_token_id": [
          248044,
          248046
        ],
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 8.713,
        "torch_peak_reserved_gib": 8.803
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen3.5-4B/line-recognition/norhand.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "google/gemma-4-E4B-it",
      "sample_set_id": "line-recognition/norhand",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 999,
      "failed_samples": 1,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.29639536780296855,
        "wer": 0.620531622364803
      },
      "batch_size": 1,
      "model_revision": "ee0ef6023621cff504d758262d4e04895a5af4a2",
      "started_at": "2026-09-20T21:56:44.958833+00:00",
      "finished_at": "2026-09-20T22:11:50.094539+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "ee0ef6023621cff504d758262d4e04895a5af4a2",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 1024,
        "do_sample": false,
        "chat_template_options": {
          "enable_thinking": false
        },
        "prompt": "Transcribe the text in this image. Return only the original text in a single line, without explanation or translation.",
        "image_options": {
          "max_soft_tokens": 280
        },
        "image_processor": {
          "do_convert_rgb": true,
          "do_normalize": false,
          "do_rescale": true,
          "do_resize": true,
          "image_mean": [
            0.0,
            0.0,
            0.0
          ],
          "image_processor_type": "Gemma4ImageProcessor",
          "image_seq_length": 280,
          "image_std": [
            1.0,
            1.0,
            1.0
          ],
          "max_soft_tokens": 280,
          "patch_size": 16,
          "pooling_kernel_size": 3,
          "resample": 3,
          "rescale_factor": 0.00392156862745098
        },
        "eos_token_id": [
          1,
          106,
          50
        ],
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 14.877,
        "torch_peak_reserved_gib": 14.943
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/google--gemma-4-E4B-it/line-recognition/norhand.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "HuggingFaceTB/SmolVLM2-2.2B-Instruct",
      "sample_set_id": "line-recognition/danish-typewritten",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 994,
      "failed_samples": 6,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.2046238576529686,
        "wer": 0.5450255603617774
      },
      "batch_size": 1,
      "model_revision": "482adb537c021c86670beed01cd58990d01e72e4",
      "started_at": "2026-09-20T22:11:58.268265+00:00",
      "finished_at": "2026-09-20T22:22:29.007097+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "482adb537c021c86670beed01cd58990d01e72e4",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 1024,
        "do_sample": false,
        "chat_template_options": {},
        "prompt": "Transcribe the text in this image. Return only the original text in a single line, without explanation or translation.",
        "image_options": {},
        "image_processor": {
          "do_convert_rgb": true,
          "do_image_splitting": true,
          "do_normalize": true,
          "do_pad": true,
          "do_rescale": true,
          "do_resize": true,
          "image_mean": [
            0.5,
            0.5,
            0.5
          ],
          "image_processor_type": "SmolVLMImageProcessor",
          "image_std": [
            0.5,
            0.5,
            0.5
          ],
          "max_image_size": {
            "longest_edge": 384
          },
          "resample": 1,
          "rescale_factor": 0.00392156862745098,
          "size": {
            "longest_edge": 1536
          },
          "video_sampling": {
            "fps": 1,
            "max_frames": 64,
            "video_size": {
              "longest_edge": 384
            }
          }
        },
        "eos_token_id": 49279,
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 4.571,
        "torch_peak_reserved_gib": 4.875
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/HuggingFaceTB--SmolVLM2-2.2B-Instruct/line-recognition/danish-typewritten.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "google/gemma-4-E2B-it",
      "sample_set_id": "line-recognition/danish-typewritten",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.01964937763521556,
        "wer": 0.09306593262550793
      },
      "batch_size": 1,
      "model_revision": "3e22461f65e89153144f8adb70e3b8c2cc9845a7",
      "started_at": "2026-09-20T22:22:36.946078+00:00",
      "finished_at": "2026-09-20T22:38:56.428090+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "3e22461f65e89153144f8adb70e3b8c2cc9845a7",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 1024,
        "do_sample": false,
        "chat_template_options": {
          "enable_thinking": false
        },
        "prompt": "Transcribe the text in this image. Return only the original text in a single line, without explanation or translation.",
        "image_options": {
          "max_soft_tokens": 280
        },
        "image_processor": {
          "do_convert_rgb": true,
          "do_normalize": false,
          "do_rescale": true,
          "do_resize": true,
          "image_mean": [
            0.0,
            0.0,
            0.0
          ],
          "image_processor_type": "Gemma4ImageProcessor",
          "image_seq_length": 280,
          "image_std": [
            1.0,
            1.0,
            1.0
          ],
          "max_soft_tokens": 280,
          "patch_size": 16,
          "pooling_kernel_size": 3,
          "resample": 3,
          "rescale_factor": 0.00392156862745098
        },
        "eos_token_id": [
          1,
          106,
          50
        ],
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 9.591,
        "torch_peak_reserved_gib": 9.641
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/google--gemma-4-E2B-it/line-recognition/danish-typewritten.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "google/gemma-3-4b-it",
      "sample_set_id": "line-recognition/danish-typewritten",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 997,
      "failed_samples": 3,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.2378502693215518,
        "wer": 0.5142220474505178
      },
      "batch_size": 1,
      "model_revision": "093f9f388b31de276ce2de164bdc2081324b9767",
      "started_at": "2026-09-20T22:39:05.044154+00:00",
      "finished_at": "2026-09-20T22:59:48.507918+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "093f9f388b31de276ce2de164bdc2081324b9767",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 1024,
        "do_sample": false,
        "chat_template_options": {},
        "prompt": "Transcribe the text in this image. Return only the original text in a single line, without explanation or translation.",
        "image_options": {},
        "image_processor": {
          "do_convert_rgb": null,
          "do_normalize": true,
          "do_rescale": true,
          "do_resize": true,
          "image_mean": [
            0.5,
            0.5,
            0.5
          ],
          "image_processor_type": "Gemma3ImageProcessor",
          "image_seq_length": 256,
          "image_std": [
            0.5,
            0.5,
            0.5
          ],
          "resample": 2,
          "rescale_factor": 0.00392156862745098,
          "size": {
            "height": 896,
            "width": 896
          }
        },
        "eos_token_id": [
          1,
          106
        ],
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 8.216,
        "torch_peak_reserved_gib": 8.318
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/google--gemma-3-4b-it/line-recognition/danish-typewritten.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "Qwen/Qwen3.5-2B",
      "sample_set_id": "line-recognition/danish-typewritten",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.009501906433456395,
        "wer": 0.0508585659981649
      },
      "batch_size": 1,
      "model_revision": "15852e8c16360a2fea060d615a32b45270f8a8fc",
      "started_at": "2026-09-20T22:59:57.196769+00:00",
      "finished_at": "2026-09-20T23:12:29.567603+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "15852e8c16360a2fea060d615a32b45270f8a8fc",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 1024,
        "do_sample": false,
        "chat_template_options": {
          "enable_thinking": false
        },
        "prompt": "Transcribe the text in this image. Return only the original text in a single line, without explanation or translation.",
        "image_options": {
          "size": {
            "longest_edge": 2097152,
            "shortest_edge": 65536
          }
        },
        "image_processor": {
          "size": {
            "longest_edge": 16777216,
            "shortest_edge": 65536
          },
          "patch_size": 16,
          "temporal_patch_size": 2,
          "merge_size": 2,
          "image_mean": [
            0.5,
            0.5,
            0.5
          ],
          "image_std": [
            0.5,
            0.5,
            0.5
          ],
          "image_processor_type": "Qwen2VLImageProcessor",
          "do_convert_rgb": true,
          "do_resize": true,
          "resample": 3,
          "do_rescale": true,
          "rescale_factor": 0.00392156862745098,
          "do_normalize": true
        },
        "eos_token_id": [
          248044,
          248046
        ],
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 4.203,
        "torch_peak_reserved_gib": 4.258
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen3.5-2B/line-recognition/danish-typewritten.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "datalab-to/chandra-ocr-2",
      "sample_set_id": "line-recognition/danish-typewritten",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 988,
      "failed_samples": 12,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.02549980834795941,
        "wer": 0.059378686590640974
      },
      "batch_size": 1,
      "model_revision": "af93b47dba1b47b6640c86ccf487ed2260ab9a09",
      "started_at": "2026-09-20T23:12:37.982763+00:00",
      "finished_at": "2026-09-21T00:09:23.523924+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "af93b47dba1b47b6640c86ccf487ed2260ab9a09",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 1536,
        "do_sample": false,
        "chat_template_options": {},
        "prompt": "OCR this image to HTML, arranged as layout blocks.  Each layout block should be a div with the data-bbox attribute representing the bounding box of the block in x0 y0 x1 y1 format.  Bboxes are normalized 0-1000. The data-label attribute is the label for the block.\n\nUse the following labels:\n- Caption\n- Footnote\n- Equation-Block\n- List-Group\n- Page-Header\n- Page-Footer\n- Image\n- Section-Header\n- Table\n- Text\n- Complex-Block\n- Code-Block\n- Form\n- Table-Of-Contents\n- Figure\n- Chemical-Block\n- Diagram\n- Bibliography\n- Blank-Page\n\nOnly use these tags ['math', 'br', 'i', 'b', 'u', 'del', 'sup', 'sub', 'table', 'tr', 'td', 'p', 'th', 'div', 'pre', 'h1', 'h2', 'h3', 'h4', 'h5', 'ul', 'ol', 'li', 'input', 'a', 'span', 'img', 'hr', 'tbody', 'small', 'caption', 'strong', 'thead', 'big', 'code', 'chem'], and these attributes ['class', 'colspan', 'rowspan', 'display', 'checked', 'type', 'border', 'value', 'style', 'href', 'alt', 'align', 'data-bbox', 'data-label'].\n\nGuidelines:\n* Inline math: Surround math with <math>...</math> tags. Math expressions should be rendered in KaTeX-compatible LaTeX. Use display for block math.\n* Tables: Use colspan and rowspan attributes to match table structure.\n* Formatting: Maintain consistent formatting with the image, including spacing, indentation, subscripts/superscripts, and special characters.\n* Images: Include a description of any images in the alt attribute of an <img> tag. Do not fill out the src property. Describe in detail inside the div tag. Also convert charts to high fidelity data, and convert diagrams to mermaid.\n* Forms: Mark checkboxes and radio buttons properly.\n* Text: join lines together properly into paragraphs using <p>...</p> tags.  Use <br> tags for line breaks within paragraphs, but only when absolutely necessary to maintain meaning.\n* Chemistry: Use <chem>...</chem> tags for chemical formulas with reactive SMILES.\n* Lists: Preserve indents and proper list markers.\n* Use the simplest possible HTML structure that accurately represents the content of the block.\n* Make sure the text is accurate and easy for a human to read and interpret.  Reading order should be correct and natural.",
        "image_options": {
          "size": {
            "longest_edge": 2097152,
            "shortest_edge": 65536
          }
        },
        "image_processor": {
          "size": {
            "longest_edge": 16777216,
            "shortest_edge": 65536
          },
          "data_format": "channels_first",
          "do_convert_rgb": true,
          "do_normalize": true,
          "do_rescale": true,
          "do_resize": true,
          "image_mean": [
            0.5,
            0.5,
            0.5
          ],
          "image_processor_type": "Qwen2VLImageProcessor",
          "image_std": [
            0.5,
            0.5,
            0.5
          ],
          "merge_size": 2,
          "patch_size": 16,
          "resample": 3,
          "rescale_factor": 0.00392156862745098,
          "temporal_patch_size": 2
        },
        "eos_token_id": [
          248044,
          248046
        ],
        "postprocessing": "chandra_html_text_v1_exclude_image_descriptions"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 10.243,
        "torch_peak_reserved_gib": 10.287
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/datalab-to--chandra-ocr-2/line-recognition/danish-typewritten.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "Qwen/Qwen3.5-4B",
      "sample_set_id": "line-recognition/danish-typewritten",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.0066977344711412375,
        "wer": 0.04194520907065146
      },
      "batch_size": 1,
      "model_revision": "851bf6e806efd8d0a36b00ddf55e13ccb7b8cd0a",
      "started_at": "2026-09-21T00:09:51.676104+00:00",
      "finished_at": "2026-09-21T00:26:48.201795+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "851bf6e806efd8d0a36b00ddf55e13ccb7b8cd0a",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 1024,
        "do_sample": false,
        "chat_template_options": {
          "enable_thinking": false
        },
        "prompt": "Transcribe the text in this image. Return only the original text in a single line, without explanation or translation.",
        "image_options": {
          "size": {
            "longest_edge": 2097152,
            "shortest_edge": 65536
          }
        },
        "image_processor": {
          "size": {
            "longest_edge": 16777216,
            "shortest_edge": 65536
          },
          "patch_size": 16,
          "temporal_patch_size": 2,
          "merge_size": 2,
          "image_mean": [
            0.5,
            0.5,
            0.5
          ],
          "image_std": [
            0.5,
            0.5,
            0.5
          ],
          "image_processor_type": "Qwen2VLImageProcessor",
          "do_convert_rgb": true,
          "do_resize": true,
          "resample": 3,
          "do_rescale": true,
          "rescale_factor": 0.00392156862745098,
          "do_normalize": true
        },
        "eos_token_id": [
          248044,
          248046
        ],
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 8.617,
        "torch_peak_reserved_gib": 8.68
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen3.5-4B/line-recognition/danish-typewritten.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "google/gemma-4-E4B-it",
      "sample_set_id": "line-recognition/danish-typewritten",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.011721035324497166,
        "wer": 0.0517761174465854
      },
      "batch_size": 1,
      "model_revision": "ee0ef6023621cff504d758262d4e04895a5af4a2",
      "started_at": "2026-09-21T00:26:55.834539+00:00",
      "finished_at": "2026-09-21T00:47:41.747398+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "ee0ef6023621cff504d758262d4e04895a5af4a2",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 1024,
        "do_sample": false,
        "chat_template_options": {
          "enable_thinking": false
        },
        "prompt": "Transcribe the text in this image. Return only the original text in a single line, without explanation or translation.",
        "image_options": {
          "max_soft_tokens": 280
        },
        "image_processor": {
          "do_convert_rgb": true,
          "do_normalize": false,
          "do_rescale": true,
          "do_resize": true,
          "image_mean": [
            0.0,
            0.0,
            0.0
          ],
          "image_processor_type": "Gemma4ImageProcessor",
          "image_seq_length": 280,
          "image_std": [
            1.0,
            1.0,
            1.0
          ],
          "max_soft_tokens": 280,
          "patch_size": 16,
          "pooling_kernel_size": 3,
          "resample": 3,
          "rescale_factor": 0.00392156862745098
        },
        "eos_token_id": [
          1,
          106,
          50
        ],
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 14.877,
        "torch_peak_reserved_gib": 14.932
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/google--gemma-4-E4B-it/line-recognition/danish-typewritten.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "HuggingFaceTB/SmolVLM2-2.2B-Instruct",
      "sample_set_id": "line-recognition/modern-danish",
      "status": "completed",
      "completed_samples": 977,
      "successful_samples": 961,
      "failed_samples": 16,
      "selected_samples": 977,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.8266161998485996,
        "wer": 1.2826704545454546
      },
      "batch_size": 1,
      "model_revision": "482adb537c021c86670beed01cd58990d01e72e4",
      "started_at": "2026-09-21T00:47:50.259352+00:00",
      "finished_at": "2026-09-21T00:59:20.910051+00:00",
      "warnings": [
        "line-crop"
      ],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "482adb537c021c86670beed01cd58990d01e72e4",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 1024,
        "do_sample": false,
        "chat_template_options": {},
        "prompt": "Transcribe the text in this image. Return only the original text in a single line, without explanation or translation.",
        "image_options": {},
        "image_processor": {
          "do_convert_rgb": true,
          "do_image_splitting": true,
          "do_normalize": true,
          "do_pad": true,
          "do_rescale": true,
          "do_resize": true,
          "image_mean": [
            0.5,
            0.5,
            0.5
          ],
          "image_processor_type": "SmolVLMImageProcessor",
          "image_std": [
            0.5,
            0.5,
            0.5
          ],
          "max_image_size": {
            "longest_edge": 384
          },
          "resample": 1,
          "rescale_factor": 0.00392156862745098,
          "size": {
            "longest_edge": 1536
          },
          "video_sampling": {
            "fps": 1,
            "max_frames": 64,
            "video_size": {
              "longest_edge": 384
            }
          }
        },
        "eos_token_id": 49279,
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 4.486,
        "torch_peak_reserved_gib": 4.676
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/HuggingFaceTB--SmolVLM2-2.2B-Instruct/line-recognition/modern-danish.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "google/gemma-4-E2B-it",
      "sample_set_id": "line-recognition/modern-danish",
      "status": "completed",
      "completed_samples": 977,
      "successful_samples": 977,
      "failed_samples": 0,
      "selected_samples": 977,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.22561695685087055,
        "wer": 0.45561079545454547
      },
      "batch_size": 1,
      "model_revision": "3e22461f65e89153144f8adb70e3b8c2cc9845a7",
      "started_at": "2026-09-21T00:59:29.348350+00:00",
      "finished_at": "2026-09-21T01:11:05.353831+00:00",
      "warnings": [
        "line-crop"
      ],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "3e22461f65e89153144f8adb70e3b8c2cc9845a7",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 1024,
        "do_sample": false,
        "chat_template_options": {
          "enable_thinking": false
        },
        "prompt": "Transcribe the text in this image. Return only the original text in a single line, without explanation or translation.",
        "image_options": {
          "max_soft_tokens": 280
        },
        "image_processor": {
          "do_convert_rgb": true,
          "do_normalize": false,
          "do_rescale": true,
          "do_resize": true,
          "image_mean": [
            0.0,
            0.0,
            0.0
          ],
          "image_processor_type": "Gemma4ImageProcessor",
          "image_seq_length": 280,
          "image_std": [
            1.0,
            1.0,
            1.0
          ],
          "max_soft_tokens": 280,
          "patch_size": 16,
          "pooling_kernel_size": 3,
          "resample": 3,
          "rescale_factor": 0.00392156862745098
        },
        "eos_token_id": [
          1,
          106,
          50
        ],
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 9.591,
        "torch_peak_reserved_gib": 9.641
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/google--gemma-4-E2B-it/line-recognition/modern-danish.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "google/gemma-3-4b-it",
      "sample_set_id": "line-recognition/modern-danish",
      "status": "completed",
      "completed_samples": 977,
      "successful_samples": 973,
      "failed_samples": 4,
      "selected_samples": 977,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.3693565480696442,
        "wer": 0.6875
      },
      "batch_size": 1,
      "model_revision": "093f9f388b31de276ce2de164bdc2081324b9767",
      "started_at": "2026-09-21T01:11:13.749793+00:00",
      "finished_at": "2026-09-21T01:28:25.666961+00:00",
      "warnings": [
        "line-crop"
      ],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "093f9f388b31de276ce2de164bdc2081324b9767",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 1024,
        "do_sample": false,
        "chat_template_options": {},
        "prompt": "Transcribe the text in this image. Return only the original text in a single line, without explanation or translation.",
        "image_options": {},
        "image_processor": {
          "do_convert_rgb": null,
          "do_normalize": true,
          "do_rescale": true,
          "do_resize": true,
          "image_mean": [
            0.5,
            0.5,
            0.5
          ],
          "image_processor_type": "Gemma3ImageProcessor",
          "image_seq_length": 256,
          "image_std": [
            0.5,
            0.5,
            0.5
          ],
          "resample": 2,
          "rescale_factor": 0.00392156862745098,
          "size": {
            "height": 896,
            "width": 896
          }
        },
        "eos_token_id": [
          1,
          106
        ],
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 8.216,
        "torch_peak_reserved_gib": 8.318
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/google--gemma-3-4b-it/line-recognition/modern-danish.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "Qwen/Qwen3.5-2B",
      "sample_set_id": "line-recognition/modern-danish",
      "status": "completed",
      "completed_samples": 977,
      "successful_samples": 976,
      "failed_samples": 1,
      "selected_samples": 977,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.1852535957607873,
        "wer": 0.3858309659090909
      },
      "batch_size": 1,
      "model_revision": "15852e8c16360a2fea060d615a32b45270f8a8fc",
      "started_at": "2026-09-21T01:28:33.392806+00:00",
      "finished_at": "2026-09-21T01:38:25.807476+00:00",
      "warnings": [
        "line-crop"
      ],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "15852e8c16360a2fea060d615a32b45270f8a8fc",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 1024,
        "do_sample": false,
        "chat_template_options": {
          "enable_thinking": false
        },
        "prompt": "Transcribe the text in this image. Return only the original text in a single line, without explanation or translation.",
        "image_options": {
          "size": {
            "longest_edge": 2097152,
            "shortest_edge": 65536
          }
        },
        "image_processor": {
          "size": {
            "longest_edge": 16777216,
            "shortest_edge": 65536
          },
          "patch_size": 16,
          "temporal_patch_size": 2,
          "merge_size": 2,
          "image_mean": [
            0.5,
            0.5,
            0.5
          ],
          "image_std": [
            0.5,
            0.5,
            0.5
          ],
          "image_processor_type": "Qwen2VLImageProcessor",
          "do_convert_rgb": true,
          "do_resize": true,
          "resample": 3,
          "do_rescale": true,
          "rescale_factor": 0.00392156862745098,
          "do_normalize": true
        },
        "eos_token_id": [
          248044,
          248046
        ],
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 4.221,
        "torch_peak_reserved_gib": 4.33
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen3.5-2B/line-recognition/modern-danish.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "datalab-to/chandra-ocr-2",
      "sample_set_id": "line-recognition/modern-danish",
      "status": "completed",
      "completed_samples": 977,
      "successful_samples": 942,
      "failed_samples": 35,
      "selected_samples": 977,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.33571536714610145,
        "wer": 0.5154474431818182
      },
      "batch_size": 1,
      "model_revision": "af93b47dba1b47b6640c86ccf487ed2260ab9a09",
      "started_at": "2026-09-21T01:38:33.773258+00:00",
      "finished_at": "2026-09-21T03:00:06.229288+00:00",
      "warnings": [
        "line-crop"
      ],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "af93b47dba1b47b6640c86ccf487ed2260ab9a09",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 1536,
        "do_sample": false,
        "chat_template_options": {},
        "prompt": "OCR this image to HTML, arranged as layout blocks.  Each layout block should be a div with the data-bbox attribute representing the bounding box of the block in x0 y0 x1 y1 format.  Bboxes are normalized 0-1000. The data-label attribute is the label for the block.\n\nUse the following labels:\n- Caption\n- Footnote\n- Equation-Block\n- List-Group\n- Page-Header\n- Page-Footer\n- Image\n- Section-Header\n- Table\n- Text\n- Complex-Block\n- Code-Block\n- Form\n- Table-Of-Contents\n- Figure\n- Chemical-Block\n- Diagram\n- Bibliography\n- Blank-Page\n\nOnly use these tags ['math', 'br', 'i', 'b', 'u', 'del', 'sup', 'sub', 'table', 'tr', 'td', 'p', 'th', 'div', 'pre', 'h1', 'h2', 'h3', 'h4', 'h5', 'ul', 'ol', 'li', 'input', 'a', 'span', 'img', 'hr', 'tbody', 'small', 'caption', 'strong', 'thead', 'big', 'code', 'chem'], and these attributes ['class', 'colspan', 'rowspan', 'display', 'checked', 'type', 'border', 'value', 'style', 'href', 'alt', 'align', 'data-bbox', 'data-label'].\n\nGuidelines:\n* Inline math: Surround math with <math>...</math> tags. Math expressions should be rendered in KaTeX-compatible LaTeX. Use display for block math.\n* Tables: Use colspan and rowspan attributes to match table structure.\n* Formatting: Maintain consistent formatting with the image, including spacing, indentation, subscripts/superscripts, and special characters.\n* Images: Include a description of any images in the alt attribute of an <img> tag. Do not fill out the src property. Describe in detail inside the div tag. Also convert charts to high fidelity data, and convert diagrams to mermaid.\n* Forms: Mark checkboxes and radio buttons properly.\n* Text: join lines together properly into paragraphs using <p>...</p> tags.  Use <br> tags for line breaks within paragraphs, but only when absolutely necessary to maintain meaning.\n* Chemistry: Use <chem>...</chem> tags for chemical formulas with reactive SMILES.\n* Lists: Preserve indents and proper list markers.\n* Use the simplest possible HTML structure that accurately represents the content of the block.\n* Make sure the text is accurate and easy for a human to read and interpret.  Reading order should be correct and natural.",
        "image_options": {
          "size": {
            "longest_edge": 2097152,
            "shortest_edge": 65536
          }
        },
        "image_processor": {
          "size": {
            "longest_edge": 16777216,
            "shortest_edge": 65536
          },
          "data_format": "channels_first",
          "do_convert_rgb": true,
          "do_normalize": true,
          "do_rescale": true,
          "do_resize": true,
          "image_mean": [
            0.5,
            0.5,
            0.5
          ],
          "image_processor_type": "Qwen2VLImageProcessor",
          "image_std": [
            0.5,
            0.5,
            0.5
          ],
          "merge_size": 2,
          "patch_size": 16,
          "resample": 3,
          "rescale_factor": 0.00392156862745098,
          "temporal_patch_size": 2
        },
        "eos_token_id": [
          248044,
          248046
        ],
        "postprocessing": "chandra_html_text_v1_exclude_image_descriptions"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 10.243,
        "torch_peak_reserved_gib": 10.287
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/datalab-to--chandra-ocr-2/line-recognition/modern-danish.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "Qwen/Qwen3.5-4B",
      "sample_set_id": "line-recognition/modern-danish",
      "status": "completed",
      "completed_samples": 977,
      "successful_samples": 977,
      "failed_samples": 0,
      "selected_samples": 977,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.17471612414837245,
        "wer": 0.3528053977272727
      },
      "batch_size": 1,
      "model_revision": "851bf6e806efd8d0a36b00ddf55e13ccb7b8cd0a",
      "started_at": "2026-09-21T03:00:14.934988+00:00",
      "finished_at": "2026-09-21T03:12:29.940967+00:00",
      "warnings": [
        "line-crop"
      ],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "851bf6e806efd8d0a36b00ddf55e13ccb7b8cd0a",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 1024,
        "do_sample": false,
        "chat_template_options": {
          "enable_thinking": false
        },
        "prompt": "Transcribe the text in this image. Return only the original text in a single line, without explanation or translation.",
        "image_options": {
          "size": {
            "longest_edge": 2097152,
            "shortest_edge": 65536
          }
        },
        "image_processor": {
          "size": {
            "longest_edge": 16777216,
            "shortest_edge": 65536
          },
          "patch_size": 16,
          "temporal_patch_size": 2,
          "merge_size": 2,
          "image_mean": [
            0.5,
            0.5,
            0.5
          ],
          "image_std": [
            0.5,
            0.5,
            0.5
          ],
          "image_processor_type": "Qwen2VLImageProcessor",
          "do_convert_rgb": true,
          "do_resize": true,
          "resample": 3,
          "do_rescale": true,
          "rescale_factor": 0.00392156862745098,
          "do_normalize": true
        },
        "eos_token_id": [
          248044,
          248046
        ],
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 8.649,
        "torch_peak_reserved_gib": 8.699
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen3.5-4B/line-recognition/modern-danish.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "google/gemma-4-E4B-it",
      "sample_set_id": "line-recognition/modern-danish",
      "status": "completed",
      "completed_samples": 977,
      "successful_samples": 972,
      "failed_samples": 5,
      "selected_samples": 977,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.2295230885692657,
        "wer": 0.431640625
      },
      "batch_size": 1,
      "model_revision": "ee0ef6023621cff504d758262d4e04895a5af4a2",
      "started_at": "2026-09-21T03:12:38.319542+00:00",
      "finished_at": "2026-09-21T03:32:48.299378+00:00",
      "warnings": [
        "line-crop"
      ],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "ee0ef6023621cff504d758262d4e04895a5af4a2",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 1024,
        "do_sample": false,
        "chat_template_options": {
          "enable_thinking": false
        },
        "prompt": "Transcribe the text in this image. Return only the original text in a single line, without explanation or translation.",
        "image_options": {
          "max_soft_tokens": 280
        },
        "image_processor": {
          "do_convert_rgb": true,
          "do_normalize": false,
          "do_rescale": true,
          "do_resize": true,
          "image_mean": [
            0.0,
            0.0,
            0.0
          ],
          "image_processor_type": "Gemma4ImageProcessor",
          "image_seq_length": 280,
          "image_std": [
            1.0,
            1.0,
            1.0
          ],
          "max_soft_tokens": 280,
          "patch_size": 16,
          "pooling_kernel_size": 3,
          "resample": 3,
          "rescale_factor": 0.00392156862745098
        },
        "eos_token_id": [
          1,
          106,
          50
        ],
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 14.878,
        "torch_peak_reserved_gib": 14.943
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/google--gemma-4-E4B-it/line-recognition/modern-danish.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "HuggingFaceTB/SmolVLM2-2.2B-Instruct",
      "sample_set_id": "line-recognition/riksarkivet-ood",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 950,
      "failed_samples": 50,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 1.0813782808807066,
        "wer": 1.5504800247754722
      },
      "batch_size": 1,
      "model_revision": "482adb537c021c86670beed01cd58990d01e72e4",
      "started_at": "2026-09-21T03:32:56.096451+00:00",
      "finished_at": "2026-09-21T03:54:10.780507+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "482adb537c021c86670beed01cd58990d01e72e4",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 1024,
        "do_sample": false,
        "chat_template_options": {},
        "prompt": "Transcribe the text in this image. Return only the original text in a single line, without explanation or translation.",
        "image_options": {},
        "image_processor": {
          "do_convert_rgb": true,
          "do_image_splitting": true,
          "do_normalize": true,
          "do_pad": true,
          "do_rescale": true,
          "do_resize": true,
          "image_mean": [
            0.5,
            0.5,
            0.5
          ],
          "image_processor_type": "SmolVLMImageProcessor",
          "image_std": [
            0.5,
            0.5,
            0.5
          ],
          "max_image_size": {
            "longest_edge": 384
          },
          "resample": 1,
          "rescale_factor": 0.00392156862745098,
          "size": {
            "longest_edge": 1536
          },
          "video_sampling": {
            "fps": 1,
            "max_frames": 64,
            "video_size": {
              "longest_edge": 384
            }
          }
        },
        "eos_token_id": 49279,
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 4.607,
        "torch_peak_reserved_gib": 4.875
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/HuggingFaceTB--SmolVLM2-2.2B-Instruct/line-recognition/riksarkivet-ood.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "google/gemma-4-E2B-it",
      "sample_set_id": "line-recognition/riksarkivet-ood",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.509292200522453,
        "wer": 0.9111179931867451
      },
      "batch_size": 1,
      "model_revision": "3e22461f65e89153144f8adb70e3b8c2cc9845a7",
      "started_at": "2026-09-21T03:54:18.777697+00:00",
      "finished_at": "2026-09-21T04:08:18.795487+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "3e22461f65e89153144f8adb70e3b8c2cc9845a7",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 1024,
        "do_sample": false,
        "chat_template_options": {
          "enable_thinking": false
        },
        "prompt": "Transcribe the text in this image. Return only the original text in a single line, without explanation or translation.",
        "image_options": {
          "max_soft_tokens": 280
        },
        "image_processor": {
          "do_convert_rgb": true,
          "do_normalize": false,
          "do_rescale": true,
          "do_resize": true,
          "image_mean": [
            0.0,
            0.0,
            0.0
          ],
          "image_processor_type": "Gemma4ImageProcessor",
          "image_seq_length": 280,
          "image_std": [
            1.0,
            1.0,
            1.0
          ],
          "max_soft_tokens": 280,
          "patch_size": 16,
          "pooling_kernel_size": 3,
          "resample": 3,
          "rescale_factor": 0.00392156862745098
        },
        "eos_token_id": [
          1,
          106,
          50
        ],
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 9.591,
        "torch_peak_reserved_gib": 9.641
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/google--gemma-4-E2B-it/line-recognition/riksarkivet-ood.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "google/gemma-3-4b-it",
      "sample_set_id": "line-recognition/riksarkivet-ood",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 908,
      "failed_samples": 92,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.9071028734917278,
        "wer": 1.328894394549396
      },
      "batch_size": 1,
      "model_revision": "093f9f388b31de276ce2de164bdc2081324b9767",
      "started_at": "2026-09-21T04:08:27.273552+00:00",
      "finished_at": "2026-09-21T05:39:56.777850+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "093f9f388b31de276ce2de164bdc2081324b9767",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 1024,
        "do_sample": false,
        "chat_template_options": {},
        "prompt": "Transcribe the text in this image. Return only the original text in a single line, without explanation or translation.",
        "image_options": {},
        "image_processor": {
          "do_convert_rgb": null,
          "do_normalize": true,
          "do_rescale": true,
          "do_resize": true,
          "image_mean": [
            0.5,
            0.5,
            0.5
          ],
          "image_processor_type": "Gemma3ImageProcessor",
          "image_seq_length": 256,
          "image_std": [
            0.5,
            0.5,
            0.5
          ],
          "resample": 2,
          "rescale_factor": 0.00392156862745098,
          "size": {
            "height": 896,
            "width": 896
          }
        },
        "eos_token_id": [
          1,
          106
        ],
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 8.216,
        "torch_peak_reserved_gib": 8.318
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/google--gemma-3-4b-it/line-recognition/riksarkivet-ood.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "Qwen/Qwen3.5-2B",
      "sample_set_id": "line-recognition/riksarkivet-ood",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 923,
      "failed_samples": 77,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.6268192561263839,
        "wer": 0.9598947042427997
      },
      "batch_size": 1,
      "model_revision": "15852e8c16360a2fea060d615a32b45270f8a8fc",
      "started_at": "2026-09-21T05:40:05.222240+00:00",
      "finished_at": "2026-09-21T06:36:27.978052+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "15852e8c16360a2fea060d615a32b45270f8a8fc",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 1024,
        "do_sample": false,
        "chat_template_options": {
          "enable_thinking": false
        },
        "prompt": "Transcribe the text in this image. Return only the original text in a single line, without explanation or translation.",
        "image_options": {
          "size": {
            "longest_edge": 2097152,
            "shortest_edge": 65536
          }
        },
        "image_processor": {
          "size": {
            "longest_edge": 16777216,
            "shortest_edge": 65536
          },
          "patch_size": 16,
          "temporal_patch_size": 2,
          "merge_size": 2,
          "image_mean": [
            0.5,
            0.5,
            0.5
          ],
          "image_std": [
            0.5,
            0.5,
            0.5
          ],
          "image_processor_type": "Qwen2VLImageProcessor",
          "do_convert_rgb": true,
          "do_resize": true,
          "resample": 3,
          "do_rescale": true,
          "rescale_factor": 0.00392156862745098,
          "do_normalize": true
        },
        "eos_token_id": [
          248044,
          248046
        ],
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 4.321,
        "torch_peak_reserved_gib": 4.445
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen3.5-2B/line-recognition/riksarkivet-ood.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "datalab-to/chandra-ocr-2",
      "sample_set_id": "line-recognition/riksarkivet-ood",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 974,
      "failed_samples": 26,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.5317576813036448,
        "wer": 0.9619077113657479
      },
      "batch_size": 1,
      "model_revision": "af93b47dba1b47b6640c86ccf487ed2260ab9a09",
      "started_at": "2026-09-21T06:36:35.893652+00:00",
      "finished_at": "2026-09-21T07:52:35.070034+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "af93b47dba1b47b6640c86ccf487ed2260ab9a09",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 1536,
        "do_sample": false,
        "chat_template_options": {},
        "prompt": "OCR this image to HTML, arranged as layout blocks.  Each layout block should be a div with the data-bbox attribute representing the bounding box of the block in x0 y0 x1 y1 format.  Bboxes are normalized 0-1000. The data-label attribute is the label for the block.\n\nUse the following labels:\n- Caption\n- Footnote\n- Equation-Block\n- List-Group\n- Page-Header\n- Page-Footer\n- Image\n- Section-Header\n- Table\n- Text\n- Complex-Block\n- Code-Block\n- Form\n- Table-Of-Contents\n- Figure\n- Chemical-Block\n- Diagram\n- Bibliography\n- Blank-Page\n\nOnly use these tags ['math', 'br', 'i', 'b', 'u', 'del', 'sup', 'sub', 'table', 'tr', 'td', 'p', 'th', 'div', 'pre', 'h1', 'h2', 'h3', 'h4', 'h5', 'ul', 'ol', 'li', 'input', 'a', 'span', 'img', 'hr', 'tbody', 'small', 'caption', 'strong', 'thead', 'big', 'code', 'chem'], and these attributes ['class', 'colspan', 'rowspan', 'display', 'checked', 'type', 'border', 'value', 'style', 'href', 'alt', 'align', 'data-bbox', 'data-label'].\n\nGuidelines:\n* Inline math: Surround math with <math>...</math> tags. Math expressions should be rendered in KaTeX-compatible LaTeX. Use display for block math.\n* Tables: Use colspan and rowspan attributes to match table structure.\n* Formatting: Maintain consistent formatting with the image, including spacing, indentation, subscripts/superscripts, and special characters.\n* Images: Include a description of any images in the alt attribute of an <img> tag. Do not fill out the src property. Describe in detail inside the div tag. Also convert charts to high fidelity data, and convert diagrams to mermaid.\n* Forms: Mark checkboxes and radio buttons properly.\n* Text: join lines together properly into paragraphs using <p>...</p> tags.  Use <br> tags for line breaks within paragraphs, but only when absolutely necessary to maintain meaning.\n* Chemistry: Use <chem>...</chem> tags for chemical formulas with reactive SMILES.\n* Lists: Preserve indents and proper list markers.\n* Use the simplest possible HTML structure that accurately represents the content of the block.\n* Make sure the text is accurate and easy for a human to read and interpret.  Reading order should be correct and natural.",
        "image_options": {
          "size": {
            "longest_edge": 2097152,
            "shortest_edge": 65536
          }
        },
        "image_processor": {
          "size": {
            "longest_edge": 16777216,
            "shortest_edge": 65536
          },
          "data_format": "channels_first",
          "do_convert_rgb": true,
          "do_normalize": true,
          "do_rescale": true,
          "do_resize": true,
          "image_mean": [
            0.5,
            0.5,
            0.5
          ],
          "image_processor_type": "Qwen2VLImageProcessor",
          "image_std": [
            0.5,
            0.5,
            0.5
          ],
          "merge_size": 2,
          "patch_size": 16,
          "resample": 3,
          "rescale_factor": 0.00392156862745098,
          "temporal_patch_size": 2
        },
        "eos_token_id": [
          248044,
          248046
        ],
        "postprocessing": "chandra_html_text_v1_exclude_image_descriptions"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 10.243,
        "torch_peak_reserved_gib": 10.287
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/datalab-to--chandra-ocr-2/line-recognition/riksarkivet-ood.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "Qwen/Qwen3.5-4B",
      "sample_set_id": "line-recognition/riksarkivet-ood",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 974,
      "failed_samples": 26,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.5846000746361488,
        "wer": 0.9499845153298234
      },
      "batch_size": 1,
      "model_revision": "851bf6e806efd8d0a36b00ddf55e13ccb7b8cd0a",
      "started_at": "2026-09-21T07:52:43.550093+00:00",
      "finished_at": "2026-09-21T08:29:29.087538+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "851bf6e806efd8d0a36b00ddf55e13ccb7b8cd0a",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 1024,
        "do_sample": false,
        "chat_template_options": {
          "enable_thinking": false
        },
        "prompt": "Transcribe the text in this image. Return only the original text in a single line, without explanation or translation.",
        "image_options": {
          "size": {
            "longest_edge": 2097152,
            "shortest_edge": 65536
          }
        },
        "image_processor": {
          "size": {
            "longest_edge": 16777216,
            "shortest_edge": 65536
          },
          "patch_size": 16,
          "temporal_patch_size": 2,
          "merge_size": 2,
          "image_mean": [
            0.5,
            0.5,
            0.5
          ],
          "image_std": [
            0.5,
            0.5,
            0.5
          ],
          "image_processor_type": "Qwen2VLImageProcessor",
          "do_convert_rgb": true,
          "do_resize": true,
          "resample": 3,
          "do_rescale": true,
          "rescale_factor": 0.00392156862745098,
          "do_normalize": true
        },
        "eos_token_id": [
          248044,
          248046
        ],
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 8.822,
        "torch_peak_reserved_gib": 9.057
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen3.5-4B/line-recognition/riksarkivet-ood.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "google/gemma-4-E4B-it",
      "sample_set_id": "line-recognition/riksarkivet-ood",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 994,
      "failed_samples": 6,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.5049135464610026,
        "wer": 0.9032208113967173
      },
      "batch_size": 1,
      "model_revision": "ee0ef6023621cff504d758262d4e04895a5af4a2",
      "started_at": "2026-09-21T08:29:56.395000+00:00",
      "finished_at": "2026-09-21T08:54:52.688296+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "ee0ef6023621cff504d758262d4e04895a5af4a2",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 1024,
        "do_sample": false,
        "chat_template_options": {
          "enable_thinking": false
        },
        "prompt": "Transcribe the text in this image. Return only the original text in a single line, without explanation or translation.",
        "image_options": {
          "max_soft_tokens": 280
        },
        "image_processor": {
          "do_convert_rgb": true,
          "do_normalize": false,
          "do_rescale": true,
          "do_resize": true,
          "image_mean": [
            0.0,
            0.0,
            0.0
          ],
          "image_processor_type": "Gemma4ImageProcessor",
          "image_seq_length": 280,
          "image_std": [
            1.0,
            1.0,
            1.0
          ],
          "max_soft_tokens": 280,
          "patch_size": 16,
          "pooling_kernel_size": 3,
          "resample": 3,
          "rescale_factor": 0.00392156862745098
        },
        "eos_token_id": [
          1,
          106,
          50
        ],
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 14.878,
        "torch_peak_reserved_gib": 14.945
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/google--gemma-4-E4B-it/line-recognition/riksarkivet-ood.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "HuggingFaceTB/SmolVLM2-2.2B-Instruct",
      "sample_set_id": "line-recognition/swedish-fraktur",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 947,
      "failed_samples": 53,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.5021269783185436,
        "wer": 0.813778409090909
      },
      "batch_size": 1,
      "model_revision": "482adb537c021c86670beed01cd58990d01e72e4",
      "started_at": "2026-09-21T08:55:00.803845+00:00",
      "finished_at": "2026-09-21T09:18:19.091105+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "482adb537c021c86670beed01cd58990d01e72e4",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 1024,
        "do_sample": false,
        "chat_template_options": {},
        "prompt": "Transcribe the text in this image. Return only the original text in a single line, without explanation or translation.",
        "image_options": {},
        "image_processor": {
          "do_convert_rgb": true,
          "do_image_splitting": true,
          "do_normalize": true,
          "do_pad": true,
          "do_rescale": true,
          "do_resize": true,
          "image_mean": [
            0.5,
            0.5,
            0.5
          ],
          "image_processor_type": "SmolVLMImageProcessor",
          "image_std": [
            0.5,
            0.5,
            0.5
          ],
          "max_image_size": {
            "longest_edge": 384
          },
          "resample": 1,
          "rescale_factor": 0.00392156862745098,
          "size": {
            "longest_edge": 1536
          },
          "video_sampling": {
            "fps": 1,
            "max_frames": 64,
            "video_size": {
              "longest_edge": 384
            }
          }
        },
        "eos_token_id": 49279,
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 4.485,
        "torch_peak_reserved_gib": 4.852
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/HuggingFaceTB--SmolVLM2-2.2B-Instruct/line-recognition/swedish-fraktur.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "google/gemma-4-E2B-it",
      "sample_set_id": "line-recognition/swedish-fraktur",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.08267770560790412,
        "wer": 0.30170454545454545
      },
      "batch_size": 1,
      "model_revision": "3e22461f65e89153144f8adb70e3b8c2cc9845a7",
      "started_at": "2026-09-21T09:18:26.895221+00:00",
      "finished_at": "2026-09-21T09:33:31.619214+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "3e22461f65e89153144f8adb70e3b8c2cc9845a7",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 1024,
        "do_sample": false,
        "chat_template_options": {
          "enable_thinking": false
        },
        "prompt": "Transcribe the text in this image. Return only the original text in a single line, without explanation or translation.",
        "image_options": {
          "max_soft_tokens": 280
        },
        "image_processor": {
          "do_convert_rgb": true,
          "do_normalize": false,
          "do_rescale": true,
          "do_resize": true,
          "image_mean": [
            0.0,
            0.0,
            0.0
          ],
          "image_processor_type": "Gemma4ImageProcessor",
          "image_seq_length": 280,
          "image_std": [
            1.0,
            1.0,
            1.0
          ],
          "max_soft_tokens": 280,
          "patch_size": 16,
          "pooling_kernel_size": 3,
          "resample": 3,
          "rescale_factor": 0.00392156862745098
        },
        "eos_token_id": [
          1,
          106,
          50
        ],
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 9.591,
        "torch_peak_reserved_gib": 9.641
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/google--gemma-4-E2B-it/line-recognition/swedish-fraktur.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "google/gemma-3-4b-it",
      "sample_set_id": "line-recognition/swedish-fraktur",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 956,
      "failed_samples": 44,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.7296679169334919,
        "wer": 1.0482954545454546
      },
      "batch_size": 1,
      "model_revision": "093f9f388b31de276ce2de164bdc2081324b9767",
      "started_at": "2026-09-21T09:33:39.300964+00:00",
      "finished_at": "2026-09-21T10:31:11.251729+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "093f9f388b31de276ce2de164bdc2081324b9767",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 1024,
        "do_sample": false,
        "chat_template_options": {},
        "prompt": "Transcribe the text in this image. Return only the original text in a single line, without explanation or translation.",
        "image_options": {},
        "image_processor": {
          "do_convert_rgb": null,
          "do_normalize": true,
          "do_rescale": true,
          "do_resize": true,
          "image_mean": [
            0.5,
            0.5,
            0.5
          ],
          "image_processor_type": "Gemma3ImageProcessor",
          "image_seq_length": 256,
          "image_std": [
            0.5,
            0.5,
            0.5
          ],
          "resample": 2,
          "rescale_factor": 0.00392156862745098,
          "size": {
            "height": 896,
            "width": 896
          }
        },
        "eos_token_id": [
          1,
          106
        ],
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 8.216,
        "torch_peak_reserved_gib": 8.318
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/google--gemma-3-4b-it/line-recognition/swedish-fraktur.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "Qwen/Qwen3.5-2B",
      "sample_set_id": "line-recognition/swedish-fraktur",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.06595919860945934,
        "wer": 0.2703125
      },
      "batch_size": 1,
      "model_revision": "15852e8c16360a2fea060d615a32b45270f8a8fc",
      "started_at": "2026-09-21T10:31:19.519116+00:00",
      "finished_at": "2026-09-21T10:42:47.878823+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "15852e8c16360a2fea060d615a32b45270f8a8fc",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 1024,
        "do_sample": false,
        "chat_template_options": {
          "enable_thinking": false
        },
        "prompt": "Transcribe the text in this image. Return only the original text in a single line, without explanation or translation.",
        "image_options": {
          "size": {
            "longest_edge": 2097152,
            "shortest_edge": 65536
          }
        },
        "image_processor": {
          "size": {
            "longest_edge": 16777216,
            "shortest_edge": 65536
          },
          "patch_size": 16,
          "temporal_patch_size": 2,
          "merge_size": 2,
          "image_mean": [
            0.5,
            0.5,
            0.5
          ],
          "image_std": [
            0.5,
            0.5,
            0.5
          ],
          "image_processor_type": "Qwen2VLImageProcessor",
          "do_convert_rgb": true,
          "do_resize": true,
          "resample": 3,
          "do_rescale": true,
          "rescale_factor": 0.00392156862745098,
          "do_normalize": true
        },
        "eos_token_id": [
          248044,
          248046
        ],
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 4.186,
        "torch_peak_reserved_gib": 4.217
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen3.5-2B/line-recognition/swedish-fraktur.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "datalab-to/chandra-ocr-2",
      "sample_set_id": "line-recognition/swedish-fraktur",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 996,
      "failed_samples": 4,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.1010429054981246,
        "wer": 0.29261363636363635
      },
      "batch_size": 1,
      "model_revision": "af93b47dba1b47b6640c86ccf487ed2260ab9a09",
      "started_at": "2026-09-21T10:42:55.901142+00:00",
      "finished_at": "2026-09-21T11:31:39.717557+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "af93b47dba1b47b6640c86ccf487ed2260ab9a09",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 1536,
        "do_sample": false,
        "chat_template_options": {},
        "prompt": "OCR this image to HTML, arranged as layout blocks.  Each layout block should be a div with the data-bbox attribute representing the bounding box of the block in x0 y0 x1 y1 format.  Bboxes are normalized 0-1000. The data-label attribute is the label for the block.\n\nUse the following labels:\n- Caption\n- Footnote\n- Equation-Block\n- List-Group\n- Page-Header\n- Page-Footer\n- Image\n- Section-Header\n- Table\n- Text\n- Complex-Block\n- Code-Block\n- Form\n- Table-Of-Contents\n- Figure\n- Chemical-Block\n- Diagram\n- Bibliography\n- Blank-Page\n\nOnly use these tags ['math', 'br', 'i', 'b', 'u', 'del', 'sup', 'sub', 'table', 'tr', 'td', 'p', 'th', 'div', 'pre', 'h1', 'h2', 'h3', 'h4', 'h5', 'ul', 'ol', 'li', 'input', 'a', 'span', 'img', 'hr', 'tbody', 'small', 'caption', 'strong', 'thead', 'big', 'code', 'chem'], and these attributes ['class', 'colspan', 'rowspan', 'display', 'checked', 'type', 'border', 'value', 'style', 'href', 'alt', 'align', 'data-bbox', 'data-label'].\n\nGuidelines:\n* Inline math: Surround math with <math>...</math> tags. Math expressions should be rendered in KaTeX-compatible LaTeX. Use display for block math.\n* Tables: Use colspan and rowspan attributes to match table structure.\n* Formatting: Maintain consistent formatting with the image, including spacing, indentation, subscripts/superscripts, and special characters.\n* Images: Include a description of any images in the alt attribute of an <img> tag. Do not fill out the src property. Describe in detail inside the div tag. Also convert charts to high fidelity data, and convert diagrams to mermaid.\n* Forms: Mark checkboxes and radio buttons properly.\n* Text: join lines together properly into paragraphs using <p>...</p> tags.  Use <br> tags for line breaks within paragraphs, but only when absolutely necessary to maintain meaning.\n* Chemistry: Use <chem>...</chem> tags for chemical formulas with reactive SMILES.\n* Lists: Preserve indents and proper list markers.\n* Use the simplest possible HTML structure that accurately represents the content of the block.\n* Make sure the text is accurate and easy for a human to read and interpret.  Reading order should be correct and natural.",
        "image_options": {
          "size": {
            "longest_edge": 2097152,
            "shortest_edge": 65536
          }
        },
        "image_processor": {
          "size": {
            "longest_edge": 16777216,
            "shortest_edge": 65536
          },
          "data_format": "channels_first",
          "do_convert_rgb": true,
          "do_normalize": true,
          "do_rescale": true,
          "do_resize": true,
          "image_mean": [
            0.5,
            0.5,
            0.5
          ],
          "image_processor_type": "Qwen2VLImageProcessor",
          "image_std": [
            0.5,
            0.5,
            0.5
          ],
          "merge_size": 2,
          "patch_size": 16,
          "resample": 3,
          "rescale_factor": 0.00392156862745098,
          "temporal_patch_size": 2
        },
        "eos_token_id": [
          248044,
          248046
        ],
        "postprocessing": "chandra_html_text_v1_exclude_image_descriptions"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 10.243,
        "torch_peak_reserved_gib": 10.287
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/datalab-to--chandra-ocr-2/line-recognition/swedish-fraktur.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "Qwen/Qwen3.5-4B",
      "sample_set_id": "line-recognition/swedish-fraktur",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.061224956545604246,
        "wer": 0.2512784090909091
      },
      "batch_size": 1,
      "model_revision": "851bf6e806efd8d0a36b00ddf55e13ccb7b8cd0a",
      "started_at": "2026-09-21T11:31:48.011964+00:00",
      "finished_at": "2026-09-21T11:47:21.727912+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "851bf6e806efd8d0a36b00ddf55e13ccb7b8cd0a",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 1024,
        "do_sample": false,
        "chat_template_options": {
          "enable_thinking": false
        },
        "prompt": "Transcribe the text in this image. Return only the original text in a single line, without explanation or translation.",
        "image_options": {
          "size": {
            "longest_edge": 2097152,
            "shortest_edge": 65536
          }
        },
        "image_processor": {
          "size": {
            "longest_edge": 16777216,
            "shortest_edge": 65536
          },
          "patch_size": 16,
          "temporal_patch_size": 2,
          "merge_size": 2,
          "image_mean": [
            0.5,
            0.5,
            0.5
          ],
          "image_std": [
            0.5,
            0.5,
            0.5
          ],
          "image_processor_type": "Qwen2VLImageProcessor",
          "do_convert_rgb": true,
          "do_resize": true,
          "resample": 3,
          "do_rescale": true,
          "rescale_factor": 0.00392156862745098,
          "do_normalize": true
        },
        "eos_token_id": [
          248044,
          248046
        ],
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 8.582,
        "torch_peak_reserved_gib": 8.615
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen3.5-4B/line-recognition/swedish-fraktur.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "google/gemma-4-E4B-it",
      "sample_set_id": "line-recognition/swedish-fraktur",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.06721708901289909,
        "wer": 0.2636363636363636
      },
      "batch_size": 1,
      "model_revision": "ee0ef6023621cff504d758262d4e04895a5af4a2",
      "started_at": "2026-09-21T11:47:30.103775+00:00",
      "finished_at": "2026-09-21T12:06:57.550960+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "ee0ef6023621cff504d758262d4e04895a5af4a2",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 1024,
        "do_sample": false,
        "chat_template_options": {
          "enable_thinking": false
        },
        "prompt": "Transcribe the text in this image. Return only the original text in a single line, without explanation or translation.",
        "image_options": {
          "max_soft_tokens": 280
        },
        "image_processor": {
          "do_convert_rgb": true,
          "do_normalize": false,
          "do_rescale": true,
          "do_resize": true,
          "image_mean": [
            0.0,
            0.0,
            0.0
          ],
          "image_processor_type": "Gemma4ImageProcessor",
          "image_seq_length": 280,
          "image_std": [
            1.0,
            1.0,
            1.0
          ],
          "max_soft_tokens": 280,
          "patch_size": 16,
          "pooling_kernel_size": 3,
          "resample": 3,
          "rescale_factor": 0.00392156862745098
        },
        "eos_token_id": [
          1,
          106,
          50
        ],
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 14.877,
        "torch_peak_reserved_gib": 14.934
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/google--gemma-4-E4B-it/line-recognition/swedish-fraktur.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "HuggingFaceTB/SmolVLM2-2.2B-Instruct",
      "sample_set_id": "line-recognition/historical-danish",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 930,
      "failed_samples": 70,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 1.1581511230105608,
        "wer": 1.5878594249201279
      },
      "batch_size": 1,
      "model_revision": "482adb537c021c86670beed01cd58990d01e72e4",
      "started_at": "2026-09-21T12:07:22.676645+00:00",
      "finished_at": "2026-09-21T12:52:33.058119+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "482adb537c021c86670beed01cd58990d01e72e4",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 1024,
        "do_sample": false,
        "chat_template_options": {},
        "prompt": "Transcribe the text in this image. Return only the original text in a single line, without explanation or translation.",
        "image_options": {},
        "image_processor": {
          "do_convert_rgb": true,
          "do_image_splitting": true,
          "do_normalize": true,
          "do_pad": true,
          "do_rescale": true,
          "do_resize": true,
          "image_mean": [
            0.5,
            0.5,
            0.5
          ],
          "image_processor_type": "SmolVLMImageProcessor",
          "image_std": [
            0.5,
            0.5,
            0.5
          ],
          "max_image_size": {
            "longest_edge": 384
          },
          "resample": 1,
          "rescale_factor": 0.00392156862745098,
          "size": {
            "longest_edge": 1536
          },
          "video_sampling": {
            "fps": 1,
            "max_frames": 64,
            "video_size": {
              "longest_edge": 384
            }
          }
        },
        "eos_token_id": 49279,
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 4.571,
        "torch_peak_reserved_gib": 4.875
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/HuggingFaceTB--SmolVLM2-2.2B-Instruct/line-recognition/historical-danish.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "google/gemma-4-E2B-it",
      "sample_set_id": "line-recognition/historical-danish",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.46850364420645546,
        "wer": 0.8448197170241899
      },
      "batch_size": 1,
      "model_revision": "3e22461f65e89153144f8adb70e3b8c2cc9845a7",
      "started_at": "2026-09-21T12:52:42.693209+00:00",
      "finished_at": "2026-09-21T13:16:20.982349+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "3e22461f65e89153144f8adb70e3b8c2cc9845a7",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 1024,
        "do_sample": false,
        "chat_template_options": {
          "enable_thinking": false
        },
        "prompt": "Transcribe the text in this image. Return only the original text in a single line, without explanation or translation.",
        "image_options": {
          "max_soft_tokens": 280
        },
        "image_processor": {
          "do_convert_rgb": true,
          "do_normalize": false,
          "do_rescale": true,
          "do_resize": true,
          "image_mean": [
            0.0,
            0.0,
            0.0
          ],
          "image_processor_type": "Gemma4ImageProcessor",
          "image_seq_length": 280,
          "image_std": [
            1.0,
            1.0,
            1.0
          ],
          "max_soft_tokens": 280,
          "patch_size": 16,
          "pooling_kernel_size": 3,
          "resample": 3,
          "rescale_factor": 0.00392156862745098
        },
        "eos_token_id": [
          1,
          106,
          50
        ],
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 9.591,
        "torch_peak_reserved_gib": 9.641
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/google--gemma-4-E2B-it/line-recognition/historical-danish.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "google/gemma-3-4b-it",
      "sample_set_id": "line-recognition/historical-danish",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 937,
      "failed_samples": 63,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 1.1160196340919233,
        "wer": 1.4023277042446372
      },
      "batch_size": 1,
      "model_revision": "093f9f388b31de276ce2de164bdc2081324b9767",
      "started_at": "2026-09-21T13:16:30.501284+00:00",
      "finished_at": "2026-09-21T15:41:49.091246+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "093f9f388b31de276ce2de164bdc2081324b9767",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 1024,
        "do_sample": false,
        "chat_template_options": {},
        "prompt": "Transcribe the text in this image. Return only the original text in a single line, without explanation or translation.",
        "image_options": {},
        "image_processor": {
          "do_convert_rgb": null,
          "do_normalize": true,
          "do_rescale": true,
          "do_resize": true,
          "image_mean": [
            0.5,
            0.5,
            0.5
          ],
          "image_processor_type": "Gemma3ImageProcessor",
          "image_seq_length": 256,
          "image_std": [
            0.5,
            0.5,
            0.5
          ],
          "resample": 2,
          "rescale_factor": 0.00392156862745098,
          "size": {
            "height": 896,
            "width": 896
          }
        },
        "eos_token_id": [
          1,
          106
        ],
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 8.216,
        "torch_peak_reserved_gib": 8.318
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/google--gemma-3-4b-it/line-recognition/historical-danish.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "Qwen/Qwen3.5-2B",
      "sample_set_id": "line-recognition/historical-danish",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 979,
      "failed_samples": 21,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.6485200059497248,
        "wer": 0.854632587859425
      },
      "batch_size": 1,
      "model_revision": "15852e8c16360a2fea060d615a32b45270f8a8fc",
      "started_at": "2026-09-21T15:41:58.515147+00:00",
      "finished_at": "2026-09-21T16:28:41.139700+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "15852e8c16360a2fea060d615a32b45270f8a8fc",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 1024,
        "do_sample": false,
        "chat_template_options": {
          "enable_thinking": false
        },
        "prompt": "Transcribe the text in this image. Return only the original text in a single line, without explanation or translation.",
        "image_options": {
          "size": {
            "longest_edge": 2097152,
            "shortest_edge": 65536
          }
        },
        "image_processor": {
          "size": {
            "longest_edge": 16777216,
            "shortest_edge": 65536
          },
          "patch_size": 16,
          "temporal_patch_size": 2,
          "merge_size": 2,
          "image_mean": [
            0.5,
            0.5,
            0.5
          ],
          "image_std": [
            0.5,
            0.5,
            0.5
          ],
          "image_processor_type": "Qwen2VLImageProcessor",
          "do_convert_rgb": true,
          "do_resize": true,
          "resample": 3,
          "do_rescale": true,
          "rescale_factor": 0.00392156862745098,
          "do_normalize": true
        },
        "eos_token_id": [
          248044,
          248046
        ],
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 4.242,
        "torch_peak_reserved_gib": 4.361
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen3.5-2B/line-recognition/historical-danish.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "datalab-to/chandra-ocr-2",
      "sample_set_id": "line-recognition/historical-danish",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 989,
      "failed_samples": 11,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.5710248401011453,
        "wer": 0.9710178000912825
      },
      "batch_size": 1,
      "model_revision": "af93b47dba1b47b6640c86ccf487ed2260ab9a09",
      "started_at": "2026-09-21T16:28:51.318675+00:00",
      "finished_at": "2026-09-21T18:30:27.086432+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "af93b47dba1b47b6640c86ccf487ed2260ab9a09",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 1536,
        "do_sample": false,
        "chat_template_options": {},
        "prompt": "OCR this image to HTML, arranged as layout blocks.  Each layout block should be a div with the data-bbox attribute representing the bounding box of the block in x0 y0 x1 y1 format.  Bboxes are normalized 0-1000. The data-label attribute is the label for the block.\n\nUse the following labels:\n- Caption\n- Footnote\n- Equation-Block\n- List-Group\n- Page-Header\n- Page-Footer\n- Image\n- Section-Header\n- Table\n- Text\n- Complex-Block\n- Code-Block\n- Form\n- Table-Of-Contents\n- Figure\n- Chemical-Block\n- Diagram\n- Bibliography\n- Blank-Page\n\nOnly use these tags ['math', 'br', 'i', 'b', 'u', 'del', 'sup', 'sub', 'table', 'tr', 'td', 'p', 'th', 'div', 'pre', 'h1', 'h2', 'h3', 'h4', 'h5', 'ul', 'ol', 'li', 'input', 'a', 'span', 'img', 'hr', 'tbody', 'small', 'caption', 'strong', 'thead', 'big', 'code', 'chem'], and these attributes ['class', 'colspan', 'rowspan', 'display', 'checked', 'type', 'border', 'value', 'style', 'href', 'alt', 'align', 'data-bbox', 'data-label'].\n\nGuidelines:\n* Inline math: Surround math with <math>...</math> tags. Math expressions should be rendered in KaTeX-compatible LaTeX. Use display for block math.\n* Tables: Use colspan and rowspan attributes to match table structure.\n* Formatting: Maintain consistent formatting with the image, including spacing, indentation, subscripts/superscripts, and special characters.\n* Images: Include a description of any images in the alt attribute of an <img> tag. Do not fill out the src property. Describe in detail inside the div tag. Also convert charts to high fidelity data, and convert diagrams to mermaid.\n* Forms: Mark checkboxes and radio buttons properly.\n* Text: join lines together properly into paragraphs using <p>...</p> tags.  Use <br> tags for line breaks within paragraphs, but only when absolutely necessary to maintain meaning.\n* Chemistry: Use <chem>...</chem> tags for chemical formulas with reactive SMILES.\n* Lists: Preserve indents and proper list markers.\n* Use the simplest possible HTML structure that accurately represents the content of the block.\n* Make sure the text is accurate and easy for a human to read and interpret.  Reading order should be correct and natural.",
        "image_options": {
          "size": {
            "longest_edge": 2097152,
            "shortest_edge": 65536
          }
        },
        "image_processor": {
          "size": {
            "longest_edge": 16777216,
            "shortest_edge": 65536
          },
          "data_format": "channels_first",
          "do_convert_rgb": true,
          "do_normalize": true,
          "do_rescale": true,
          "do_resize": true,
          "image_mean": [
            0.5,
            0.5,
            0.5
          ],
          "image_processor_type": "Qwen2VLImageProcessor",
          "image_std": [
            0.5,
            0.5,
            0.5
          ],
          "merge_size": 2,
          "patch_size": 16,
          "resample": 3,
          "rescale_factor": 0.00392156862745098,
          "temporal_patch_size": 2
        },
        "eos_token_id": [
          248044,
          248046
        ],
        "postprocessing": "chandra_html_text_v1_exclude_image_descriptions"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 10.243,
        "torch_peak_reserved_gib": 10.287
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/datalab-to--chandra-ocr-2/line-recognition/historical-danish.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "Qwen/Qwen3.5-4B",
      "sample_set_id": "line-recognition/historical-danish",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 989,
      "failed_samples": 11,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.5738881451732858,
        "wer": 0.8425376540392515
      },
      "batch_size": 1,
      "model_revision": "851bf6e806efd8d0a36b00ddf55e13ccb7b8cd0a",
      "started_at": "2026-09-21T18:30:37.751056+00:00",
      "finished_at": "2026-09-21T18:53:48.808673+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "851bf6e806efd8d0a36b00ddf55e13ccb7b8cd0a",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 1024,
        "do_sample": false,
        "chat_template_options": {
          "enable_thinking": false
        },
        "prompt": "Transcribe the text in this image. Return only the original text in a single line, without explanation or translation.",
        "image_options": {
          "size": {
            "longest_edge": 2097152,
            "shortest_edge": 65536
          }
        },
        "image_processor": {
          "size": {
            "longest_edge": 16777216,
            "shortest_edge": 65536
          },
          "patch_size": 16,
          "temporal_patch_size": 2,
          "merge_size": 2,
          "image_mean": [
            0.5,
            0.5,
            0.5
          ],
          "image_std": [
            0.5,
            0.5,
            0.5
          ],
          "image_processor_type": "Qwen2VLImageProcessor",
          "do_convert_rgb": true,
          "do_resize": true,
          "resample": 3,
          "do_rescale": true,
          "rescale_factor": 0.00392156862745098,
          "do_normalize": true
        },
        "eos_token_id": [
          248044,
          248046
        ],
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 8.696,
        "torch_peak_reserved_gib": 8.844
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen3.5-4B/line-recognition/historical-danish.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "google/gemma-4-E4B-it",
      "sample_set_id": "line-recognition/historical-danish",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 997,
      "failed_samples": 3,
      "selected_samples": 1000,
      "target_samples": 1000,
      "corpus_metrics": {
        "cer": 0.475940800237989,
        "wer": 0.8544043815609311
      },
      "batch_size": 1,
      "model_revision": "ee0ef6023621cff504d758262d4e04895a5af4a2",
      "started_at": "2026-09-21T18:53:56.700407+00:00",
      "finished_at": "2026-09-21T19:11:53.904773+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "ee0ef6023621cff504d758262d4e04895a5af4a2",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 1024,
        "do_sample": false,
        "chat_template_options": {
          "enable_thinking": false
        },
        "prompt": "Transcribe the text in this image. Return only the original text in a single line, without explanation or translation.",
        "image_options": {
          "max_soft_tokens": 280
        },
        "image_processor": {
          "do_convert_rgb": true,
          "do_normalize": false,
          "do_rescale": true,
          "do_resize": true,
          "image_mean": [
            0.0,
            0.0,
            0.0
          ],
          "image_processor_type": "Gemma4ImageProcessor",
          "image_seq_length": 280,
          "image_std": [
            1.0,
            1.0,
            1.0
          ],
          "max_soft_tokens": 280,
          "patch_size": 16,
          "pooling_kernel_size": 3,
          "resample": 3,
          "rescale_factor": 0.00392156862745098
        },
        "eos_token_id": [
          1,
          106,
          50
        ],
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 14.878,
        "torch_peak_reserved_gib": 14.945
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/google--gemma-4-E4B-it/line-recognition/historical-danish.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "HuggingFaceTB/SmolVLM2-2.2B-Instruct",
      "sample_set_id": "page-transcription/historical-danish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 34,
      "failed_samples": 66,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.9819426423129387,
        "wer": 1.0188749270982451
      },
      "batch_size": 1,
      "model_revision": "482adb537c021c86670beed01cd58990d01e72e4",
      "started_at": "2026-09-21T19:12:03.595042+00:00",
      "finished_at": "2026-09-21T20:36:35.223062+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "482adb537c021c86670beed01cd58990d01e72e4",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 4096,
        "do_sample": false,
        "chat_template_options": {},
        "prompt": "Transcribe all text on this page in natural reading order. Preserve line breaks. Return only the original text, without explanation or translation.",
        "image_options": {},
        "image_processor": {
          "do_convert_rgb": true,
          "do_image_splitting": true,
          "do_normalize": true,
          "do_pad": true,
          "do_rescale": true,
          "do_resize": true,
          "image_mean": [
            0.5,
            0.5,
            0.5
          ],
          "image_processor_type": "SmolVLMImageProcessor",
          "image_std": [
            0.5,
            0.5,
            0.5
          ],
          "max_image_size": {
            "longest_edge": 384
          },
          "resample": 1,
          "rescale_factor": 0.00392156862745098,
          "size": {
            "longest_edge": 1536
          },
          "video_sampling": {
            "fps": 1,
            "max_frames": 64,
            "video_size": {
              "longest_edge": 384
            }
          }
        },
        "eos_token_id": 49279,
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 5.26,
        "torch_peak_reserved_gib": 7.291
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/HuggingFaceTB--SmolVLM2-2.2B-Instruct/page-transcription/historical-danish.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "google/gemma-4-E2B-it",
      "sample_set_id": "page-transcription/historical-danish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 99,
      "failed_samples": 1,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.47773397211963936,
        "wer": 0.7892476538889772
      },
      "batch_size": 1,
      "model_revision": "3e22461f65e89153144f8adb70e3b8c2cc9845a7",
      "started_at": "2026-09-21T20:36:44.746231+00:00",
      "finished_at": "2026-09-21T21:16:45.144525+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "3e22461f65e89153144f8adb70e3b8c2cc9845a7",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 4096,
        "do_sample": false,
        "chat_template_options": {
          "enable_thinking": false
        },
        "prompt": "Transcribe all text on this page in natural reading order. Preserve line breaks. Return only the original text, without explanation or translation.",
        "image_options": {
          "max_soft_tokens": 1120
        },
        "image_processor": {
          "do_convert_rgb": true,
          "do_normalize": false,
          "do_rescale": true,
          "do_resize": true,
          "image_mean": [
            0.0,
            0.0,
            0.0
          ],
          "image_processor_type": "Gemma4ImageProcessor",
          "image_seq_length": 280,
          "image_std": [
            1.0,
            1.0,
            1.0
          ],
          "max_soft_tokens": 280,
          "patch_size": 16,
          "pooling_kernel_size": 3,
          "resample": 3,
          "rescale_factor": 0.00392156862745098
        },
        "eos_token_id": [
          1,
          106,
          50
        ],
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 9.945,
        "torch_peak_reserved_gib": 10.074
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/google--gemma-4-E2B-it/page-transcription/historical-danish.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "google/gemma-3-4b-it",
      "sample_set_id": "page-transcription/historical-danish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 82,
      "failed_samples": 18,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.665119606081778,
        "wer": 0.8855309898732835
      },
      "batch_size": 1,
      "model_revision": "093f9f388b31de276ce2de164bdc2081324b9767",
      "started_at": "2026-09-21T21:16:54.015273+00:00",
      "finished_at": "2026-09-21T22:42:19.772986+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "093f9f388b31de276ce2de164bdc2081324b9767",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 4096,
        "do_sample": false,
        "chat_template_options": {},
        "prompt": "Transcribe all text on this page in natural reading order. Preserve line breaks. Return only the original text, without explanation or translation.",
        "image_options": {
          "do_pan_and_scan": true,
          "pan_and_scan_min_crop_size": 256,
          "pan_and_scan_max_num_crops": 2,
          "pan_and_scan_min_ratio_to_activate": 1.2
        },
        "image_processor": {
          "do_convert_rgb": null,
          "do_normalize": true,
          "do_rescale": true,
          "do_resize": true,
          "image_mean": [
            0.5,
            0.5,
            0.5
          ],
          "image_processor_type": "Gemma3ImageProcessor",
          "image_seq_length": 256,
          "image_std": [
            0.5,
            0.5,
            0.5
          ],
          "resample": 2,
          "rescale_factor": 0.00392156862745098,
          "size": {
            "height": 896,
            "width": 896
          }
        },
        "eos_token_id": [
          1,
          106
        ],
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 8.392,
        "torch_peak_reserved_gib": 8.602
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/google--gemma-3-4b-it/page-transcription/historical-danish.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "Qwen/Qwen3.5-2B",
      "sample_set_id": "page-transcription/historical-danish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 68,
      "failed_samples": 32,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.5814702066074459,
        "wer": 0.7889825565982715
      },
      "batch_size": 1,
      "model_revision": "15852e8c16360a2fea060d615a32b45270f8a8fc",
      "started_at": "2026-09-21T22:42:28.754332+00:00",
      "finished_at": "2026-09-22T00:11:48.359008+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "15852e8c16360a2fea060d615a32b45270f8a8fc",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 4096,
        "do_sample": false,
        "chat_template_options": {
          "enable_thinking": false
        },
        "prompt": "Transcribe all text on this page in natural reading order. Preserve line breaks. Return only the original text, without explanation or translation.",
        "image_options": {
          "size": {
            "longest_edge": 2097152,
            "shortest_edge": 65536
          }
        },
        "image_processor": {
          "size": {
            "longest_edge": 16777216,
            "shortest_edge": 65536
          },
          "patch_size": 16,
          "temporal_patch_size": 2,
          "merge_size": 2,
          "image_mean": [
            0.5,
            0.5,
            0.5
          ],
          "image_std": [
            0.5,
            0.5,
            0.5
          ],
          "image_processor_type": "Qwen2VLImageProcessor",
          "do_convert_rgb": true,
          "do_resize": true,
          "resample": 3,
          "do_rescale": true,
          "rescale_factor": 0.00392156862745098,
          "do_normalize": true
        },
        "eos_token_id": [
          248044,
          248046
        ],
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 4.646,
        "torch_peak_reserved_gib": 4.814
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen3.5-2B/page-transcription/historical-danish.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "datalab-to/chandra-ocr-2",
      "sample_set_id": "page-transcription/historical-danish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 89,
      "failed_samples": 11,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.51772465648601,
        "wer": 0.7715921743279783
      },
      "batch_size": 1,
      "model_revision": "af93b47dba1b47b6640c86ccf487ed2260ab9a09",
      "started_at": "2026-09-22T00:11:56.508363+00:00",
      "finished_at": "2026-09-22T02:09:25.589809+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "af93b47dba1b47b6640c86ccf487ed2260ab9a09",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 6144,
        "do_sample": false,
        "chat_template_options": {},
        "prompt": "OCR this image to HTML, arranged as layout blocks.  Each layout block should be a div with the data-bbox attribute representing the bounding box of the block in x0 y0 x1 y1 format.  Bboxes are normalized 0-1000. The data-label attribute is the label for the block.\n\nUse the following labels:\n- Caption\n- Footnote\n- Equation-Block\n- List-Group\n- Page-Header\n- Page-Footer\n- Image\n- Section-Header\n- Table\n- Text\n- Complex-Block\n- Code-Block\n- Form\n- Table-Of-Contents\n- Figure\n- Chemical-Block\n- Diagram\n- Bibliography\n- Blank-Page\n\nOnly use these tags ['math', 'br', 'i', 'b', 'u', 'del', 'sup', 'sub', 'table', 'tr', 'td', 'p', 'th', 'div', 'pre', 'h1', 'h2', 'h3', 'h4', 'h5', 'ul', 'ol', 'li', 'input', 'a', 'span', 'img', 'hr', 'tbody', 'small', 'caption', 'strong', 'thead', 'big', 'code', 'chem'], and these attributes ['class', 'colspan', 'rowspan', 'display', 'checked', 'type', 'border', 'value', 'style', 'href', 'alt', 'align', 'data-bbox', 'data-label'].\n\nGuidelines:\n* Inline math: Surround math with <math>...</math> tags. Math expressions should be rendered in KaTeX-compatible LaTeX. Use display for block math.\n* Tables: Use colspan and rowspan attributes to match table structure.\n* Formatting: Maintain consistent formatting with the image, including spacing, indentation, subscripts/superscripts, and special characters.\n* Images: Include a description of any images in the alt attribute of an <img> tag. Do not fill out the src property. Describe in detail inside the div tag. Also convert charts to high fidelity data, and convert diagrams to mermaid.\n* Forms: Mark checkboxes and radio buttons properly.\n* Text: join lines together properly into paragraphs using <p>...</p> tags.  Use <br> tags for line breaks within paragraphs, but only when absolutely necessary to maintain meaning.\n* Chemistry: Use <chem>...</chem> tags for chemical formulas with reactive SMILES.\n* Lists: Preserve indents and proper list markers.\n* Use the simplest possible HTML structure that accurately represents the content of the block.\n* Make sure the text is accurate and easy for a human to read and interpret.  Reading order should be correct and natural.",
        "image_options": {
          "size": {
            "longest_edge": 2097152,
            "shortest_edge": 65536
          }
        },
        "image_processor": {
          "size": {
            "longest_edge": 16777216,
            "shortest_edge": 65536
          },
          "data_format": "channels_first",
          "do_convert_rgb": true,
          "do_normalize": true,
          "do_rescale": true,
          "do_resize": true,
          "image_mean": [
            0.5,
            0.5,
            0.5
          ],
          "image_processor_type": "Qwen2VLImageProcessor",
          "image_std": [
            0.5,
            0.5,
            0.5
          ],
          "merge_size": 2,
          "patch_size": 16,
          "resample": 3,
          "rescale_factor": 0.00392156862745098,
          "temporal_patch_size": 2
        },
        "eos_token_id": [
          248044,
          248046
        ],
        "postprocessing": "chandra_html_text_v1_exclude_image_descriptions"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 10.243,
        "torch_peak_reserved_gib": 10.287
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/datalab-to--chandra-ocr-2/page-transcription/historical-danish.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "Qwen/Qwen3.5-4B",
      "sample_set_id": "page-transcription/historical-danish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 66,
      "failed_samples": 34,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.6384868749376186,
        "wer": 0.8128943322199247
      },
      "batch_size": 1,
      "model_revision": "851bf6e806efd8d0a36b00ddf55e13ccb7b8cd0a",
      "started_at": "2026-09-22T02:09:52.148120+00:00",
      "finished_at": "2026-09-22T04:18:00.454310+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "851bf6e806efd8d0a36b00ddf55e13ccb7b8cd0a",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 4096,
        "do_sample": false,
        "chat_template_options": {
          "enable_thinking": false
        },
        "prompt": "Transcribe all text on this page in natural reading order. Preserve line breaks. Return only the original text, without explanation or translation.",
        "image_options": {
          "size": {
            "longest_edge": 2097152,
            "shortest_edge": 65536
          }
        },
        "image_processor": {
          "size": {
            "longest_edge": 16777216,
            "shortest_edge": 65536
          },
          "patch_size": 16,
          "temporal_patch_size": 2,
          "merge_size": 2,
          "image_mean": [
            0.5,
            0.5,
            0.5
          ],
          "image_std": [
            0.5,
            0.5,
            0.5
          ],
          "image_processor_type": "Qwen2VLImageProcessor",
          "do_convert_rgb": true,
          "do_resize": true,
          "resample": 3,
          "do_rescale": true,
          "rescale_factor": 0.00392156862745098,
          "do_normalize": true
        },
        "eos_token_id": [
          248044,
          248046
        ],
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 9.436,
        "torch_peak_reserved_gib": 9.592
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen3.5-4B/page-transcription/historical-danish.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "google/gemma-4-E4B-it",
      "sample_set_id": "page-transcription/historical-danish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 100,
      "failed_samples": 0,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.435431014405962,
        "wer": 0.7418482583108
      },
      "batch_size": 1,
      "model_revision": "ee0ef6023621cff504d758262d4e04895a5af4a2",
      "started_at": "2026-09-22T07:01:41.788474+00:00",
      "finished_at": "2026-09-22T07:50:09.923690+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "ee0ef6023621cff504d758262d4e04895a5af4a2",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 4096,
        "do_sample": false,
        "chat_template_options": {
          "enable_thinking": false
        },
        "prompt": "Transcribe all text on this page in natural reading order. Preserve line breaks. Return only the original text, without explanation or translation.",
        "image_options": {
          "max_soft_tokens": 1120
        },
        "image_processor": {
          "do_convert_rgb": true,
          "do_normalize": false,
          "do_rescale": true,
          "do_resize": true,
          "image_mean": [
            0.0,
            0.0,
            0.0
          ],
          "image_processor_type": "Gemma4ImageProcessor",
          "image_seq_length": 280,
          "image_std": [
            1.0,
            1.0,
            1.0
          ],
          "max_soft_tokens": 280,
          "patch_size": 16,
          "pooling_kernel_size": 3,
          "resample": 3,
          "rescale_factor": 0.00392156862745098
        },
        "eos_token_id": [
          1,
          106,
          50
        ],
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false,
          "tensor_chunk_bytes": 67108864,
          "tensor_chunk_axis": 0,
          "tensor_chunk_source": "file_readinto"
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 15.238,
        "torch_peak_reserved_gib": 15.352
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/google--gemma-4-E4B-it/page-transcription/historical-danish.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "HuggingFaceTB/SmolVLM2-2.2B-Instruct",
      "sample_set_id": "page-transcription/oj4ocrmt-danish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 42,
      "failed_samples": 58,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.990275819789074,
        "wer": 1.0010046212577859
      },
      "batch_size": 1,
      "model_revision": "482adb537c021c86670beed01cd58990d01e72e4",
      "started_at": "2026-09-22T04:18:28.381184+00:00",
      "finished_at": "2026-09-22T05:27:28.172872+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "482adb537c021c86670beed01cd58990d01e72e4",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 4096,
        "do_sample": false,
        "chat_template_options": {},
        "prompt": "Transcribe all text on this page in natural reading order. Preserve line breaks. Return only the original text, without explanation or translation.",
        "image_options": {},
        "image_processor": {
          "do_convert_rgb": true,
          "do_image_splitting": true,
          "do_normalize": true,
          "do_pad": true,
          "do_rescale": true,
          "do_resize": true,
          "image_mean": [
            0.5,
            0.5,
            0.5
          ],
          "image_processor_type": "SmolVLMImageProcessor",
          "image_std": [
            0.5,
            0.5,
            0.5
          ],
          "max_image_size": {
            "longest_edge": 384
          },
          "resample": 1,
          "rescale_factor": 0.00392156862745098,
          "size": {
            "longest_edge": 1536
          },
          "video_sampling": {
            "fps": 1,
            "max_frames": 64,
            "video_size": {
              "longest_edge": 384
            }
          }
        },
        "eos_token_id": 49279,
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 5.184,
        "torch_peak_reserved_gib": 7.285
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/HuggingFaceTB--SmolVLM2-2.2B-Instruct/page-transcription/oj4ocrmt-danish.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "google/gemma-4-E2B-it",
      "sample_set_id": "page-transcription/oj4ocrmt-danish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 98,
      "failed_samples": 2,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.055158307506716804,
        "wer": 0.07661241711874624
      },
      "batch_size": 1,
      "model_revision": "3e22461f65e89153144f8adb70e3b8c2cc9845a7",
      "started_at": "2026-09-22T05:30:16.392551+00:00",
      "finished_at": "2026-09-22T07:01:32.762269+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "3e22461f65e89153144f8adb70e3b8c2cc9845a7",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 4096,
        "do_sample": false,
        "chat_template_options": {
          "enable_thinking": false
        },
        "prompt": "Transcribe all text on this page in natural reading order. Preserve line breaks. Return only the original text, without explanation or translation.",
        "image_options": {
          "max_soft_tokens": 1120
        },
        "image_processor": {
          "do_convert_rgb": true,
          "do_normalize": false,
          "do_rescale": true,
          "do_resize": true,
          "image_mean": [
            0.0,
            0.0,
            0.0
          ],
          "image_processor_type": "Gemma4ImageProcessor",
          "image_seq_length": 280,
          "image_std": [
            1.0,
            1.0,
            1.0
          ],
          "max_soft_tokens": 280,
          "patch_size": 16,
          "pooling_kernel_size": 3,
          "resample": 3,
          "rescale_factor": 0.00392156862745098
        },
        "eos_token_id": [
          1,
          106,
          50
        ],
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 9.944,
        "torch_peak_reserved_gib": 10.07
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/google--gemma-4-E2B-it/page-transcription/oj4ocrmt-danish.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "google/gemma-3-4b-it",
      "sample_set_id": "page-transcription/oj4ocrmt-danish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 93,
      "failed_samples": 7,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.21753121088927374,
        "wer": 0.2958006831424553
      },
      "batch_size": 1,
      "model_revision": "093f9f388b31de276ce2de164bdc2081324b9767",
      "started_at": "2026-09-22T07:50:19.266906+00:00",
      "finished_at": "2026-09-22T09:25:03.107970+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "093f9f388b31de276ce2de164bdc2081324b9767",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 4096,
        "do_sample": false,
        "chat_template_options": {},
        "prompt": "Transcribe all text on this page in natural reading order. Preserve line breaks. Return only the original text, without explanation or translation.",
        "image_options": {
          "do_pan_and_scan": true,
          "pan_and_scan_min_crop_size": 256,
          "pan_and_scan_max_num_crops": 2,
          "pan_and_scan_min_ratio_to_activate": 1.2
        },
        "image_processor": {
          "do_convert_rgb": null,
          "do_normalize": true,
          "do_rescale": true,
          "do_resize": true,
          "image_mean": [
            0.5,
            0.5,
            0.5
          ],
          "image_processor_type": "Gemma3ImageProcessor",
          "image_seq_length": 256,
          "image_std": [
            0.5,
            0.5,
            0.5
          ],
          "resample": 2,
          "rescale_factor": 0.00392156862745098,
          "size": {
            "height": 896,
            "width": 896
          }
        },
        "eos_token_id": [
          1,
          106
        ],
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 8.392,
        "torch_peak_reserved_gib": 8.525
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/google--gemma-3-4b-it/page-transcription/oj4ocrmt-danish.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "Qwen/Qwen3.5-2B",
      "sample_set_id": "page-transcription/oj4ocrmt-danish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 99,
      "failed_samples": 1,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.07811268409410023,
        "wer": 0.10681133212778783
      },
      "batch_size": 1,
      "model_revision": "15852e8c16360a2fea060d615a32b45270f8a8fc",
      "started_at": "2026-09-22T09:25:29.413691+00:00",
      "finished_at": "2026-09-22T10:32:15.325592+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "15852e8c16360a2fea060d615a32b45270f8a8fc",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 4096,
        "do_sample": false,
        "chat_template_options": {
          "enable_thinking": false
        },
        "prompt": "Transcribe all text on this page in natural reading order. Preserve line breaks. Return only the original text, without explanation or translation.",
        "image_options": {
          "size": {
            "longest_edge": 2097152,
            "shortest_edge": 65536
          }
        },
        "image_processor": {
          "size": {
            "longest_edge": 16777216,
            "shortest_edge": 65536
          },
          "patch_size": 16,
          "temporal_patch_size": 2,
          "merge_size": 2,
          "image_mean": [
            0.5,
            0.5,
            0.5
          ],
          "image_std": [
            0.5,
            0.5,
            0.5
          ],
          "image_processor_type": "Qwen2VLImageProcessor",
          "do_convert_rgb": true,
          "do_resize": true,
          "resample": 3,
          "do_rescale": true,
          "rescale_factor": 0.00392156862745098,
          "do_normalize": true
        },
        "eos_token_id": [
          248044,
          248046
        ],
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 4.637,
        "torch_peak_reserved_gib": 4.785
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen3.5-2B/page-transcription/oj4ocrmt-danish.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "datalab-to/chandra-ocr-2",
      "sample_set_id": "page-transcription/oj4ocrmt-danish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 100,
      "failed_samples": 0,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.01698200094360145,
        "wer": 0.038597548724131
      },
      "batch_size": 1,
      "model_revision": "af93b47dba1b47b6640c86ccf487ed2260ab9a09",
      "started_at": "2026-09-22T10:32:24.041965+00:00",
      "finished_at": "2026-09-22T12:39:30.231762+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "af93b47dba1b47b6640c86ccf487ed2260ab9a09",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 6144,
        "do_sample": false,
        "chat_template_options": {},
        "prompt": "OCR this image to HTML, arranged as layout blocks.  Each layout block should be a div with the data-bbox attribute representing the bounding box of the block in x0 y0 x1 y1 format.  Bboxes are normalized 0-1000. The data-label attribute is the label for the block.\n\nUse the following labels:\n- Caption\n- Footnote\n- Equation-Block\n- List-Group\n- Page-Header\n- Page-Footer\n- Image\n- Section-Header\n- Table\n- Text\n- Complex-Block\n- Code-Block\n- Form\n- Table-Of-Contents\n- Figure\n- Chemical-Block\n- Diagram\n- Bibliography\n- Blank-Page\n\nOnly use these tags ['math', 'br', 'i', 'b', 'u', 'del', 'sup', 'sub', 'table', 'tr', 'td', 'p', 'th', 'div', 'pre', 'h1', 'h2', 'h3', 'h4', 'h5', 'ul', 'ol', 'li', 'input', 'a', 'span', 'img', 'hr', 'tbody', 'small', 'caption', 'strong', 'thead', 'big', 'code', 'chem'], and these attributes ['class', 'colspan', 'rowspan', 'display', 'checked', 'type', 'border', 'value', 'style', 'href', 'alt', 'align', 'data-bbox', 'data-label'].\n\nGuidelines:\n* Inline math: Surround math with <math>...</math> tags. Math expressions should be rendered in KaTeX-compatible LaTeX. Use display for block math.\n* Tables: Use colspan and rowspan attributes to match table structure.\n* Formatting: Maintain consistent formatting with the image, including spacing, indentation, subscripts/superscripts, and special characters.\n* Images: Include a description of any images in the alt attribute of an <img> tag. Do not fill out the src property. Describe in detail inside the div tag. Also convert charts to high fidelity data, and convert diagrams to mermaid.\n* Forms: Mark checkboxes and radio buttons properly.\n* Text: join lines together properly into paragraphs using <p>...</p> tags.  Use <br> tags for line breaks within paragraphs, but only when absolutely necessary to maintain meaning.\n* Chemistry: Use <chem>...</chem> tags for chemical formulas with reactive SMILES.\n* Lists: Preserve indents and proper list markers.\n* Use the simplest possible HTML structure that accurately represents the content of the block.\n* Make sure the text is accurate and easy for a human to read and interpret.  Reading order should be correct and natural.",
        "image_options": {
          "size": {
            "longest_edge": 2097152,
            "shortest_edge": 65536
          }
        },
        "image_processor": {
          "size": {
            "longest_edge": 16777216,
            "shortest_edge": 65536
          },
          "data_format": "channels_first",
          "do_convert_rgb": true,
          "do_normalize": true,
          "do_rescale": true,
          "do_resize": true,
          "image_mean": [
            0.5,
            0.5,
            0.5
          ],
          "image_processor_type": "Qwen2VLImageProcessor",
          "image_std": [
            0.5,
            0.5,
            0.5
          ],
          "merge_size": 2,
          "patch_size": 16,
          "resample": 3,
          "rescale_factor": 0.00392156862745098,
          "temporal_patch_size": 2
        },
        "eos_token_id": [
          248044,
          248046
        ],
        "postprocessing": "chandra_html_text_v1_exclude_image_descriptions"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 10.243,
        "torch_peak_reserved_gib": 10.287
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/datalab-to--chandra-ocr-2/page-transcription/oj4ocrmt-danish.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "Qwen/Qwen3.5-4B",
      "sample_set_id": "page-transcription/oj4ocrmt-danish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 98,
      "failed_samples": 2,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.03070094896924255,
        "wer": 0.05854932690375728
      },
      "batch_size": 1,
      "model_revision": "851bf6e806efd8d0a36b00ddf55e13ccb7b8cd0a",
      "started_at": "2026-09-22T12:39:38.541570+00:00",
      "finished_at": "2026-09-22T14:11:28.755418+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "851bf6e806efd8d0a36b00ddf55e13ccb7b8cd0a",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 4096,
        "do_sample": false,
        "chat_template_options": {
          "enable_thinking": false
        },
        "prompt": "Transcribe all text on this page in natural reading order. Preserve line breaks. Return only the original text, without explanation or translation.",
        "image_options": {
          "size": {
            "longest_edge": 2097152,
            "shortest_edge": 65536
          }
        },
        "image_processor": {
          "size": {
            "longest_edge": 16777216,
            "shortest_edge": 65536
          },
          "patch_size": 16,
          "temporal_patch_size": 2,
          "merge_size": 2,
          "image_mean": [
            0.5,
            0.5,
            0.5
          ],
          "image_std": [
            0.5,
            0.5,
            0.5
          ],
          "image_processor_type": "Qwen2VLImageProcessor",
          "do_convert_rgb": true,
          "do_resize": true,
          "resample": 3,
          "do_rescale": true,
          "rescale_factor": 0.00392156862745098,
          "do_normalize": true
        },
        "eos_token_id": [
          248044,
          248046
        ],
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 9.417,
        "torch_peak_reserved_gib": 9.584
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen3.5-4B/page-transcription/oj4ocrmt-danish.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "google/gemma-4-E4B-it",
      "sample_set_id": "page-transcription/oj4ocrmt-danish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 98,
      "failed_samples": 2,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.02877984422100615,
        "wer": 0.06556158328310227
      },
      "batch_size": 1,
      "model_revision": "ee0ef6023621cff504d758262d4e04895a5af4a2",
      "started_at": "2026-09-22T14:11:54.785675+00:00",
      "finished_at": "2026-09-22T16:13:23.398341+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "ee0ef6023621cff504d758262d4e04895a5af4a2",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 4096,
        "do_sample": false,
        "chat_template_options": {
          "enable_thinking": false
        },
        "prompt": "Transcribe all text on this page in natural reading order. Preserve line breaks. Return only the original text, without explanation or translation.",
        "image_options": {
          "max_soft_tokens": 1120
        },
        "image_processor": {
          "do_convert_rgb": true,
          "do_normalize": false,
          "do_rescale": true,
          "do_resize": true,
          "image_mean": [
            0.0,
            0.0,
            0.0
          ],
          "image_processor_type": "Gemma4ImageProcessor",
          "image_seq_length": 280,
          "image_std": [
            1.0,
            1.0,
            1.0
          ],
          "max_soft_tokens": 280,
          "patch_size": 16,
          "pooling_kernel_size": 3,
          "resample": 3,
          "rescale_factor": 0.00392156862745098
        },
        "eos_token_id": [
          1,
          106,
          50
        ],
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false,
          "tensor_chunk_bytes": 67108864,
          "tensor_chunk_axis": 0,
          "tensor_chunk_source": "file_readinto"
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 15.237,
        "torch_peak_reserved_gib": 15.354
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/google--gemma-4-E4B-it/page-transcription/oj4ocrmt-danish.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "HuggingFaceTB/SmolVLM2-2.2B-Instruct",
      "sample_set_id": "page-transcription/oj4ocrmt-swedish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 44,
      "failed_samples": 56,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.9843013728869682,
        "wer": 0.9927765603441279
      },
      "batch_size": 1,
      "model_revision": "482adb537c021c86670beed01cd58990d01e72e4",
      "started_at": "2026-09-22T16:13:32.664292+00:00",
      "finished_at": "2026-09-22T17:22:06.945657+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "482adb537c021c86670beed01cd58990d01e72e4",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 4096,
        "do_sample": false,
        "chat_template_options": {},
        "prompt": "Transcribe all text on this page in natural reading order. Preserve line breaks. Return only the original text, without explanation or translation.",
        "image_options": {},
        "image_processor": {
          "do_convert_rgb": true,
          "do_image_splitting": true,
          "do_normalize": true,
          "do_pad": true,
          "do_rescale": true,
          "do_resize": true,
          "image_mean": [
            0.5,
            0.5,
            0.5
          ],
          "image_processor_type": "SmolVLMImageProcessor",
          "image_std": [
            0.5,
            0.5,
            0.5
          ],
          "max_image_size": {
            "longest_edge": 384
          },
          "resample": 1,
          "rescale_factor": 0.00392156862745098,
          "size": {
            "longest_edge": 1536
          },
          "video_sampling": {
            "fps": 1,
            "max_frames": 64,
            "video_size": {
              "longest_edge": 384
            }
          }
        },
        "eos_token_id": 49279,
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 5.184,
        "torch_peak_reserved_gib": 7.266
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/HuggingFaceTB--SmolVLM2-2.2B-Instruct/page-transcription/oj4ocrmt-swedish.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "google/gemma-4-E2B-it",
      "sample_set_id": "page-transcription/oj4ocrmt-swedish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 96,
      "failed_samples": 4,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.050712763518733925,
        "wer": 0.08964369775180586
      },
      "batch_size": 1,
      "model_revision": "3e22461f65e89153144f8adb70e3b8c2cc9845a7",
      "started_at": "2026-09-22T17:22:15.590438+00:00",
      "finished_at": "2026-09-22T18:57:08.994982+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "3e22461f65e89153144f8adb70e3b8c2cc9845a7",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 4096,
        "do_sample": false,
        "chat_template_options": {
          "enable_thinking": false
        },
        "prompt": "Transcribe all text on this page in natural reading order. Preserve line breaks. Return only the original text, without explanation or translation.",
        "image_options": {
          "max_soft_tokens": 1120
        },
        "image_processor": {
          "do_convert_rgb": true,
          "do_normalize": false,
          "do_rescale": true,
          "do_resize": true,
          "image_mean": [
            0.0,
            0.0,
            0.0
          ],
          "image_processor_type": "Gemma4ImageProcessor",
          "image_seq_length": 280,
          "image_std": [
            1.0,
            1.0,
            1.0
          ],
          "max_soft_tokens": 280,
          "patch_size": 16,
          "pooling_kernel_size": 3,
          "resample": 3,
          "rescale_factor": 0.00392156862745098
        },
        "eos_token_id": [
          1,
          106,
          50
        ],
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 9.944,
        "torch_peak_reserved_gib": 10.07
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/google--gemma-4-E2B-it/page-transcription/oj4ocrmt-swedish.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "google/gemma-3-4b-it",
      "sample_set_id": "page-transcription/oj4ocrmt-swedish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 91,
      "failed_samples": 9,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.22472215382786698,
        "wer": 0.29532911289668046
      },
      "batch_size": 1,
      "model_revision": "093f9f388b31de276ce2de164bdc2081324b9767",
      "started_at": "2026-09-22T18:57:18.665625+00:00",
      "finished_at": "2026-09-22T20:35:54.452303+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "093f9f388b31de276ce2de164bdc2081324b9767",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 4096,
        "do_sample": false,
        "chat_template_options": {},
        "prompt": "Transcribe all text on this page in natural reading order. Preserve line breaks. Return only the original text, without explanation or translation.",
        "image_options": {
          "do_pan_and_scan": true,
          "pan_and_scan_min_crop_size": 256,
          "pan_and_scan_max_num_crops": 2,
          "pan_and_scan_min_ratio_to_activate": 1.2
        },
        "image_processor": {
          "do_convert_rgb": null,
          "do_normalize": true,
          "do_rescale": true,
          "do_resize": true,
          "image_mean": [
            0.5,
            0.5,
            0.5
          ],
          "image_processor_type": "Gemma3ImageProcessor",
          "image_seq_length": 256,
          "image_std": [
            0.5,
            0.5,
            0.5
          ],
          "resample": 2,
          "rescale_factor": 0.00392156862745098,
          "size": {
            "height": 896,
            "width": 896
          }
        },
        "eos_token_id": [
          1,
          106
        ],
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 8.392,
        "torch_peak_reserved_gib": 8.525
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/google--gemma-3-4b-it/page-transcription/oj4ocrmt-swedish.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "Qwen/Qwen3.5-2B",
      "sample_set_id": "page-transcription/oj4ocrmt-swedish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 98,
      "failed_samples": 2,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.06971413046246848,
        "wer": 0.09964694424153883
      },
      "batch_size": 1,
      "model_revision": "15852e8c16360a2fea060d615a32b45270f8a8fc",
      "started_at": "2026-09-22T20:36:02.822526+00:00",
      "finished_at": "2026-09-22T21:43:54.625705+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "15852e8c16360a2fea060d615a32b45270f8a8fc",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 4096,
        "do_sample": false,
        "chat_template_options": {
          "enable_thinking": false
        },
        "prompt": "Transcribe all text on this page in natural reading order. Preserve line breaks. Return only the original text, without explanation or translation.",
        "image_options": {
          "size": {
            "longest_edge": 2097152,
            "shortest_edge": 65536
          }
        },
        "image_processor": {
          "size": {
            "longest_edge": 16777216,
            "shortest_edge": 65536
          },
          "patch_size": 16,
          "temporal_patch_size": 2,
          "merge_size": 2,
          "image_mean": [
            0.5,
            0.5,
            0.5
          ],
          "image_std": [
            0.5,
            0.5,
            0.5
          ],
          "image_processor_type": "Qwen2VLImageProcessor",
          "do_convert_rgb": true,
          "do_resize": true,
          "resample": 3,
          "do_rescale": true,
          "rescale_factor": 0.00392156862745098,
          "do_normalize": true
        },
        "eos_token_id": [
          248044,
          248046
        ],
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 4.637,
        "torch_peak_reserved_gib": 4.785
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen3.5-2B/page-transcription/oj4ocrmt-swedish.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "datalab-to/chandra-ocr-2",
      "sample_set_id": "page-transcription/oj4ocrmt-swedish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 100,
      "failed_samples": 0,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.013174167876539227,
        "wer": 0.03903903903903904
      },
      "batch_size": 1,
      "model_revision": "af93b47dba1b47b6640c86ccf487ed2260ab9a09",
      "started_at": "2026-09-22T21:44:02.681815+00:00",
      "finished_at": "2026-09-22T23:51:01.230763+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "af93b47dba1b47b6640c86ccf487ed2260ab9a09",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 6144,
        "do_sample": false,
        "chat_template_options": {},
        "prompt": "OCR this image to HTML, arranged as layout blocks.  Each layout block should be a div with the data-bbox attribute representing the bounding box of the block in x0 y0 x1 y1 format.  Bboxes are normalized 0-1000. The data-label attribute is the label for the block.\n\nUse the following labels:\n- Caption\n- Footnote\n- Equation-Block\n- List-Group\n- Page-Header\n- Page-Footer\n- Image\n- Section-Header\n- Table\n- Text\n- Complex-Block\n- Code-Block\n- Form\n- Table-Of-Contents\n- Figure\n- Chemical-Block\n- Diagram\n- Bibliography\n- Blank-Page\n\nOnly use these tags ['math', 'br', 'i', 'b', 'u', 'del', 'sup', 'sub', 'table', 'tr', 'td', 'p', 'th', 'div', 'pre', 'h1', 'h2', 'h3', 'h4', 'h5', 'ul', 'ol', 'li', 'input', 'a', 'span', 'img', 'hr', 'tbody', 'small', 'caption', 'strong', 'thead', 'big', 'code', 'chem'], and these attributes ['class', 'colspan', 'rowspan', 'display', 'checked', 'type', 'border', 'value', 'style', 'href', 'alt', 'align', 'data-bbox', 'data-label'].\n\nGuidelines:\n* Inline math: Surround math with <math>...</math> tags. Math expressions should be rendered in KaTeX-compatible LaTeX. Use display for block math.\n* Tables: Use colspan and rowspan attributes to match table structure.\n* Formatting: Maintain consistent formatting with the image, including spacing, indentation, subscripts/superscripts, and special characters.\n* Images: Include a description of any images in the alt attribute of an <img> tag. Do not fill out the src property. Describe in detail inside the div tag. Also convert charts to high fidelity data, and convert diagrams to mermaid.\n* Forms: Mark checkboxes and radio buttons properly.\n* Text: join lines together properly into paragraphs using <p>...</p> tags.  Use <br> tags for line breaks within paragraphs, but only when absolutely necessary to maintain meaning.\n* Chemistry: Use <chem>...</chem> tags for chemical formulas with reactive SMILES.\n* Lists: Preserve indents and proper list markers.\n* Use the simplest possible HTML structure that accurately represents the content of the block.\n* Make sure the text is accurate and easy for a human to read and interpret.  Reading order should be correct and natural.",
        "image_options": {
          "size": {
            "longest_edge": 2097152,
            "shortest_edge": 65536
          }
        },
        "image_processor": {
          "size": {
            "longest_edge": 16777216,
            "shortest_edge": 65536
          },
          "data_format": "channels_first",
          "do_convert_rgb": true,
          "do_normalize": true,
          "do_rescale": true,
          "do_resize": true,
          "image_mean": [
            0.5,
            0.5,
            0.5
          ],
          "image_processor_type": "Qwen2VLImageProcessor",
          "image_std": [
            0.5,
            0.5,
            0.5
          ],
          "merge_size": 2,
          "patch_size": 16,
          "resample": 3,
          "rescale_factor": 0.00392156862745098,
          "temporal_patch_size": 2
        },
        "eos_token_id": [
          248044,
          248046
        ],
        "postprocessing": "chandra_html_text_v1_exclude_image_descriptions"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 10.243,
        "torch_peak_reserved_gib": 10.287
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/datalab-to--chandra-ocr-2/page-transcription/oj4ocrmt-swedish.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "Qwen/Qwen3.5-4B",
      "sample_set_id": "page-transcription/oj4ocrmt-swedish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 99,
      "failed_samples": 1,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.030248229057884265,
        "wer": 0.0621094067040013
      },
      "batch_size": 1,
      "model_revision": "851bf6e806efd8d0a36b00ddf55e13ccb7b8cd0a",
      "started_at": "2026-09-22T23:51:09.398082+00:00",
      "finished_at": "2026-09-23T01:18:52.537370+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "851bf6e806efd8d0a36b00ddf55e13ccb7b8cd0a",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 4096,
        "do_sample": false,
        "chat_template_options": {
          "enable_thinking": false
        },
        "prompt": "Transcribe all text on this page in natural reading order. Preserve line breaks. Return only the original text, without explanation or translation.",
        "image_options": {
          "size": {
            "longest_edge": 2097152,
            "shortest_edge": 65536
          }
        },
        "image_processor": {
          "size": {
            "longest_edge": 16777216,
            "shortest_edge": 65536
          },
          "patch_size": 16,
          "temporal_patch_size": 2,
          "merge_size": 2,
          "image_mean": [
            0.5,
            0.5,
            0.5
          ],
          "image_std": [
            0.5,
            0.5,
            0.5
          ],
          "image_processor_type": "Qwen2VLImageProcessor",
          "do_convert_rgb": true,
          "do_resize": true,
          "resample": 3,
          "do_rescale": true,
          "rescale_factor": 0.00392156862745098,
          "do_normalize": true
        },
        "eos_token_id": [
          248044,
          248046
        ],
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 9.417,
        "torch_peak_reserved_gib": 9.584
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen3.5-4B/page-transcription/oj4ocrmt-swedish.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "google/gemma-4-E4B-it",
      "sample_set_id": "page-transcription/oj4ocrmt-swedish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 97,
      "failed_samples": 3,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.043054482471705964,
        "wer": 0.07446635825014203
      },
      "batch_size": 1,
      "model_revision": "ee0ef6023621cff504d758262d4e04895a5af4a2",
      "started_at": "2026-09-23T01:19:01.307512+00:00",
      "finished_at": "2026-09-23T03:17:58.270297+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "ee0ef6023621cff504d758262d4e04895a5af4a2",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 4096,
        "do_sample": false,
        "chat_template_options": {
          "enable_thinking": false
        },
        "prompt": "Transcribe all text on this page in natural reading order. Preserve line breaks. Return only the original text, without explanation or translation.",
        "image_options": {
          "max_soft_tokens": 1120
        },
        "image_processor": {
          "do_convert_rgb": true,
          "do_normalize": false,
          "do_rescale": true,
          "do_resize": true,
          "image_mean": [
            0.0,
            0.0,
            0.0
          ],
          "image_processor_type": "Gemma4ImageProcessor",
          "image_seq_length": 280,
          "image_std": [
            1.0,
            1.0,
            1.0
          ],
          "max_soft_tokens": 280,
          "patch_size": 16,
          "pooling_kernel_size": 3,
          "resample": 3,
          "rescale_factor": 0.00392156862745098
        },
        "eos_token_id": [
          1,
          106,
          50
        ],
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false,
          "tensor_chunk_bytes": 67108864,
          "tensor_chunk_axis": 0,
          "tensor_chunk_source": "file_readinto"
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 15.237,
        "torch_peak_reserved_gib": 15.352
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/google--gemma-4-E4B-it/page-transcription/oj4ocrmt-swedish.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "HuggingFaceTB/SmolVLM2-2.2B-Instruct",
      "sample_set_id": "page-transcription/nasjonalt-vitenarkiv",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 38,
      "failed_samples": 62,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.9738992032236503,
        "wer": 0.9865921404567588
      },
      "batch_size": 1,
      "model_revision": "482adb537c021c86670beed01cd58990d01e72e4",
      "started_at": "2026-09-23T03:18:24.580187+00:00",
      "finished_at": "2026-09-23T04:33:59.197134+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "482adb537c021c86670beed01cd58990d01e72e4",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 4096,
        "do_sample": false,
        "chat_template_options": {},
        "prompt": "Transcribe all text on this page in natural reading order. Preserve line breaks. Return only the original text, without explanation or translation.",
        "image_options": {},
        "image_processor": {
          "do_convert_rgb": true,
          "do_image_splitting": true,
          "do_normalize": true,
          "do_pad": true,
          "do_rescale": true,
          "do_resize": true,
          "image_mean": [
            0.5,
            0.5,
            0.5
          ],
          "image_processor_type": "SmolVLMImageProcessor",
          "image_std": [
            0.5,
            0.5,
            0.5
          ],
          "max_image_size": {
            "longest_edge": 384
          },
          "resample": 1,
          "rescale_factor": 0.00392156862745098,
          "size": {
            "longest_edge": 1536
          },
          "video_sampling": {
            "fps": 1,
            "max_frames": 64,
            "video_size": {
              "longest_edge": 384
            }
          }
        },
        "eos_token_id": 49279,
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 5.184,
        "torch_peak_reserved_gib": 7.285
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/HuggingFaceTB--SmolVLM2-2.2B-Instruct/page-transcription/nasjonalt-vitenarkiv.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "google/gemma-4-E2B-it",
      "sample_set_id": "page-transcription/nasjonalt-vitenarkiv",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 98,
      "failed_samples": 2,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.13971716122579497,
        "wer": 0.16127151772855086
      },
      "batch_size": 1,
      "model_revision": "3e22461f65e89153144f8adb70e3b8c2cc9845a7",
      "started_at": "2026-09-23T04:34:07.380466+00:00",
      "finished_at": "2026-09-23T05:32:28.158399+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "3e22461f65e89153144f8adb70e3b8c2cc9845a7",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 4096,
        "do_sample": false,
        "chat_template_options": {
          "enable_thinking": false
        },
        "prompt": "Transcribe all text on this page in natural reading order. Preserve line breaks. Return only the original text, without explanation or translation.",
        "image_options": {
          "max_soft_tokens": 1120
        },
        "image_processor": {
          "do_convert_rgb": true,
          "do_normalize": false,
          "do_rescale": true,
          "do_resize": true,
          "image_mean": [
            0.0,
            0.0,
            0.0
          ],
          "image_processor_type": "Gemma4ImageProcessor",
          "image_seq_length": 280,
          "image_std": [
            1.0,
            1.0,
            1.0
          ],
          "max_soft_tokens": 280,
          "patch_size": 16,
          "pooling_kernel_size": 3,
          "resample": 3,
          "rescale_factor": 0.00392156862745098
        },
        "eos_token_id": [
          1,
          106,
          50
        ],
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 9.944,
        "torch_peak_reserved_gib": 10.07
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/google--gemma-4-E2B-it/page-transcription/nasjonalt-vitenarkiv.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "google/gemma-3-4b-it",
      "sample_set_id": "page-transcription/nasjonalt-vitenarkiv",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 99,
      "failed_samples": 1,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.21352355947933047,
        "wer": 0.23959262053357108
      },
      "batch_size": 1,
      "model_revision": "093f9f388b31de276ce2de164bdc2081324b9767",
      "started_at": "2026-09-23T05:32:37.763819+00:00",
      "finished_at": "2026-09-23T06:23:05.607726+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "093f9f388b31de276ce2de164bdc2081324b9767",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 4096,
        "do_sample": false,
        "chat_template_options": {},
        "prompt": "Transcribe all text on this page in natural reading order. Preserve line breaks. Return only the original text, without explanation or translation.",
        "image_options": {
          "do_pan_and_scan": true,
          "pan_and_scan_min_crop_size": 256,
          "pan_and_scan_max_num_crops": 2,
          "pan_and_scan_min_ratio_to_activate": 1.2
        },
        "image_processor": {
          "do_convert_rgb": null,
          "do_normalize": true,
          "do_rescale": true,
          "do_resize": true,
          "image_mean": [
            0.5,
            0.5,
            0.5
          ],
          "image_processor_type": "Gemma3ImageProcessor",
          "image_seq_length": 256,
          "image_std": [
            0.5,
            0.5,
            0.5
          ],
          "resample": 2,
          "rescale_factor": 0.00392156862745098,
          "size": {
            "height": 896,
            "width": 896
          }
        },
        "eos_token_id": [
          1,
          106
        ],
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 8.392,
        "torch_peak_reserved_gib": 8.525
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/google--gemma-3-4b-it/page-transcription/nasjonalt-vitenarkiv.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "Qwen/Qwen3.5-2B",
      "sample_set_id": "page-transcription/nasjonalt-vitenarkiv",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 100,
      "failed_samples": 0,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.17250664781715977,
        "wer": 0.16514642342774843
      },
      "batch_size": 1,
      "model_revision": "15852e8c16360a2fea060d615a32b45270f8a8fc",
      "started_at": "2026-09-23T06:23:13.847433+00:00",
      "finished_at": "2026-09-23T07:02:18.993467+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "15852e8c16360a2fea060d615a32b45270f8a8fc",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 4096,
        "do_sample": false,
        "chat_template_options": {
          "enable_thinking": false
        },
        "prompt": "Transcribe all text on this page in natural reading order. Preserve line breaks. Return only the original text, without explanation or translation.",
        "image_options": {
          "size": {
            "longest_edge": 2097152,
            "shortest_edge": 65536
          }
        },
        "image_processor": {
          "size": {
            "longest_edge": 16777216,
            "shortest_edge": 65536
          },
          "patch_size": 16,
          "temporal_patch_size": 2,
          "merge_size": 2,
          "image_mean": [
            0.5,
            0.5,
            0.5
          ],
          "image_std": [
            0.5,
            0.5,
            0.5
          ],
          "image_processor_type": "Qwen2VLImageProcessor",
          "do_convert_rgb": true,
          "do_resize": true,
          "resample": 3,
          "do_rescale": true,
          "rescale_factor": 0.00392156862745098,
          "do_normalize": true
        },
        "eos_token_id": [
          248044,
          248046
        ],
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 4.637,
        "torch_peak_reserved_gib": 4.785
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen3.5-2B/page-transcription/nasjonalt-vitenarkiv.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "datalab-to/chandra-ocr-2",
      "sample_set_id": "page-transcription/nasjonalt-vitenarkiv",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 100,
      "failed_samples": 0,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.12644556964460024,
        "wer": 0.105994101913449
      },
      "batch_size": 1,
      "model_revision": "af93b47dba1b47b6640c86ccf487ed2260ab9a09",
      "started_at": "2026-09-23T07:02:27.176694+00:00",
      "finished_at": "2026-09-23T08:30:48.499711+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "af93b47dba1b47b6640c86ccf487ed2260ab9a09",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 6144,
        "do_sample": false,
        "chat_template_options": {},
        "prompt": "OCR this image to HTML, arranged as layout blocks.  Each layout block should be a div with the data-bbox attribute representing the bounding box of the block in x0 y0 x1 y1 format.  Bboxes are normalized 0-1000. The data-label attribute is the label for the block.\n\nUse the following labels:\n- Caption\n- Footnote\n- Equation-Block\n- List-Group\n- Page-Header\n- Page-Footer\n- Image\n- Section-Header\n- Table\n- Text\n- Complex-Block\n- Code-Block\n- Form\n- Table-Of-Contents\n- Figure\n- Chemical-Block\n- Diagram\n- Bibliography\n- Blank-Page\n\nOnly use these tags ['math', 'br', 'i', 'b', 'u', 'del', 'sup', 'sub', 'table', 'tr', 'td', 'p', 'th', 'div', 'pre', 'h1', 'h2', 'h3', 'h4', 'h5', 'ul', 'ol', 'li', 'input', 'a', 'span', 'img', 'hr', 'tbody', 'small', 'caption', 'strong', 'thead', 'big', 'code', 'chem'], and these attributes ['class', 'colspan', 'rowspan', 'display', 'checked', 'type', 'border', 'value', 'style', 'href', 'alt', 'align', 'data-bbox', 'data-label'].\n\nGuidelines:\n* Inline math: Surround math with <math>...</math> tags. Math expressions should be rendered in KaTeX-compatible LaTeX. Use display for block math.\n* Tables: Use colspan and rowspan attributes to match table structure.\n* Formatting: Maintain consistent formatting with the image, including spacing, indentation, subscripts/superscripts, and special characters.\n* Images: Include a description of any images in the alt attribute of an <img> tag. Do not fill out the src property. Describe in detail inside the div tag. Also convert charts to high fidelity data, and convert diagrams to mermaid.\n* Forms: Mark checkboxes and radio buttons properly.\n* Text: join lines together properly into paragraphs using <p>...</p> tags.  Use <br> tags for line breaks within paragraphs, but only when absolutely necessary to maintain meaning.\n* Chemistry: Use <chem>...</chem> tags for chemical formulas with reactive SMILES.\n* Lists: Preserve indents and proper list markers.\n* Use the simplest possible HTML structure that accurately represents the content of the block.\n* Make sure the text is accurate and easy for a human to read and interpret.  Reading order should be correct and natural.",
        "image_options": {
          "size": {
            "longest_edge": 2097152,
            "shortest_edge": 65536
          }
        },
        "image_processor": {
          "size": {
            "longest_edge": 16777216,
            "shortest_edge": 65536
          },
          "data_format": "channels_first",
          "do_convert_rgb": true,
          "do_normalize": true,
          "do_rescale": true,
          "do_resize": true,
          "image_mean": [
            0.5,
            0.5,
            0.5
          ],
          "image_processor_type": "Qwen2VLImageProcessor",
          "image_std": [
            0.5,
            0.5,
            0.5
          ],
          "merge_size": 2,
          "patch_size": 16,
          "resample": 3,
          "rescale_factor": 0.00392156862745098,
          "temporal_patch_size": 2
        },
        "eos_token_id": [
          248044,
          248046
        ],
        "postprocessing": "chandra_html_text_v1_exclude_image_descriptions"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 10.243,
        "torch_peak_reserved_gib": 10.287
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/datalab-to--chandra-ocr-2/page-transcription/nasjonalt-vitenarkiv.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "Qwen/Qwen3.5-4B",
      "sample_set_id": "page-transcription/nasjonalt-vitenarkiv",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 99,
      "failed_samples": 1,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.1537533118872107,
        "wer": 0.187675742404499
      },
      "batch_size": 1,
      "model_revision": "851bf6e806efd8d0a36b00ddf55e13ccb7b8cd0a",
      "started_at": "2026-09-23T08:31:17.191565+00:00",
      "finished_at": "2026-09-23T09:26:27.620458+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "851bf6e806efd8d0a36b00ddf55e13ccb7b8cd0a",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 4096,
        "do_sample": false,
        "chat_template_options": {
          "enable_thinking": false
        },
        "prompt": "Transcribe all text on this page in natural reading order. Preserve line breaks. Return only the original text, without explanation or translation.",
        "image_options": {
          "size": {
            "longest_edge": 2097152,
            "shortest_edge": 65536
          }
        },
        "image_processor": {
          "size": {
            "longest_edge": 16777216,
            "shortest_edge": 65536
          },
          "patch_size": 16,
          "temporal_patch_size": 2,
          "merge_size": 2,
          "image_mean": [
            0.5,
            0.5,
            0.5
          ],
          "image_std": [
            0.5,
            0.5,
            0.5
          ],
          "image_processor_type": "Qwen2VLImageProcessor",
          "do_convert_rgb": true,
          "do_resize": true,
          "resample": 3,
          "do_rescale": true,
          "rescale_factor": 0.00392156862745098,
          "do_normalize": true
        },
        "eos_token_id": [
          248044,
          248046
        ],
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 9.417,
        "torch_peak_reserved_gib": 9.584
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen3.5-4B/page-transcription/nasjonalt-vitenarkiv.json"
    },
    {
      "run_id": "new_models_20260919",
      "model_id": "google/gemma-4-E4B-it",
      "sample_set_id": "page-transcription/nasjonalt-vitenarkiv",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 100,
      "failed_samples": 0,
      "selected_samples": 100,
      "target_samples": 100,
      "corpus_metrics": {
        "cer": 0.14189543332227367,
        "wer": 0.15530484877580414
      },
      "batch_size": 1,
      "model_revision": "ee0ef6023621cff504d758262d4e04895a5af4a2",
      "started_at": "2026-09-23T09:26:37.289927+00:00",
      "finished_at": "2026-09-23T10:36:41.012887+00:00",
      "warnings": [],
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": {
        "models/model_registry.py": "e1ddc095d344b1586c95369986f9e3e4944acc798b12ac033f9dd70c2d69bca6",
        "models/models_implementations/hf_vlm.py": "588bd587cc1341b2ae238d95c3e7499397558f1002c69946b1d7ce33c546570b",
        "models/models_implementations/chandra_ocr.py": "6e21f6f8f57d93c692bb72b1e38da83f521979f0de332614c469a04038762699",
        "models/models_implementations/chandra_prompt.txt": "6ba07cb9c8f01f3f375aea19204eb797582a6560aa5f84b82b7f30bd425129f5",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b"
      },
      "inference_settings": {
        "model_revision": "ee0ef6023621cff504d758262d4e04895a5af4a2",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 4096,
        "do_sample": false,
        "chat_template_options": {
          "enable_thinking": false
        },
        "prompt": "Transcribe all text on this page in natural reading order. Preserve line breaks. Return only the original text, without explanation or translation.",
        "image_options": {
          "max_soft_tokens": 1120
        },
        "image_processor": {
          "do_convert_rgb": true,
          "do_normalize": false,
          "do_rescale": true,
          "do_resize": true,
          "image_mean": [
            0.0,
            0.0,
            0.0
          ],
          "image_processor_type": "Gemma4ImageProcessor",
          "image_seq_length": 280,
          "image_std": [
            1.0,
            1.0,
            1.0
          ],
          "max_soft_tokens": 280,
          "patch_size": 16,
          "pooling_kernel_size": 3,
          "resample": 3,
          "rescale_factor": 0.00392156862745098
        },
        "eos_token_id": [
          1,
          106,
          50
        ],
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false,
          "tensor_chunk_bytes": 67108864,
          "tensor_chunk_axis": 0,
          "tensor_chunk_source": "file_readinto"
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 15.237,
        "torch_peak_reserved_gib": 15.354
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/google--gemma-4-E4B-it/page-transcription/nasjonalt-vitenarkiv.json"
    },
    {
      "run_id": "mistral_20261001",
      "model_id": "Mistral/mistral-ocr-4-1",
      "sample_set_id": "page-transcription/historical-danish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 100,
      "failed_samples": 0,
      "selected_samples": 100,
      "corpus_metrics": {
        "cer": 0.6025052400439166,
        "wer": 1.1462806850113991
      },
      "batch_size": 1,
      "started_at": "2026-10-01T17:29:32.386797+00:00",
      "finished_at": "2026-10-01T17:31:17.595298+00:00",
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": "29fed7c76150cd09b390459b565d19bf97ba94d46a3ad1de13c77160e28d5b88",
      "inference_settings": {
        "model_id": "mistral-ocr-4-1",
        "endpoint": "https://api.mistral.ai/v1/ocr",
        "document_type": "image_url",
        "image_encoding": "RGB PNG base64",
        "image_resize": null,
        "include_blocks": false,
        "include_image_base64": false,
        "table_format": "provider default",
        "extract_header": "provider default",
        "extract_footer": "provider default",
        "prompt": null,
        "thinking": "not exposed by OCR endpoint",
        "output": "raw first-page Markdown",
        "sdk_version": "2.10.0"
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "target_samples": 100,
      "model_revision": null,
      "warnings": [],
      "runtime_guards": {
        "workers": 8,
        "min_request_interval_seconds": 0.1,
        "request_timeout_seconds": 90,
        "sdk_retries": false,
        "rate_limit_retries": 3,
        "retry_failed_samples": false
      },
      "gpu_memory": null,
      "estimated_cost_usd": 0.4,
      "usage_info": {
        "pages_processed": 100
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Mistral--mistral-ocr-4-1/page-transcription/historical-danish.json"
    },
    {
      "run_id": "mistral_20261001",
      "model_id": "Mistral/mistral-ocr-4-1",
      "sample_set_id": "page-transcription/modern-danish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 100,
      "failed_samples": 0,
      "selected_samples": 100,
      "corpus_metrics": {
        "cer": 0.06471298283261803,
        "wer": 0.15904492108458115
      },
      "batch_size": 1,
      "started_at": "2026-10-01T17:31:17.597842+00:00",
      "finished_at": "2026-10-01T17:31:51.738276+00:00",
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": "29fed7c76150cd09b390459b565d19bf97ba94d46a3ad1de13c77160e28d5b88",
      "inference_settings": {
        "model_id": "mistral-ocr-4-1",
        "endpoint": "https://api.mistral.ai/v1/ocr",
        "document_type": "image_url",
        "image_encoding": "RGB PNG base64",
        "image_resize": null,
        "include_blocks": false,
        "include_image_base64": false,
        "table_format": "provider default",
        "extract_header": "provider default",
        "extract_footer": "provider default",
        "prompt": null,
        "thinking": "not exposed by OCR endpoint",
        "output": "raw first-page Markdown",
        "sdk_version": "2.10.0"
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "target_samples": 100,
      "model_revision": null,
      "warnings": [],
      "runtime_guards": {
        "workers": 8,
        "min_request_interval_seconds": 0.1,
        "request_timeout_seconds": 90,
        "sdk_retries": false,
        "rate_limit_retries": 3,
        "retry_failed_samples": false
      },
      "gpu_memory": null,
      "estimated_cost_usd": 0.4,
      "usage_info": {
        "pages_processed": 100
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Mistral--mistral-ocr-4-1/page-transcription/modern-danish.json"
    },
    {
      "run_id": "mistral_20261001",
      "model_id": "Mistral/mistral-ocr-4-1",
      "sample_set_id": "page-transcription/nasjonalt-vitenarkiv",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 100,
      "failed_samples": 0,
      "selected_samples": 100,
      "corpus_metrics": {
        "cer": 0.15771555517087174,
        "wer": 0.1590425896714903
      },
      "batch_size": 1,
      "started_at": "2026-10-01T17:31:51.742519+00:00",
      "finished_at": "2026-10-01T17:32:55.774590+00:00",
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": "29fed7c76150cd09b390459b565d19bf97ba94d46a3ad1de13c77160e28d5b88",
      "inference_settings": {
        "model_id": "mistral-ocr-4-1",
        "endpoint": "https://api.mistral.ai/v1/ocr",
        "document_type": "image_url",
        "image_encoding": "RGB PNG base64",
        "image_resize": null,
        "include_blocks": false,
        "include_image_base64": false,
        "table_format": "provider default",
        "extract_header": "provider default",
        "extract_footer": "provider default",
        "prompt": null,
        "thinking": "not exposed by OCR endpoint",
        "output": "raw first-page Markdown",
        "sdk_version": "2.10.0"
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "target_samples": 100,
      "model_revision": null,
      "warnings": [],
      "runtime_guards": {
        "workers": 8,
        "min_request_interval_seconds": 0.1,
        "request_timeout_seconds": 90,
        "sdk_retries": false,
        "rate_limit_retries": 3,
        "retry_failed_samples": false
      },
      "gpu_memory": null,
      "estimated_cost_usd": 0.4,
      "usage_info": {
        "pages_processed": 100
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Mistral--mistral-ocr-4-1/page-transcription/nasjonalt-vitenarkiv.json"
    },
    {
      "run_id": "mistral_20261001",
      "model_id": "Mistral/mistral-ocr-4-1",
      "sample_set_id": "page-transcription/oj4ocrmt-danish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 100,
      "failed_samples": 0,
      "selected_samples": 100,
      "corpus_metrics": {
        "cer": 0.03450925661721705,
        "wer": 0.10699216395418927
      },
      "batch_size": 1,
      "started_at": "2026-10-01T17:32:55.779138+00:00",
      "finished_at": "2026-10-01T17:33:51.928938+00:00",
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": "29fed7c76150cd09b390459b565d19bf97ba94d46a3ad1de13c77160e28d5b88",
      "inference_settings": {
        "model_id": "mistral-ocr-4-1",
        "endpoint": "https://api.mistral.ai/v1/ocr",
        "document_type": "image_url",
        "image_encoding": "RGB PNG base64",
        "image_resize": null,
        "include_blocks": false,
        "include_image_base64": false,
        "table_format": "provider default",
        "extract_header": "provider default",
        "extract_footer": "provider default",
        "prompt": null,
        "thinking": "not exposed by OCR endpoint",
        "output": "raw first-page Markdown",
        "sdk_version": "2.10.0"
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "target_samples": 100,
      "model_revision": null,
      "warnings": [],
      "runtime_guards": {
        "workers": 8,
        "min_request_interval_seconds": 0.1,
        "request_timeout_seconds": 90,
        "sdk_retries": false,
        "rate_limit_retries": 3,
        "retry_failed_samples": false
      },
      "gpu_memory": null,
      "estimated_cost_usd": 0.4,
      "usage_info": {
        "pages_processed": 100
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Mistral--mistral-ocr-4-1/page-transcription/oj4ocrmt-danish.json"
    },
    {
      "run_id": "mistral_20261001",
      "model_id": "Mistral/mistral-ocr-4-1",
      "sample_set_id": "page-transcription/oj4ocrmt-swedish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 100,
      "failed_samples": 0,
      "selected_samples": 100,
      "corpus_metrics": {
        "cer": 0.03602731623380115,
        "wer": 0.15152990828666504
      },
      "batch_size": 1,
      "started_at": "2026-10-01T17:33:51.935450+00:00",
      "finished_at": "2026-10-01T17:34:48.335527+00:00",
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": "29fed7c76150cd09b390459b565d19bf97ba94d46a3ad1de13c77160e28d5b88",
      "inference_settings": {
        "model_id": "mistral-ocr-4-1",
        "endpoint": "https://api.mistral.ai/v1/ocr",
        "document_type": "image_url",
        "image_encoding": "RGB PNG base64",
        "image_resize": null,
        "include_blocks": false,
        "include_image_base64": false,
        "table_format": "provider default",
        "extract_header": "provider default",
        "extract_footer": "provider default",
        "prompt": null,
        "thinking": "not exposed by OCR endpoint",
        "output": "raw first-page Markdown",
        "sdk_version": "2.10.0"
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "target_samples": 100,
      "model_revision": null,
      "warnings": [],
      "runtime_guards": {
        "workers": 8,
        "min_request_interval_seconds": 0.1,
        "request_timeout_seconds": 90,
        "sdk_retries": false,
        "rate_limit_retries": 3,
        "retry_failed_samples": false
      },
      "gpu_memory": null,
      "estimated_cost_usd": 0.4,
      "usage_info": {
        "pages_processed": 100
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Mistral--mistral-ocr-4-1/page-transcription/oj4ocrmt-swedish.json"
    },
    {
      "run_id": "mistral_20261001",
      "model_id": "Mistral/mistral-ocr-4-1",
      "sample_set_id": "line-recognition/danish-typewritten",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "corpus_metrics": {
        "cer": 0.11640339728459319,
        "wer": 0.057281426137108404
      },
      "batch_size": 1,
      "started_at": "2026-10-01T17:34:48.341035+00:00",
      "finished_at": "2026-10-01T17:43:21.539694+00:00",
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": "29fed7c76150cd09b390459b565d19bf97ba94d46a3ad1de13c77160e28d5b88",
      "inference_settings": {
        "model_id": "mistral-ocr-4-1",
        "endpoint": "https://api.mistral.ai/v1/ocr",
        "document_type": "image_url",
        "image_encoding": "RGB PNG base64",
        "image_resize": null,
        "include_blocks": false,
        "include_image_base64": false,
        "table_format": "provider default",
        "extract_header": "provider default",
        "extract_footer": "provider default",
        "prompt": null,
        "thinking": "not exposed by OCR endpoint",
        "output": "raw first-page Markdown",
        "sdk_version": "2.10.0"
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "target_samples": 1000,
      "model_revision": null,
      "warnings": [],
      "runtime_guards": {
        "workers": 8,
        "min_request_interval_seconds": 0.1,
        "request_timeout_seconds": 90,
        "sdk_retries": false,
        "rate_limit_retries": 3,
        "retry_failed_samples": false
      },
      "gpu_memory": null,
      "estimated_cost_usd": 4.0,
      "usage_info": {
        "pages_processed": 1000
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Mistral--mistral-ocr-4-1/line-recognition/danish-typewritten.json"
    },
    {
      "run_id": "mistral_20261001",
      "model_id": "Mistral/mistral-ocr-4-1",
      "sample_set_id": "line-recognition/historical-danish",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "corpus_metrics": {
        "cer": 8.798267142644653,
        "wer": 8.577133728890917
      },
      "batch_size": 1,
      "started_at": "2026-10-01T17:43:21.547231+00:00",
      "finished_at": "2026-10-01T17:51:52.241121+00:00",
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": "29fed7c76150cd09b390459b565d19bf97ba94d46a3ad1de13c77160e28d5b88",
      "inference_settings": {
        "model_id": "mistral-ocr-4-1",
        "endpoint": "https://api.mistral.ai/v1/ocr",
        "document_type": "image_url",
        "image_encoding": "RGB PNG base64",
        "image_resize": null,
        "include_blocks": false,
        "include_image_base64": false,
        "table_format": "provider default",
        "extract_header": "provider default",
        "extract_footer": "provider default",
        "prompt": null,
        "thinking": "not exposed by OCR endpoint",
        "output": "raw first-page Markdown",
        "sdk_version": "2.10.0"
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "target_samples": 1000,
      "model_revision": null,
      "warnings": [],
      "runtime_guards": {
        "workers": 8,
        "min_request_interval_seconds": 0.1,
        "request_timeout_seconds": 90,
        "sdk_retries": false,
        "rate_limit_retries": 3,
        "retry_failed_samples": false
      },
      "gpu_memory": null,
      "estimated_cost_usd": 4.0,
      "usage_info": {
        "pages_processed": 1000
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Mistral--mistral-ocr-4-1/line-recognition/historical-danish.json"
    },
    {
      "run_id": "mistral_20261001",
      "model_id": "Mistral/mistral-ocr-4-1",
      "sample_set_id": "line-recognition/modern-danish",
      "status": "completed",
      "completed_samples": 977,
      "successful_samples": 977,
      "failed_samples": 0,
      "selected_samples": 977,
      "corpus_metrics": {
        "cer": 2.0128387585162755,
        "wer": 2.057350852272727
      },
      "batch_size": 1,
      "started_at": "2026-10-01T17:51:52.248146+00:00",
      "finished_at": "2026-10-01T18:00:08.703398+00:00",
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": "29fed7c76150cd09b390459b565d19bf97ba94d46a3ad1de13c77160e28d5b88",
      "inference_settings": {
        "model_id": "mistral-ocr-4-1",
        "endpoint": "https://api.mistral.ai/v1/ocr",
        "document_type": "image_url",
        "image_encoding": "RGB PNG base64",
        "image_resize": null,
        "include_blocks": false,
        "include_image_base64": false,
        "table_format": "provider default",
        "extract_header": "provider default",
        "extract_footer": "provider default",
        "prompt": null,
        "thinking": "not exposed by OCR endpoint",
        "output": "raw first-page Markdown",
        "sdk_version": "2.10.0"
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "target_samples": 1000,
      "model_revision": null,
      "warnings": [
        "line-crop"
      ],
      "runtime_guards": {
        "workers": 8,
        "min_request_interval_seconds": 0.1,
        "request_timeout_seconds": 90,
        "sdk_retries": false,
        "rate_limit_retries": 3,
        "retry_failed_samples": false
      },
      "gpu_memory": null,
      "estimated_cost_usd": 3.908,
      "usage_info": {
        "pages_processed": 977
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Mistral--mistral-ocr-4-1/line-recognition/modern-danish.json"
    },
    {
      "run_id": "mistral_20261001",
      "model_id": "Mistral/mistral-ocr-4-1",
      "sample_set_id": "line-recognition/norhand",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "corpus_metrics": {
        "cer": 0.5183167509378568,
        "wer": 0.9609532538955087
      },
      "batch_size": 1,
      "started_at": "2026-10-01T18:00:08.710585+00:00",
      "finished_at": "2026-10-01T18:08:41.506658+00:00",
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": "29fed7c76150cd09b390459b565d19bf97ba94d46a3ad1de13c77160e28d5b88",
      "inference_settings": {
        "model_id": "mistral-ocr-4-1",
        "endpoint": "https://api.mistral.ai/v1/ocr",
        "document_type": "image_url",
        "image_encoding": "RGB PNG base64",
        "image_resize": null,
        "include_blocks": false,
        "include_image_base64": false,
        "table_format": "provider default",
        "extract_header": "provider default",
        "extract_footer": "provider default",
        "prompt": null,
        "thinking": "not exposed by OCR endpoint",
        "output": "raw first-page Markdown",
        "sdk_version": "2.10.0"
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "target_samples": 1000,
      "model_revision": null,
      "warnings": [],
      "runtime_guards": {
        "workers": 8,
        "min_request_interval_seconds": 0.1,
        "request_timeout_seconds": 90,
        "sdk_retries": false,
        "rate_limit_retries": 3,
        "retry_failed_samples": false
      },
      "gpu_memory": null,
      "estimated_cost_usd": 4.0,
      "usage_info": {
        "pages_processed": 1000
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Mistral--mistral-ocr-4-1/line-recognition/norhand.json"
    },
    {
      "run_id": "mistral_20261001",
      "model_id": "Mistral/mistral-ocr-4-1",
      "sample_set_id": "line-recognition/riksarkivet-ood",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "corpus_metrics": {
        "cer": 0.960990172907078,
        "wer": 1.641684732115206
      },
      "batch_size": 1,
      "started_at": "2026-10-01T18:08:41.513154+00:00",
      "finished_at": "2026-10-01T18:17:33.363598+00:00",
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": "29fed7c76150cd09b390459b565d19bf97ba94d46a3ad1de13c77160e28d5b88",
      "inference_settings": {
        "model_id": "mistral-ocr-4-1",
        "endpoint": "https://api.mistral.ai/v1/ocr",
        "document_type": "image_url",
        "image_encoding": "RGB PNG base64",
        "image_resize": null,
        "include_blocks": false,
        "include_image_base64": false,
        "table_format": "provider default",
        "extract_header": "provider default",
        "extract_footer": "provider default",
        "prompt": null,
        "thinking": "not exposed by OCR endpoint",
        "output": "raw first-page Markdown",
        "sdk_version": "2.10.0"
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "target_samples": 1000,
      "model_revision": null,
      "warnings": [],
      "runtime_guards": {
        "workers": 8,
        "min_request_interval_seconds": 0.1,
        "request_timeout_seconds": 90,
        "sdk_retries": false,
        "rate_limit_retries": 3,
        "retry_failed_samples": false
      },
      "gpu_memory": null,
      "estimated_cost_usd": 4.0,
      "usage_info": {
        "pages_processed": 1000
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Mistral--mistral-ocr-4-1/line-recognition/riksarkivet-ood.json"
    },
    {
      "run_id": "mistral_20261001",
      "model_id": "Mistral/mistral-ocr-4-1",
      "sample_set_id": "line-recognition/swedish-fraktur",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "corpus_metrics": {
        "cer": 0.0817857469581923,
        "wer": 0.2701704545454545
      },
      "batch_size": 1,
      "started_at": "2026-10-01T18:17:33.370112+00:00",
      "finished_at": "2026-10-01T18:26:21.304143+00:00",
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": "29fed7c76150cd09b390459b565d19bf97ba94d46a3ad1de13c77160e28d5b88",
      "inference_settings": {
        "model_id": "mistral-ocr-4-1",
        "endpoint": "https://api.mistral.ai/v1/ocr",
        "document_type": "image_url",
        "image_encoding": "RGB PNG base64",
        "image_resize": null,
        "include_blocks": false,
        "include_image_base64": false,
        "table_format": "provider default",
        "extract_header": "provider default",
        "extract_footer": "provider default",
        "prompt": null,
        "thinking": "not exposed by OCR endpoint",
        "output": "raw first-page Markdown",
        "sdk_version": "2.10.0"
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "target_samples": 1000,
      "model_revision": null,
      "warnings": [],
      "runtime_guards": {
        "workers": 8,
        "min_request_interval_seconds": 0.1,
        "request_timeout_seconds": 90,
        "sdk_retries": false,
        "rate_limit_retries": 3,
        "retry_failed_samples": false
      },
      "gpu_memory": null,
      "estimated_cost_usd": 4.0,
      "usage_info": {
        "pages_processed": 1000
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Mistral--mistral-ocr-4-1/line-recognition/swedish-fraktur.json"
    },
    {
      "run_id": "gpt61_sol_full_20261002",
      "model_id": "OpenAI/gpt-6.1-sol",
      "sample_set_id": "line-recognition/danish-typewritten",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "corpus_metrics": {
        "cer": 0.00530573543948839,
        "wer": 0.031589985581334384
      },
      "batch_size": 1,
      "started_at": "2026-10-02T07:57:19.879551+00:00",
      "finished_at": "2026-10-02T08:01:39.033694+00:00",
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": "1c8b1e82ee368c62b38682350eb3bfb4d3eff296fcdc1b722cce17163ed42228",
      "inference_settings": {
        "model_id": "gpt-6.1-sol",
        "endpoint": "https://api.openai.com/v1/responses",
        "reasoning": {
          "effort": "low"
        },
        "service_tier": "default",
        "store": false,
        "image_encoding": "RGB PNG base64",
        "image_resize": null,
        "image_detail": "original",
        "prompt_caching": "provider default",
        "per_task_settings": {
          "line-recognition": {
            "model": "gpt-6.1-sol",
            "instructions": "You are an OCR engine. Transcribe the text. Return only the text from the image in a single line.",
            "user_prompt": "Transcribe the text on the image.",
            "detail": "original",
            "reasoning": {
              "effort": "low"
            },
            "max_output_tokens": 8192,
            "service_tier": "default",
            "store": false
          },
          "page-transcription": {
            "model": "gpt-6.1-sol",
            "instructions": "You are an OCR engine. Transcribe all text on the page in natural reading order. Return only the text and preserve line breaks.",
            "user_prompt": "Transcribe all text on this page in natural reading order.",
            "detail": "original",
            "reasoning": {
              "effort": "low"
            },
            "max_output_tokens": 16384,
            "service_tier": "default",
            "store": false
          }
        },
        "sdk_version": "3.8.0"
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "target_samples": 1000,
      "model_revision": null,
      "warnings": [],
      "runtime_guards": {
        "workers": 24,
        "min_request_interval_seconds": 0.25,
        "timeout_seconds": 180,
        "sdk_retries": 0,
        "rate_limit_retries": 5,
        "retry_failed_samples": false
      },
      "gpu_memory": null,
      "estimated_cost_usd": 0.695144,
      "usage_info": {
        "input_tokens": 224737,
        "cached_input_tokens": 0,
        "cache_write_tokens": 0,
        "output_tokens": 24567,
        "reasoning_tokens": 4414
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/OpenAI--gpt-6.1-sol/line-recognition/danish-typewritten.json"
    },
    {
      "run_id": "gpt61_sol_full_20261002",
      "model_id": "OpenAI/gpt-6.1-sol",
      "sample_set_id": "line-recognition/historical-danish",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "corpus_metrics": {
        "cer": 0.40104863900044624,
        "wer": 0.6538110451848471
      },
      "batch_size": 1,
      "started_at": "2026-10-02T08:01:39.042709+00:00",
      "finished_at": "2026-10-02T08:09:23.285240+00:00",
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": "1c8b1e82ee368c62b38682350eb3bfb4d3eff296fcdc1b722cce17163ed42228",
      "inference_settings": {
        "model_id": "gpt-6.1-sol",
        "endpoint": "https://api.openai.com/v1/responses",
        "reasoning": {
          "effort": "low"
        },
        "service_tier": "default",
        "store": false,
        "image_encoding": "RGB PNG base64",
        "image_resize": null,
        "image_detail": "original",
        "prompt_caching": "provider default",
        "per_task_settings": {
          "line-recognition": {
            "model": "gpt-6.1-sol",
            "instructions": "You are an OCR engine. Transcribe the text. Return only the text from the image in a single line.",
            "user_prompt": "Transcribe the text on the image.",
            "detail": "original",
            "reasoning": {
              "effort": "low"
            },
            "max_output_tokens": 8192,
            "service_tier": "default",
            "store": false
          },
          "page-transcription": {
            "model": "gpt-6.1-sol",
            "instructions": "You are an OCR engine. Transcribe all text on the page in natural reading order. Return only the text and preserve line breaks.",
            "user_prompt": "Transcribe all text on this page in natural reading order.",
            "detail": "original",
            "reasoning": {
              "effort": "low"
            },
            "max_output_tokens": 16384,
            "service_tier": "default",
            "store": false
          }
        },
        "sdk_version": "3.8.0"
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "target_samples": 1000,
      "model_revision": null,
      "warnings": [],
      "runtime_guards": {
        "workers": 24,
        "min_request_interval_seconds": 0.25,
        "timeout_seconds": 180,
        "sdk_retries": 0,
        "rate_limit_retries": 5,
        "retry_failed_samples": false
      },
      "gpu_memory": null,
      "estimated_cost_usd": 2.719326,
      "usage_info": {
        "input_tokens": 228908,
        "cached_input_tokens": 0,
        "cache_write_tokens": 0,
        "output_tokens": 226151,
        "reasoning_tokens": 211597
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/OpenAI--gpt-6.1-sol/line-recognition/historical-danish.json"
    },
    {
      "run_id": "gpt61_sol_full_20261002",
      "model_id": "OpenAI/gpt-6.1-sol",
      "sample_set_id": "line-recognition/modern-danish",
      "status": "completed",
      "completed_samples": 977,
      "successful_samples": 977,
      "failed_samples": 0,
      "selected_samples": 977,
      "corpus_metrics": {
        "cer": 0.15488266464799394,
        "wer": 0.27290482954545453
      },
      "batch_size": 1,
      "started_at": "2026-10-02T08:09:23.300759+00:00",
      "finished_at": "2026-10-02T08:14:02.308834+00:00",
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": "1c8b1e82ee368c62b38682350eb3bfb4d3eff296fcdc1b722cce17163ed42228",
      "inference_settings": {
        "model_id": "gpt-6.1-sol",
        "endpoint": "https://api.openai.com/v1/responses",
        "reasoning": {
          "effort": "low"
        },
        "service_tier": "default",
        "store": false,
        "image_encoding": "RGB PNG base64",
        "image_resize": null,
        "image_detail": "original",
        "prompt_caching": "provider default",
        "per_task_settings": {
          "line-recognition": {
            "model": "gpt-6.1-sol",
            "instructions": "You are an OCR engine. Transcribe the text. Return only the text from the image in a single line.",
            "user_prompt": "Transcribe the text on the image.",
            "detail": "original",
            "reasoning": {
              "effort": "low"
            },
            "max_output_tokens": 8192,
            "service_tier": "default",
            "store": false
          },
          "page-transcription": {
            "model": "gpt-6.1-sol",
            "instructions": "You are an OCR engine. Transcribe all text on the page in natural reading order. Return only the text and preserve line breaks.",
            "user_prompt": "Transcribe all text on this page in natural reading order.",
            "detail": "original",
            "reasoning": {
              "effort": "low"
            },
            "max_output_tokens": 16384,
            "service_tier": "default",
            "store": false
          }
        },
        "sdk_version": "3.8.0"
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "target_samples": 1000,
      "model_revision": null,
      "warnings": [
        "line-crop"
      ],
      "runtime_guards": {
        "workers": 24,
        "min_request_interval_seconds": 0.25,
        "timeout_seconds": 180,
        "sdk_retries": 0,
        "rate_limit_retries": 5,
        "retry_failed_samples": false
      },
      "gpu_memory": null,
      "estimated_cost_usd": 1.528094,
      "usage_info": {
        "input_tokens": 231647,
        "cached_input_tokens": 0,
        "cache_write_tokens": 0,
        "output_tokens": 106480,
        "reasoning_tokens": 90797
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/OpenAI--gpt-6.1-sol/line-recognition/modern-danish.json"
    },
    {
      "run_id": "gpt61_sol_full_20261002",
      "model_id": "OpenAI/gpt-6.1-sol",
      "sample_set_id": "line-recognition/norhand",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "corpus_metrics": {
        "cer": 0.25636927091828415,
        "wer": 0.49532538955087074
      },
      "batch_size": 1,
      "started_at": "2026-10-02T08:14:02.321860+00:00",
      "finished_at": "2026-10-02T08:21:20.690722+00:00",
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": "1c8b1e82ee368c62b38682350eb3bfb4d3eff296fcdc1b722cce17163ed42228",
      "inference_settings": {
        "model_id": "gpt-6.1-sol",
        "endpoint": "https://api.openai.com/v1/responses",
        "reasoning": {
          "effort": "low"
        },
        "service_tier": "default",
        "store": false,
        "image_encoding": "RGB PNG base64",
        "image_resize": null,
        "image_detail": "original",
        "prompt_caching": "provider default",
        "per_task_settings": {
          "line-recognition": {
            "model": "gpt-6.1-sol",
            "instructions": "You are an OCR engine. Transcribe the text. Return only the text from the image in a single line.",
            "user_prompt": "Transcribe the text on the image.",
            "detail": "original",
            "reasoning": {
              "effort": "low"
            },
            "max_output_tokens": 8192,
            "service_tier": "default",
            "store": false
          },
          "page-transcription": {
            "model": "gpt-6.1-sol",
            "instructions": "You are an OCR engine. Transcribe all text on the page in natural reading order. Return only the text and preserve line breaks.",
            "user_prompt": "Transcribe all text on this page in natural reading order.",
            "detail": "original",
            "reasoning": {
              "effort": "low"
            },
            "max_output_tokens": 16384,
            "service_tier": "default",
            "store": false
          }
        },
        "sdk_version": "3.8.0"
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "target_samples": 1000,
      "model_revision": null,
      "warnings": [],
      "runtime_guards": {
        "workers": 24,
        "min_request_interval_seconds": 0.25,
        "timeout_seconds": 180,
        "sdk_retries": 0,
        "rate_limit_retries": 5,
        "retry_failed_samples": false
      },
      "gpu_memory": null,
      "estimated_cost_usd": 2.688684,
      "usage_info": {
        "input_tokens": 226772,
        "cached_input_tokens": 0,
        "cache_write_tokens": 0,
        "output_tokens": 223514,
        "reasoning_tokens": 208055
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/OpenAI--gpt-6.1-sol/line-recognition/norhand.json"
    },
    {
      "run_id": "gpt61_sol_full_20261002",
      "model_id": "OpenAI/gpt-6.1-sol",
      "sample_set_id": "line-recognition/riksarkivet-ood",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "corpus_metrics": {
        "cer": 0.4683667122776465,
        "wer": 0.7852276246515949
      },
      "batch_size": 1,
      "started_at": "2026-10-02T08:21:20.703986+00:00",
      "finished_at": "2026-10-02T08:29:17.335115+00:00",
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": "1c8b1e82ee368c62b38682350eb3bfb4d3eff296fcdc1b722cce17163ed42228",
      "inference_settings": {
        "model_id": "gpt-6.1-sol",
        "endpoint": "https://api.openai.com/v1/responses",
        "reasoning": {
          "effort": "low"
        },
        "service_tier": "default",
        "store": false,
        "image_encoding": "RGB PNG base64",
        "image_resize": null,
        "image_detail": "original",
        "prompt_caching": "provider default",
        "per_task_settings": {
          "line-recognition": {
            "model": "gpt-6.1-sol",
            "instructions": "You are an OCR engine. Transcribe the text. Return only the text from the image in a single line.",
            "user_prompt": "Transcribe the text on the image.",
            "detail": "original",
            "reasoning": {
              "effort": "low"
            },
            "max_output_tokens": 8192,
            "service_tier": "default",
            "store": false
          },
          "page-transcription": {
            "model": "gpt-6.1-sol",
            "instructions": "You are an OCR engine. Transcribe all text on the page in natural reading order. Return only the text and preserve line breaks.",
            "user_prompt": "Transcribe all text on this page in natural reading order.",
            "detail": "original",
            "reasoning": {
              "effort": "low"
            },
            "max_output_tokens": 16384,
            "service_tier": "default",
            "store": false
          }
        },
        "sdk_version": "3.8.0"
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "target_samples": 1000,
      "model_revision": null,
      "warnings": [],
      "runtime_guards": {
        "workers": 24,
        "min_request_interval_seconds": 0.25,
        "timeout_seconds": 180,
        "sdk_retries": 0,
        "rate_limit_retries": 5,
        "retry_failed_samples": false
      },
      "gpu_memory": null,
      "estimated_cost_usd": 3.380685,
      "usage_info": {
        "input_tokens": 523255,
        "cached_input_tokens": 0,
        "cache_write_tokens": 17970,
        "output_tokens": 232519,
        "reasoning_tokens": 214171
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/OpenAI--gpt-6.1-sol/line-recognition/riksarkivet-ood.json"
    },
    {
      "run_id": "gpt61_sol_full_20261002",
      "model_id": "OpenAI/gpt-6.1-sol",
      "sample_set_id": "line-recognition/swedish-fraktur",
      "status": "completed",
      "completed_samples": 1000,
      "successful_samples": 1000,
      "failed_samples": 0,
      "selected_samples": 1000,
      "corpus_metrics": {
        "cer": 0.0499954258530784,
        "wer": 0.20923295454545454
      },
      "batch_size": 1,
      "started_at": "2026-10-02T08:29:17.349439+00:00",
      "finished_at": "2026-10-02T08:33:58.096101+00:00",
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": "1c8b1e82ee368c62b38682350eb3bfb4d3eff296fcdc1b722cce17163ed42228",
      "inference_settings": {
        "model_id": "gpt-6.1-sol",
        "endpoint": "https://api.openai.com/v1/responses",
        "reasoning": {
          "effort": "low"
        },
        "service_tier": "default",
        "store": false,
        "image_encoding": "RGB PNG base64",
        "image_resize": null,
        "image_detail": "original",
        "prompt_caching": "provider default",
        "per_task_settings": {
          "line-recognition": {
            "model": "gpt-6.1-sol",
            "instructions": "You are an OCR engine. Transcribe the text. Return only the text from the image in a single line.",
            "user_prompt": "Transcribe the text on the image.",
            "detail": "original",
            "reasoning": {
              "effort": "low"
            },
            "max_output_tokens": 8192,
            "service_tier": "default",
            "store": false
          },
          "page-transcription": {
            "model": "gpt-6.1-sol",
            "instructions": "You are an OCR engine. Transcribe all text on the page in natural reading order. Return only the text and preserve line breaks.",
            "user_prompt": "Transcribe all text on this page in natural reading order.",
            "detail": "original",
            "reasoning": {
              "effort": "low"
            },
            "max_output_tokens": 16384,
            "service_tier": "default",
            "store": false
          }
        },
        "sdk_version": "3.8.0"
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "target_samples": 1000,
      "model_revision": null,
      "warnings": [],
      "runtime_guards": {
        "workers": 24,
        "min_request_interval_seconds": 0.25,
        "timeout_seconds": 180,
        "sdk_retries": 0,
        "rate_limit_retries": 5,
        "retry_failed_samples": false
      },
      "gpu_memory": null,
      "estimated_cost_usd": 1.178262,
      "usage_info": {
        "input_tokens": 106971,
        "cached_input_tokens": 0,
        "cache_write_tokens": 0,
        "output_tokens": 96432,
        "reasoning_tokens": 76472
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/OpenAI--gpt-6.1-sol/line-recognition/swedish-fraktur.json"
    },
    {
      "run_id": "gpt61_sol_full_20261002",
      "model_id": "OpenAI/gpt-6.1-sol",
      "sample_set_id": "page-transcription/historical-danish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 100,
      "failed_samples": 0,
      "selected_samples": 100,
      "corpus_metrics": {
        "cer": 0.17227268190438166,
        "wer": 0.33831716239860027
      },
      "batch_size": 1,
      "started_at": "2026-10-02T08:33:58.106807+00:00",
      "finished_at": "2026-10-02T08:35:56.996999+00:00",
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": "1c8b1e82ee368c62b38682350eb3bfb4d3eff296fcdc1b722cce17163ed42228",
      "inference_settings": {
        "model_id": "gpt-6.1-sol",
        "endpoint": "https://api.openai.com/v1/responses",
        "reasoning": {
          "effort": "low"
        },
        "service_tier": "default",
        "store": false,
        "image_encoding": "RGB PNG base64",
        "image_resize": null,
        "image_detail": "original",
        "prompt_caching": "provider default",
        "per_task_settings": {
          "line-recognition": {
            "model": "gpt-6.1-sol",
            "instructions": "You are an OCR engine. Transcribe the text. Return only the text from the image in a single line.",
            "user_prompt": "Transcribe the text on the image.",
            "detail": "original",
            "reasoning": {
              "effort": "low"
            },
            "max_output_tokens": 8192,
            "service_tier": "default",
            "store": false
          },
          "page-transcription": {
            "model": "gpt-6.1-sol",
            "instructions": "You are an OCR engine. Transcribe all text on the page in natural reading order. Return only the text and preserve line breaks.",
            "user_prompt": "Transcribe all text on this page in natural reading order.",
            "detail": "original",
            "reasoning": {
              "effort": "low"
            },
            "max_output_tokens": 16384,
            "service_tier": "default",
            "store": false
          }
        },
        "sdk_version": "3.8.0"
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "target_samples": 100,
      "model_revision": null,
      "warnings": [],
      "runtime_guards": {
        "workers": 24,
        "min_request_interval_seconds": 0.25,
        "timeout_seconds": 180,
        "sdk_retries": 0,
        "rate_limit_retries": 5,
        "retry_failed_samples": false
      },
      "gpu_memory": null,
      "estimated_cost_usd": 4.2443675,
      "usage_info": {
        "input_tokens": 1518359,
        "cached_input_tokens": 0,
        "cache_write_tokens": 1518059,
        "output_tokens": 44862,
        "reasoning_tokens": 572
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/OpenAI--gpt-6.1-sol/page-transcription/historical-danish.json"
    },
    {
      "run_id": "gpt61_sol_full_20261002",
      "model_id": "OpenAI/gpt-6.1-sol",
      "sample_set_id": "page-transcription/modern-danish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 100,
      "failed_samples": 0,
      "selected_samples": 100,
      "corpus_metrics": {
        "cer": 0.030646459227467813,
        "wer": 0.06839336301092674
      },
      "batch_size": 1,
      "started_at": "2026-10-02T08:35:57.006127+00:00",
      "finished_at": "2026-10-02T08:36:36.951975+00:00",
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": "1c8b1e82ee368c62b38682350eb3bfb4d3eff296fcdc1b722cce17163ed42228",
      "inference_settings": {
        "model_id": "gpt-6.1-sol",
        "endpoint": "https://api.openai.com/v1/responses",
        "reasoning": {
          "effort": "low"
        },
        "service_tier": "default",
        "store": false,
        "image_encoding": "RGB PNG base64",
        "image_resize": null,
        "image_detail": "original",
        "prompt_caching": "provider default",
        "per_task_settings": {
          "line-recognition": {
            "model": "gpt-6.1-sol",
            "instructions": "You are an OCR engine. Transcribe the text. Return only the text from the image in a single line.",
            "user_prompt": "Transcribe the text on the image.",
            "detail": "original",
            "reasoning": {
              "effort": "low"
            },
            "max_output_tokens": 8192,
            "service_tier": "default",
            "store": false
          },
          "page-transcription": {
            "model": "gpt-6.1-sol",
            "instructions": "You are an OCR engine. Transcribe all text on the page in natural reading order. Return only the text and preserve line breaks.",
            "user_prompt": "Transcribe all text on this page in natural reading order.",
            "detail": "original",
            "reasoning": {
              "effort": "low"
            },
            "max_output_tokens": 16384,
            "service_tier": "default",
            "store": false
          }
        },
        "sdk_version": "3.8.0"
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "target_samples": 100,
      "model_revision": null,
      "warnings": [],
      "runtime_guards": {
        "workers": 24,
        "min_request_interval_seconds": 0.25,
        "timeout_seconds": 180,
        "sdk_retries": 0,
        "rate_limit_retries": 5,
        "retry_failed_samples": false
      },
      "gpu_memory": null,
      "estimated_cost_usd": 0.75483,
      "usage_info": {
        "input_tokens": 261680,
        "cached_input_tokens": 0,
        "cache_write_tokens": 261380,
        "output_tokens": 10078,
        "reasoning_tokens": 4970
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/OpenAI--gpt-6.1-sol/page-transcription/modern-danish.json"
    },
    {
      "run_id": "gpt61_sol_full_20261002",
      "model_id": "OpenAI/gpt-6.1-sol",
      "sample_set_id": "page-transcription/nasjonalt-vitenarkiv",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 100,
      "failed_samples": 0,
      "selected_samples": 100,
      "corpus_metrics": {
        "cer": 0.1157176997831345,
        "wer": 0.13970235237638023
      },
      "batch_size": 1,
      "started_at": "2026-10-02T08:36:36.963827+00:00",
      "finished_at": "2026-10-02T08:37:58.474984+00:00",
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": "1c8b1e82ee368c62b38682350eb3bfb4d3eff296fcdc1b722cce17163ed42228",
      "inference_settings": {
        "model_id": "gpt-6.1-sol",
        "endpoint": "https://api.openai.com/v1/responses",
        "reasoning": {
          "effort": "low"
        },
        "service_tier": "default",
        "store": false,
        "image_encoding": "RGB PNG base64",
        "image_resize": null,
        "image_detail": "original",
        "prompt_caching": "provider default",
        "per_task_settings": {
          "line-recognition": {
            "model": "gpt-6.1-sol",
            "instructions": "You are an OCR engine. Transcribe the text. Return only the text from the image in a single line.",
            "user_prompt": "Transcribe the text on the image.",
            "detail": "original",
            "reasoning": {
              "effort": "low"
            },
            "max_output_tokens": 8192,
            "service_tier": "default",
            "store": false
          },
          "page-transcription": {
            "model": "gpt-6.1-sol",
            "instructions": "You are an OCR engine. Transcribe all text on the page in natural reading order. Return only the text and preserve line breaks.",
            "user_prompt": "Transcribe all text on this page in natural reading order.",
            "detail": "original",
            "reasoning": {
              "effort": "low"
            },
            "max_output_tokens": 16384,
            "service_tier": "default",
            "store": false
          }
        },
        "sdk_version": "3.8.0"
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "target_samples": 100,
      "model_revision": null,
      "warnings": [],
      "runtime_guards": {
        "workers": 24,
        "min_request_interval_seconds": 0.25,
        "timeout_seconds": 180,
        "sdk_retries": 0,
        "rate_limit_retries": 5,
        "retry_failed_samples": false
      },
      "gpu_memory": null,
      "estimated_cost_usd": 3.15515,
      "usage_info": {
        "input_tokens": 998920,
        "cached_input_tokens": 0,
        "cache_write_tokens": 998620,
        "output_tokens": 65800,
        "reasoning_tokens": 0
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/OpenAI--gpt-6.1-sol/page-transcription/nasjonalt-vitenarkiv.json"
    },
    {
      "run_id": "gpt61_sol_full_20261002",
      "model_id": "OpenAI/gpt-6.1-sol",
      "sample_set_id": "page-transcription/oj4ocrmt-danish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 100,
      "failed_samples": 0,
      "selected_samples": 100,
      "corpus_metrics": {
        "cer": 0.015439466836929283,
        "wer": 0.03467952581876633
      },
      "batch_size": 1,
      "started_at": "2026-10-02T08:37:58.489697+00:00",
      "finished_at": "2026-10-02T08:39:46.965769+00:00",
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": "1c8b1e82ee368c62b38682350eb3bfb4d3eff296fcdc1b722cce17163ed42228",
      "inference_settings": {
        "model_id": "gpt-6.1-sol",
        "endpoint": "https://api.openai.com/v1/responses",
        "reasoning": {
          "effort": "low"
        },
        "service_tier": "default",
        "store": false,
        "image_encoding": "RGB PNG base64",
        "image_resize": null,
        "image_detail": "original",
        "prompt_caching": "provider default",
        "per_task_settings": {
          "line-recognition": {
            "model": "gpt-6.1-sol",
            "instructions": "You are an OCR engine. Transcribe the text. Return only the text from the image in a single line.",
            "user_prompt": "Transcribe the text on the image.",
            "detail": "original",
            "reasoning": {
              "effort": "low"
            },
            "max_output_tokens": 8192,
            "service_tier": "default",
            "store": false
          },
          "page-transcription": {
            "model": "gpt-6.1-sol",
            "instructions": "You are an OCR engine. Transcribe all text on the page in natural reading order. Return only the text and preserve line breaks.",
            "user_prompt": "Transcribe all text on this page in natural reading order.",
            "detail": "original",
            "reasoning": {
              "effort": "low"
            },
            "max_output_tokens": 16384,
            "service_tier": "default",
            "store": false
          }
        },
        "sdk_version": "3.8.0"
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "target_samples": 100,
      "model_revision": null,
      "warnings": [],
      "runtime_guards": {
        "workers": 24,
        "min_request_interval_seconds": 0.25,
        "timeout_seconds": 180,
        "sdk_retries": 0,
        "rate_limit_retries": 5,
        "retry_failed_samples": false
      },
      "gpu_memory": null,
      "estimated_cost_usd": 3.6763,
      "usage_info": {
        "input_tokens": 1034600,
        "cached_input_tokens": 0,
        "cache_write_tokens": 1034300,
        "output_tokens": 108995,
        "reasoning_tokens": 0
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/OpenAI--gpt-6.1-sol/page-transcription/oj4ocrmt-danish.json"
    },
    {
      "run_id": "gpt61_sol_full_20261002",
      "model_id": "OpenAI/gpt-6.1-sol",
      "sample_set_id": "page-transcription/oj4ocrmt-swedish",
      "status": "completed",
      "completed_samples": 100,
      "successful_samples": 100,
      "failed_samples": 0,
      "selected_samples": 100,
      "corpus_metrics": {
        "cer": 0.013785471906900661,
        "wer": 0.02911695479263047
      },
      "batch_size": 1,
      "started_at": "2026-10-02T08:39:46.977310+00:00",
      "finished_at": "2026-10-02T08:41:31.371207+00:00",
      "code_revision": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "implementation_sha256": "1c8b1e82ee368c62b38682350eb3bfb4d3eff296fcdc1b722cce17163ed42228",
      "inference_settings": {
        "model_id": "gpt-6.1-sol",
        "endpoint": "https://api.openai.com/v1/responses",
        "reasoning": {
          "effort": "low"
        },
        "service_tier": "default",
        "store": false,
        "image_encoding": "RGB PNG base64",
        "image_resize": null,
        "image_detail": "original",
        "prompt_caching": "provider default",
        "per_task_settings": {
          "line-recognition": {
            "model": "gpt-6.1-sol",
            "instructions": "You are an OCR engine. Transcribe the text. Return only the text from the image in a single line.",
            "user_prompt": "Transcribe the text on the image.",
            "detail": "original",
            "reasoning": {
              "effort": "low"
            },
            "max_output_tokens": 8192,
            "service_tier": "default",
            "store": false
          },
          "page-transcription": {
            "model": "gpt-6.1-sol",
            "instructions": "You are an OCR engine. Transcribe all text on the page in natural reading order. Return only the text and preserve line breaks.",
            "user_prompt": "Transcribe all text on this page in natural reading order.",
            "detail": "original",
            "reasoning": {
              "effort": "low"
            },
            "max_output_tokens": 16384,
            "service_tier": "default",
            "store": false
          }
        },
        "sdk_version": "3.8.0"
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "target_samples": 100,
      "model_revision": null,
      "warnings": [],
      "runtime_guards": {
        "workers": 24,
        "min_request_interval_seconds": 0.25,
        "timeout_seconds": 180,
        "sdk_retries": 0,
        "rate_limit_retries": 5,
        "retry_failed_samples": false
      },
      "gpu_memory": null,
      "estimated_cost_usd": 3.65672,
      "usage_info": {
        "input_tokens": 1034600,
        "cached_input_tokens": 0,
        "cache_write_tokens": 1034300,
        "output_tokens": 107037,
        "reasoning_tokens": 0
      },
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/OpenAI--gpt-6.1-sol/page-transcription/oj4ocrmt-swedish.json"
    },
    {
      "run_id": "danish_fraktur_top5_20261104",
      "model_id": "Qwen/Qwen3.5-4B",
      "sample_set_id": "page-transcription/danish-fraktur",
      "status": "completed",
      "completed_samples": 20,
      "selected_samples": 20,
      "target_samples": 20,
      "successful_samples": 20,
      "failed_samples": 0,
      "corpus_metrics": {
        "cer": 0.02243317275904411,
        "wer": 0.10395068646679742
      },
      "batch_size": 1,
      "started_at": "2026-11-04T17:42:59.509396+00:00",
      "finished_at": "2026-11-04T17:48:34.675495+00:00",
      "model_revision": "851bf6e806efd8d0a36b00ddf55e13ccb7b8cd0a",
      "code_revision": "4e0f28836389caa9014af38e5fda4b7a6f980bcb",
      "implementation_sha256": {
        "models/model_registry.py": "4ebf18554c687dcb6b472afef84462abf4ae2574c06063f786624c908f93ffc4",
        "models/model_interface.py": "fa4d3444c33f6c6fd645d4bbabecac86b4a9cc4e9a5caeac9ca0caf295b4d217",
        "models/model_meta.py": "73b139e69d68231e7de96a4709ee476a0c9dec3d01c5f8131e365afb6e7b6f10",
        "models/models_implementations/qwen3_5.py": "3613674187b8a32780047d8ee6129429e68246d2228ad74c1cd9b519760ee4cc",
        "models/models_implementations/glm_ocr.py": "8c908fa159282839d276176f382e0ddc64f379b897a9b8e219570810344ed693",
        "models/models_implementations/gemma4.py": "3b526edcdfadc272742e230f319ba044e248780081f87b0ba1f0f4fae8a8f897",
        "models/models_implementations/qwen2_vl.py": "7d7493216d48c9b6decfbbf5534c25699b1be9fc390370b8ad1ada66e6d4d139",
        "tasks/page_transcription.py": "4d36cc2eec18e29f49fb443c3c6f961c76bd1dc1bc7e6327de75cc9e67b3a76b",
        "tasks/task_interface.py": "bdc907933da33a6919fbc312e4ec2ac99e96cc9bb5bb861257f02ba9911fab35",
        "tasks/task_registry.py": "5845449c4c176343316bb8ddbd8ef981d7e01b7a625d669e10a5dddb135039f3",
        "metrics/metrics.py": "43b3c5bbd4875ef39fe89101c71f17c7140c6a3c16093f2dee2724b120f264ad",
        "reports/evaluation_report.py": "8ad80d6c08dc1131f9e7476f987ae4e3948390768c717ac26cf22ca67ef4ab2a",
        "ocr_datasets/datasets/danish_fraktur.py": "eba304c2d370c716c9e116503c8e53925aebf2e728c0dc47f482e74e6fc19a7b",
        "ocr_datasets/data/danish_fraktur/manifest.jsonl": "b27752b9d18ed2e61fe5d313fbe934754fd83ef31ea5a1635ffec6103ca36cdb",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b",
        "runs/danish_fraktur_top5_20261104/run_benchmark.py": "519a8398df7f1218d380fad2dcc42c92d360380468040b4319e9a50227add9cb",
        "runs/danish_fraktur_top5_20261104/runtime_guards.py": "df7c14c8a3ada8504187352ac79181bcb49588779c9a188e47b8e1374da06cb2",
        "runs/danish_fraktur_top5_20261104/failure_policy.py": "dc0d2ae5934616ae9f5a257475d0ed6a18497a712e5089dcde379131e6a20a61",
        "runs/danish_fraktur_top5_20261104/low_ram_loading.py": "8e69e822ffbc67c82844c805ab789469424ff0adda538fb32dbd4338c2cdcc17",
        "runs/danish_fraktur_top5_20261104/models.json": "946d425671ffe425e51014017531d34b25084c2993db4664cfa089858121dda1"
      },
      "inference_settings": {
        "model_revision": "851bf6e806efd8d0a36b00ddf55e13ccb7b8cd0a",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 4096,
        "do_sample": false,
        "chat_template_options": {
          "enable_thinking": false
        },
        "prompt": "Transcribe all text on this page in natural reading order. Preserve line breaks. Return only the original text, without explanation or translation.",
        "image_options": {
          "size": {
            "longest_edge": 2097152,
            "shortest_edge": 65536
          }
        },
        "image_processor": {
          "size": {
            "longest_edge": 16777216,
            "shortest_edge": 65536
          },
          "patch_size": 16,
          "temporal_patch_size": 2,
          "merge_size": 2,
          "image_mean": [
            0.5,
            0.5,
            0.5
          ],
          "image_std": [
            0.5,
            0.5,
            0.5
          ],
          "image_processor_type": "Qwen2VLImageProcessor",
          "do_convert_rgb": true,
          "do_resize": true,
          "resample": 3,
          "do_rescale": true,
          "rescale_factor": 0.00392156862745098,
          "do_normalize": true
        },
        "eos_token_id": [
          248044,
          248046
        ],
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 9.059,
        "torch_peak_reserved_gib": 9.15
      },
      "warnings": [
        "fraktur-reference-review"
      ],
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen3.5-4B/page-transcription/danish-fraktur.json"
    },
    {
      "run_id": "danish_fraktur_top5_20261104",
      "model_id": "zai-org/GLM-OCR",
      "sample_set_id": "page-transcription/danish-fraktur",
      "status": "completed",
      "completed_samples": 20,
      "selected_samples": 20,
      "target_samples": 20,
      "successful_samples": 20,
      "failed_samples": 0,
      "corpus_metrics": {
        "cer": 0.06706337961651082,
        "wer": 0.2841131969739423
      },
      "batch_size": 1,
      "started_at": "2026-11-04T17:36:33.462041+00:00",
      "finished_at": "2026-11-04T17:39:21.112928+00:00",
      "model_revision": "2e85a62840ccac27daa451df36c736c4636b8628",
      "code_revision": "4e0f28836389caa9014af38e5fda4b7a6f980bcb",
      "implementation_sha256": {
        "models/model_registry.py": "4ebf18554c687dcb6b472afef84462abf4ae2574c06063f786624c908f93ffc4",
        "models/model_interface.py": "fa4d3444c33f6c6fd645d4bbabecac86b4a9cc4e9a5caeac9ca0caf295b4d217",
        "models/model_meta.py": "73b139e69d68231e7de96a4709ee476a0c9dec3d01c5f8131e365afb6e7b6f10",
        "models/models_implementations/qwen3_5.py": "3613674187b8a32780047d8ee6129429e68246d2228ad74c1cd9b519760ee4cc",
        "models/models_implementations/glm_ocr.py": "8c908fa159282839d276176f382e0ddc64f379b897a9b8e219570810344ed693",
        "models/models_implementations/gemma4.py": "3b526edcdfadc272742e230f319ba044e248780081f87b0ba1f0f4fae8a8f897",
        "models/models_implementations/qwen2_vl.py": "7d7493216d48c9b6decfbbf5534c25699b1be9fc390370b8ad1ada66e6d4d139",
        "tasks/page_transcription.py": "4d36cc2eec18e29f49fb443c3c6f961c76bd1dc1bc7e6327de75cc9e67b3a76b",
        "tasks/task_interface.py": "bdc907933da33a6919fbc312e4ec2ac99e96cc9bb5bb861257f02ba9911fab35",
        "tasks/task_registry.py": "5845449c4c176343316bb8ddbd8ef981d7e01b7a625d669e10a5dddb135039f3",
        "metrics/metrics.py": "43b3c5bbd4875ef39fe89101c71f17c7140c6a3c16093f2dee2724b120f264ad",
        "reports/evaluation_report.py": "8ad80d6c08dc1131f9e7476f987ae4e3948390768c717ac26cf22ca67ef4ab2a",
        "ocr_datasets/datasets/danish_fraktur.py": "eba304c2d370c716c9e116503c8e53925aebf2e728c0dc47f482e74e6fc19a7b",
        "ocr_datasets/data/danish_fraktur/manifest.jsonl": "b27752b9d18ed2e61fe5d313fbe934754fd83ef31ea5a1635ffec6103ca36cdb",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b",
        "runs/danish_fraktur_top5_20261104/run_benchmark.py": "519a8398df7f1218d380fad2dcc42c92d360380468040b4319e9a50227add9cb",
        "runs/danish_fraktur_top5_20261104/runtime_guards.py": "df7c14c8a3ada8504187352ac79181bcb49588779c9a188e47b8e1374da06cb2",
        "runs/danish_fraktur_top5_20261104/failure_policy.py": "dc0d2ae5934616ae9f5a257475d0ed6a18497a712e5089dcde379131e6a20a61",
        "runs/danish_fraktur_top5_20261104/low_ram_loading.py": "8e69e822ffbc67c82844c805ab789469424ff0adda538fb32dbd4338c2cdcc17",
        "runs/danish_fraktur_top5_20261104/models.json": "946d425671ffe425e51014017531d34b25084c2993db4664cfa089858121dda1"
      },
      "inference_settings": {
        "model_revision": "2e85a62840ccac27daa451df36c736c4636b8628",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 8192,
        "do_sample": false,
        "prompt": "Text Recognition:",
        "image_processor": {
          "do_convert_rgb": true,
          "do_normalize": true,
          "do_rescale": true,
          "do_resize": true,
          "image_mean": [
            0.48145466,
            0.4578275,
            0.40821073
          ],
          "image_processor_type": "Glm46VImageProcessor",
          "image_std": [
            0.26862954,
            0.26130258,
            0.27577711
          ],
          "merge_size": 2,
          "patch_size": 14,
          "resample": 3,
          "rescale_factor": 0.00392156862745098,
          "size": {
            "longest_edge": 9633792,
            "shortest_edge": 12544
          },
          "temporal_patch_size": 2
        },
        "eos_token_id": [
          59246,
          59253
        ],
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 2.813,
        "torch_peak_reserved_gib": 3.055
      },
      "warnings": [
        "fraktur-reference-review"
      ],
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/zai-org--GLM-OCR/page-transcription/danish-fraktur.json"
    },
    {
      "run_id": "danish_fraktur_top5_20261104",
      "model_id": "Qwen/Qwen3.5-2B",
      "sample_set_id": "page-transcription/danish-fraktur",
      "status": "completed",
      "completed_samples": 20,
      "selected_samples": 20,
      "target_samples": 20,
      "successful_samples": 20,
      "failed_samples": 0,
      "corpus_metrics": {
        "cer": 0.02299990554453575,
        "wer": 0.10647240123283833
      },
      "batch_size": 1,
      "started_at": "2026-11-04T17:49:13.065331+00:00",
      "finished_at": "2026-11-04T17:53:20.653359+00:00",
      "model_revision": "15852e8c16360a2fea060d615a32b45270f8a8fc",
      "code_revision": "4e0f28836389caa9014af38e5fda4b7a6f980bcb",
      "implementation_sha256": {
        "models/model_registry.py": "4ebf18554c687dcb6b472afef84462abf4ae2574c06063f786624c908f93ffc4",
        "models/model_interface.py": "fa4d3444c33f6c6fd645d4bbabecac86b4a9cc4e9a5caeac9ca0caf295b4d217",
        "models/model_meta.py": "73b139e69d68231e7de96a4709ee476a0c9dec3d01c5f8131e365afb6e7b6f10",
        "models/models_implementations/qwen3_5.py": "3613674187b8a32780047d8ee6129429e68246d2228ad74c1cd9b519760ee4cc",
        "models/models_implementations/glm_ocr.py": "8c908fa159282839d276176f382e0ddc64f379b897a9b8e219570810344ed693",
        "models/models_implementations/gemma4.py": "3b526edcdfadc272742e230f319ba044e248780081f87b0ba1f0f4fae8a8f897",
        "models/models_implementations/qwen2_vl.py": "7d7493216d48c9b6decfbbf5534c25699b1be9fc390370b8ad1ada66e6d4d139",
        "tasks/page_transcription.py": "4d36cc2eec18e29f49fb443c3c6f961c76bd1dc1bc7e6327de75cc9e67b3a76b",
        "tasks/task_interface.py": "bdc907933da33a6919fbc312e4ec2ac99e96cc9bb5bb861257f02ba9911fab35",
        "tasks/task_registry.py": "5845449c4c176343316bb8ddbd8ef981d7e01b7a625d669e10a5dddb135039f3",
        "metrics/metrics.py": "43b3c5bbd4875ef39fe89101c71f17c7140c6a3c16093f2dee2724b120f264ad",
        "reports/evaluation_report.py": "8ad80d6c08dc1131f9e7476f987ae4e3948390768c717ac26cf22ca67ef4ab2a",
        "ocr_datasets/datasets/danish_fraktur.py": "eba304c2d370c716c9e116503c8e53925aebf2e728c0dc47f482e74e6fc19a7b",
        "ocr_datasets/data/danish_fraktur/manifest.jsonl": "b27752b9d18ed2e61fe5d313fbe934754fd83ef31ea5a1635ffec6103ca36cdb",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b",
        "runs/danish_fraktur_top5_20261104/run_benchmark.py": "519a8398df7f1218d380fad2dcc42c92d360380468040b4319e9a50227add9cb",
        "runs/danish_fraktur_top5_20261104/runtime_guards.py": "df7c14c8a3ada8504187352ac79181bcb49588779c9a188e47b8e1374da06cb2",
        "runs/danish_fraktur_top5_20261104/failure_policy.py": "dc0d2ae5934616ae9f5a257475d0ed6a18497a712e5089dcde379131e6a20a61",
        "runs/danish_fraktur_top5_20261104/low_ram_loading.py": "8e69e822ffbc67c82844c805ab789469424ff0adda538fb32dbd4338c2cdcc17",
        "runs/danish_fraktur_top5_20261104/models.json": "946d425671ffe425e51014017531d34b25084c2993db4664cfa089858121dda1"
      },
      "inference_settings": {
        "model_revision": "15852e8c16360a2fea060d615a32b45270f8a8fc",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 4096,
        "do_sample": false,
        "chat_template_options": {
          "enable_thinking": false
        },
        "prompt": "Transcribe all text on this page in natural reading order. Preserve line breaks. Return only the original text, without explanation or translation.",
        "image_options": {
          "size": {
            "longest_edge": 2097152,
            "shortest_edge": 65536
          }
        },
        "image_processor": {
          "size": {
            "longest_edge": 16777216,
            "shortest_edge": 65536
          },
          "patch_size": 16,
          "temporal_patch_size": 2,
          "merge_size": 2,
          "image_mean": [
            0.5,
            0.5,
            0.5
          ],
          "image_std": [
            0.5,
            0.5,
            0.5
          ],
          "image_processor_type": "Qwen2VLImageProcessor",
          "do_convert_rgb": true,
          "do_resize": true,
          "resample": 3,
          "do_rescale": true,
          "rescale_factor": 0.00392156862745098,
          "do_normalize": true
        },
        "eos_token_id": [
          248044,
          248046
        ],
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 4.442,
        "torch_peak_reserved_gib": 4.502
      },
      "warnings": [
        "fraktur-reference-review"
      ],
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen3.5-2B/page-transcription/danish-fraktur.json"
    },
    {
      "run_id": "danish_fraktur_top5_20261104",
      "model_id": "google/gemma-4-E4B-it",
      "sample_set_id": "page-transcription/danish-fraktur",
      "status": "completed",
      "completed_samples": 20,
      "selected_samples": 20,
      "target_samples": 20,
      "successful_samples": 20,
      "failed_samples": 0,
      "corpus_metrics": {
        "cer": 0.02521960895437801,
        "wer": 0.10927430652843934
      },
      "batch_size": 1,
      "started_at": "2026-11-04T18:16:16.099271+00:00",
      "finished_at": "2026-11-04T18:23:38.827075+00:00",
      "model_revision": "ee0ef6023621cff504d758262d4e04895a5af4a2",
      "code_revision": "4e0f28836389caa9014af38e5fda4b7a6f980bcb",
      "implementation_sha256": {
        "models/model_registry.py": "4ebf18554c687dcb6b472afef84462abf4ae2574c06063f786624c908f93ffc4",
        "models/model_interface.py": "fa4d3444c33f6c6fd645d4bbabecac86b4a9cc4e9a5caeac9ca0caf295b4d217",
        "models/model_meta.py": "73b139e69d68231e7de96a4709ee476a0c9dec3d01c5f8131e365afb6e7b6f10",
        "models/models_implementations/qwen3_5.py": "3613674187b8a32780047d8ee6129429e68246d2228ad74c1cd9b519760ee4cc",
        "models/models_implementations/glm_ocr.py": "8c908fa159282839d276176f382e0ddc64f379b897a9b8e219570810344ed693",
        "models/models_implementations/gemma4.py": "3b526edcdfadc272742e230f319ba044e248780081f87b0ba1f0f4fae8a8f897",
        "models/models_implementations/qwen2_vl.py": "7d7493216d48c9b6decfbbf5534c25699b1be9fc390370b8ad1ada66e6d4d139",
        "tasks/page_transcription.py": "4d36cc2eec18e29f49fb443c3c6f961c76bd1dc1bc7e6327de75cc9e67b3a76b",
        "tasks/task_interface.py": "bdc907933da33a6919fbc312e4ec2ac99e96cc9bb5bb861257f02ba9911fab35",
        "tasks/task_registry.py": "5845449c4c176343316bb8ddbd8ef981d7e01b7a625d669e10a5dddb135039f3",
        "metrics/metrics.py": "43b3c5bbd4875ef39fe89101c71f17c7140c6a3c16093f2dee2724b120f264ad",
        "reports/evaluation_report.py": "8ad80d6c08dc1131f9e7476f987ae4e3948390768c717ac26cf22ca67ef4ab2a",
        "ocr_datasets/datasets/danish_fraktur.py": "eba304c2d370c716c9e116503c8e53925aebf2e728c0dc47f482e74e6fc19a7b",
        "ocr_datasets/data/danish_fraktur/manifest.jsonl": "b27752b9d18ed2e61fe5d313fbe934754fd83ef31ea5a1635ffec6103ca36cdb",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b",
        "runs/danish_fraktur_top5_20261104/run_benchmark.py": "519a8398df7f1218d380fad2dcc42c92d360380468040b4319e9a50227add9cb",
        "runs/danish_fraktur_top5_20261104/runtime_guards.py": "df7c14c8a3ada8504187352ac79181bcb49588779c9a188e47b8e1374da06cb2",
        "runs/danish_fraktur_top5_20261104/failure_policy.py": "dc0d2ae5934616ae9f5a257475d0ed6a18497a712e5089dcde379131e6a20a61",
        "runs/danish_fraktur_top5_20261104/low_ram_loading.py": "8e69e822ffbc67c82844c805ab789469424ff0adda538fb32dbd4338c2cdcc17",
        "runs/danish_fraktur_top5_20261104/models.json": "946d425671ffe425e51014017531d34b25084c2993db4664cfa089858121dda1"
      },
      "inference_settings": {
        "model_revision": "ee0ef6023621cff504d758262d4e04895a5af4a2",
        "dtype": "torch.bfloat16",
        "attention_implementation": "sdpa",
        "max_new_tokens": 4096,
        "do_sample": false,
        "chat_template_options": {
          "enable_thinking": false
        },
        "prompt": "Transcribe all text on this page in natural reading order. Preserve line breaks. Return only the original text, without explanation or translation.",
        "image_options": {
          "max_soft_tokens": 1120
        },
        "image_processor": {
          "do_convert_rgb": true,
          "do_normalize": false,
          "do_rescale": true,
          "do_resize": true,
          "image_mean": [
            0.0,
            0.0,
            0.0
          ],
          "image_processor_type": "Gemma4ImageProcessor",
          "image_seq_length": 280,
          "image_std": [
            1.0,
            1.0,
            1.0
          ],
          "max_soft_tokens": 280,
          "patch_size": 16,
          "pooling_kernel_size": 3,
          "resample": 3,
          "rescale_factor": 0.00392156862745098
        },
        "eos_token_id": [
          1,
          106,
          50
        ],
        "postprocessing": "none"
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false,
          "tensor_chunk_bytes": 67108864,
          "tensor_chunk_axis": 0,
          "tensor_chunk_source": "file_readinto"
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 15.237,
        "torch_peak_reserved_gib": 15.352
      },
      "warnings": [
        "fraktur-reference-review"
      ],
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/google--gemma-4-E4B-it/page-transcription/danish-fraktur.json"
    },
    {
      "run_id": "danish_fraktur_top5_20261104",
      "model_id": "Qwen/Qwen2-VL-7B-Instruct",
      "sample_set_id": "page-transcription/danish-fraktur",
      "status": "completed",
      "completed_samples": 20,
      "selected_samples": 20,
      "target_samples": 20,
      "successful_samples": 20,
      "failed_samples": 0,
      "corpus_metrics": {
        "cer": 0.032964957022763766,
        "wer": 0.14317736060521155
      },
      "batch_size": 1,
      "started_at": "2026-11-04T18:42:18.777154+00:00",
      "finished_at": "2026-11-04T18:47:08.086574+00:00",
      "model_revision": "eed13092ef92e448dd6875b2a00151bd3f7db0ac",
      "code_revision": "4e0f28836389caa9014af38e5fda4b7a6f980bcb",
      "implementation_sha256": {
        "models/model_registry.py": "4ebf18554c687dcb6b472afef84462abf4ae2574c06063f786624c908f93ffc4",
        "models/model_interface.py": "fa4d3444c33f6c6fd645d4bbabecac86b4a9cc4e9a5caeac9ca0caf295b4d217",
        "models/model_meta.py": "73b139e69d68231e7de96a4709ee476a0c9dec3d01c5f8131e365afb6e7b6f10",
        "models/models_implementations/qwen3_5.py": "3613674187b8a32780047d8ee6129429e68246d2228ad74c1cd9b519760ee4cc",
        "models/models_implementations/glm_ocr.py": "8c908fa159282839d276176f382e0ddc64f379b897a9b8e219570810344ed693",
        "models/models_implementations/gemma4.py": "3b526edcdfadc272742e230f319ba044e248780081f87b0ba1f0f4fae8a8f897",
        "models/models_implementations/qwen2_vl.py": "7d7493216d48c9b6decfbbf5534c25699b1be9fc390370b8ad1ada66e6d4d139",
        "tasks/page_transcription.py": "4d36cc2eec18e29f49fb443c3c6f961c76bd1dc1bc7e6327de75cc9e67b3a76b",
        "tasks/task_interface.py": "bdc907933da33a6919fbc312e4ec2ac99e96cc9bb5bb861257f02ba9911fab35",
        "tasks/task_registry.py": "5845449c4c176343316bb8ddbd8ef981d7e01b7a625d669e10a5dddb135039f3",
        "metrics/metrics.py": "43b3c5bbd4875ef39fe89101c71f17c7140c6a3c16093f2dee2724b120f264ad",
        "reports/evaluation_report.py": "8ad80d6c08dc1131f9e7476f987ae4e3948390768c717ac26cf22ca67ef4ab2a",
        "ocr_datasets/datasets/danish_fraktur.py": "eba304c2d370c716c9e116503c8e53925aebf2e728c0dc47f482e74e6fc19a7b",
        "ocr_datasets/data/danish_fraktur/manifest.jsonl": "b27752b9d18ed2e61fe5d313fbe934754fd83ef31ea5a1635ffec6103ca36cdb",
        "pyproject.toml": "237b8473f5acb77e1566eb7eaeb3ac328170051336d319cfdca3b873daa549ed",
        "uv.lock": "bd1cf0e1dd6ad2e12cfc15ad199db382ffa54db5e8dac183c282ff7d0261f93b",
        "runs/danish_fraktur_top5_20261104/run_benchmark.py": "519a8398df7f1218d380fad2dcc42c92d360380468040b4319e9a50227add9cb",
        "runs/danish_fraktur_top5_20261104/runtime_guards.py": "df7c14c8a3ada8504187352ac79181bcb49588779c9a188e47b8e1374da06cb2",
        "runs/danish_fraktur_top5_20261104/failure_policy.py": "dc0d2ae5934616ae9f5a257475d0ed6a18497a712e5089dcde379131e6a20a61",
        "runs/danish_fraktur_top5_20261104/low_ram_loading.py": "8e69e822ffbc67c82844c805ab789469424ff0adda538fb32dbd4338c2cdcc17",
        "runs/danish_fraktur_top5_20261104/models.json": "946d425671ffe425e51014017531d34b25084c2993db4664cfa089858121dda1"
      },
      "inference_settings": {
        "max_pixels": 3211264,
        "min_pixels": 3136,
        "image_patch_size": 14,
        "max_new_tokens": 4096,
        "do_sample": false,
        "dtype": "torch.bfloat16",
        "model_revision": "eed13092ef92e448dd6875b2a00151bd3f7db0ac",
        "system_prompt": "You are an OCR engine. Transcribe all text on the page in natural reading order. Return ONLY the text from the image. Preserve line breaks. Do not include coordinates, bounding boxes, labels, or explanations.",
        "user_prompt": "Transcribe all text on this page in natural reading order. Preserve line breaks and output text only."
      },
      "runtime_guards": {
        "generation_seconds": 180,
        "stall_seconds": 300,
        "min_available_ram_gib": 3,
        "load_headroom_gib": 7,
        "empty_cuda_cache_after_page": true,
        "weight_loading": {
          "safetensors_backend": "pread",
          "async_loading": false
        }
      },
      "failure_policy": {
        "version": "empty_prediction_v1",
        "failed_prediction": "",
        "corpus_denominator": "all_selected_references",
        "retry_failed_samples": false,
        "completion": "all_selected_samples_have_an_attempt_record"
      },
      "gpu_memory": {
        "device": "NVIDIA GeForce RTX 3090",
        "total_gib": 24.0,
        "torch_peak_allocated_gib": 16.679,
        "torch_peak_reserved_gib": 16.992
      },
      "warnings": [
        "fraktur-reference-review"
      ],
      "public_report_url": "https://github.com/V4ldeSalnikov/resultsScandiOCReval/blob/main/reports/Qwen--Qwen2-VL-7B-Instruct/page-transcription/danish-fraktur.json"
    }
  ],
  "warnings": [
    {
      "id": "mvp-incomplete",
      "message": "This MVP run is incomplete. Compare completed results on the same frozen datasets, not averages over different completed subsets."
    },
    {
      "id": "repetition",
      "message": "Repeated generated text was observed. Scores retain these errors; the cause is not yet established, so comparisons remain provisional."
    },
    {
      "id": "pdf-reference",
      "message": "References were extracted from source PDFs, not independently transcribed by humans; extraction and reading-order errors can affect scores."
    },
    {
      "id": "source-train-split",
      "message": "Samples come from the source dataset's train split; this is not an official held-out test split. This alone does not establish model training overlap."
    },
    {
      "id": "in-domain",
      "message": "This model was fine-tuned on the NorHand dataset family. Interpret this pairing as in-domain, not an out-of-domain result."
    },
    {
      "id": "line-crop",
      "message": "A small inspection of modern Danish line crops found neighboring-line text inside some rectangular crops. This can contribute insertion errors; every model used the same frozen images."
    },
    {
      "id": "fraktur-reference-review",
      "message": "Danish Fraktur is a complete 20-page task in the Danish and Scandinavian benchmarks. References have Wikisource validation and an additional AI scan review, not an independent human audit. Initial models were selected by Swedish Fraktur line CER; Danish inputs are whole pages. The completed 1.0.0 release preserves every reference and image; saved evaluations retain their original source revision identifiers."
    }
  ],
  "source_runs": [
    {
      "id": "mvp_20260917",
      "git_commit": "e47e83f4fc4555ca046684e3178576e5b340aa07",
      "seed": 20260917,
      "targets": {
        "line-recognition": 1000,
        "page-transcription": 100
      },
      "excluded_model_count": 16,
      "metric_policy": "Corpus CER/WER fractions; lower is better and values may exceed 1. Failed attempts are empty predictions scored against all selected references and are not retried. Complete means every selected sample was attempted, not that every prediction succeeded. Text is NFC-normalized and whitespace-collapsed; case and punctuation are preserved. Page metrics do not score layout structure.",
      "counts": {
        "models": 13,
        "datasets": 9,
        "sample_sets": 11,
        "jobs": 123,
        "completed": 123,
        "running": 0,
        "pending": 0,
        "failed": 0,
        "blocked": 0,
        "recorded_samples": 82201,
        "successful_samples": 81754,
        "failed_samples": 447
      },
      "warnings": []
    },
    {
      "id": "new_models_20260919",
      "git_commit": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "seed": 20260917,
      "targets": {
        "line-recognition": 1000,
        "page-transcription": 100
      },
      "excluded_model_count": 22,
      "metric_policy": "Corpus CER/WER fractions; lower is better and values may exceed 1. Failed attempts are empty predictions scored against all selected references and are not retried. Complete means every selected sample was attempted, not that every prediction succeeded. Text is NFC-normalized and whitespace-collapsed; case and punctuation are preserved. Page metrics do not score layout structure.",
      "counts": {
        "models": 7,
        "datasets": 9,
        "sample_sets": 11,
        "jobs": 77,
        "completed": 77,
        "running": 0,
        "pending": 0,
        "failed": 0,
        "blocked": 0,
        "recorded_samples": 45339,
        "successful_samples": 44271,
        "failed_samples": 1068
      },
      "warnings": []
    },
    {
      "id": "mistral_20261001",
      "git_commit": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "seed": 20260917,
      "targets": {
        "line-recognition": 1000,
        "page-transcription": 100
      },
      "metric_policy": "Corpus CER/WER fractions; lower is better and values may exceed 1. Failed attempts are empty predictions scored against all selected references and are not retried. Complete means every selected sample was attempted, not that every prediction succeeded. Text is NFC-normalized and whitespace-collapsed; case and punctuation are preserved. Page metrics do not score layout structure.",
      "warnings": [],
      "counts": {
        "models": 1,
        "datasets": 9,
        "sample_sets": 11,
        "jobs": 11,
        "completed": 11,
        "running": 0,
        "pending": 0,
        "failed": 0,
        "blocked": 0,
        "successful_samples": 6477,
        "failed_samples": 0,
        "recorded_samples": 6477
      },
      "estimated_cost_usd": 25.908
    },
    {
      "id": "gpt61_sol_full_20261002",
      "git_commit": "19cb4597093fdebe339cfe66d40e0c68f8f23d35",
      "seed": 20260917,
      "targets": {
        "line-recognition": 1000,
        "page-transcription": 100
      },
      "metric_policy": "Corpus CER/WER fractions; lower is better and values may exceed 1. Failed attempts are empty predictions scored against all selected references and are not retried. Complete means every selected sample was attempted, not that every prediction succeeded. Text is NFC-normalized and whitespace-collapsed; case and punctuation are preserved. Page metrics do not score layout structure.",
      "warnings": [],
      "counts": {
        "models": 1,
        "datasets": 9,
        "sample_sets": 11,
        "jobs": 11,
        "completed": 11,
        "running": 0,
        "pending": 0,
        "failed": 0,
        "blocked": 0,
        "successful_samples": 6477,
        "failed_samples": 0,
        "recorded_samples": 6477
      },
      "estimated_cost_usd": 27.6775625
    },
    {
      "id": "danish_fraktur_top5_20261104",
      "git_commit": "4e0f28836389caa9014af38e5fda4b7a6f980bcb",
      "seed": null,
      "targets": {
        "page-transcription": 20
      },
      "metric_policy": "Corpus CER/WER fractions; lower is better and values may exceed 1. Failed attempts are empty predictions scored against all selected references and are not retried. Complete means every selected sample was attempted, not that every prediction succeeded. Text is NFC-normalized and whitespace-collapsed; case and punctuation are preserved. Page metrics do not score layout structure.",
      "warnings": [
        "fraktur-reference-review"
      ],
      "counts": {
        "models": 5,
        "datasets": 1,
        "sample_sets": 1,
        "jobs": 5,
        "completed": 5,
        "running": 0,
        "pending": 0,
        "failed": 0,
        "blocked": 0,
        "successful_samples": 100,
        "failed_samples": 0,
        "recorded_samples": 100
      },
      "model_selection": [
        {
          "rank": 1,
          "model": "Qwen/Qwen3.5-4B",
          "license": "Apache-2.0",
          "swedish_cer": 0.061224956545604246,
          "swedish_wer": 0.2512784090909091,
          "model_revision": "851bf6e806efd8d0a36b00ddf55e13ccb7b8cd0a",
          "selection_report_sha256": "492ceb0a85aaea0366624d0fdc0f4d81ca3553fc62a9e011d1baae86643b4ed9"
        },
        {
          "rank": 2,
          "model": "zai-org/GLM-OCR",
          "license": "MIT",
          "swedish_cer": 0.0655703961211234,
          "swedish_wer": 0.25696022727272727,
          "model_revision": "2e85a62840ccac27daa451df36c736c4636b8628",
          "selection_report_sha256": "d8a5a256e89a4b973c95d90d59d9b09d40f47d2ba1677ed54d0ab2d1c5322e09"
        },
        {
          "rank": 3,
          "model": "Qwen/Qwen3.5-2B",
          "license": "Apache-2.0",
          "swedish_cer": 0.06595919860945934,
          "swedish_wer": 0.2703125,
          "model_revision": "15852e8c16360a2fea060d615a32b45270f8a8fc",
          "selection_report_sha256": "6ec6b723d06cf3b7642ab19b38f985554a0e46b80cac102fd8df5c0f83cf58f1"
        },
        {
          "rank": 4,
          "model": "google/gemma-4-E4B-it",
          "license": "Apache-2.0",
          "swedish_cer": 0.06721708901289909,
          "swedish_wer": 0.2636363636363636,
          "model_revision": "ee0ef6023621cff504d758262d4e04895a5af4a2",
          "selection_report_sha256": "1de8e850bee733069ff56f2d4d2e9231414f0c861e66ddafe8ddf172e98b9491"
        },
        {
          "rank": 5,
          "model": "Qwen/Qwen2-VL-7B-Instruct",
          "license": "Apache-2.0",
          "swedish_cer": 0.0708306650809624,
          "swedish_wer": 0.27372159090909093,
          "model_revision": "eed13092ef92e448dd6875b2a00151bd3f7db0ac",
          "selection_report_sha256": "c1f8390576ee6358f37fd8b6dc76119415358d0a62fd0abf8471a38374a9f3f7"
        }
      ],
      "selection_method": "Lowest corpus CER among open models in the saved Swedish Fraktur reports; openness checked against website/src/data/ocr-openness.ts",
      "task_note": "Selection uses Swedish cropped-line recognition; Danish evaluation uses full-page transcription. Scores describe different datasets and tasks."
    }
  ]
}
