{ "model": "microsoft/trocr-small-handwritten", "date": "2026-07-29", "architecture": "encoder-decoder", "role": "accuracy_reference_not_for_release", "seed": 42, "notes": "Encoder-decoder accuracy reference for the CER-gap comparison; CTC remains the release artifact.", "hf_revision": "b4648cfa171985a6745f37ddd637e98c0da958ac", "parameter_count": 61596672, "processor_load_seconds": 3.2194992679997085, "model_load_seconds": 1.1561599249998835, "train_seconds": 681.4541459979973, "best_epoch": 12, "best_val_cer": 0.11095395253811095, "test_cer": 0.11507950752001149, "test_wer": 0.3416644509438979, "test_cer_ci95": [ 0.10609754239875374, 0.12452546445905048 ], "test_wer_ci95": [ 0.3234093074471375, 0.3607701922432293 ], "n_test_lines": 601, "checkpoint": "checkpoints/m2/trocr-small-reference/best", "config": { "model_id": "microsoft/trocr-small-handwritten", "architecture": "encoder-decoder", "role": "accuracy_reference_not_for_release", "role_ref": "encoder-decoder CER gap", "split_manifest": "data/split_manifest.json", "seed": 42, "epochs": 12, "batch_size": 12, "workers": 8, "lr": 5e-05, "patience": 3, "max_label_length": 128, "grad_clip_norm": 1.0, "optimizer": "AdamW", "scheduler": "CosineAnnealingLR", "amp": { "enabled": true, "dtype": "bfloat16" }, "train_data": "real_only", "synthetic_ratio": 0.0, "early_stopped": false, "resumed": false }, "generation": { "max_new_tokens": 128, "num_beams": 1, "do_sample": false, "decoding": "deterministic_greedy" }, "environment": { "python": "3.12.3", "platform": "Linux-6.8.0-134-generic-x86_64-with-glibc2.39", "torch": "2.11.0+cu128", "transformers": "5.14.1", "device": "cuda", "cuda_available": true, "cudnn_enabled": true, "cudnn_version": 91900, "cuda_device_name": "NVIDIA RTX A5000", "cuda_device_count": 1 }, "epoch_history": [ { "epoch": 1, "train_loss": 4.4270035982131954, "val_cer": 0.26995913877101996, "val_wer": 0.5919075144508671, "lr": 4.914814565722671e-05, "epoch_seconds": 60.28538311400007 }, { "epoch": 2, "train_loss": 1.558124960385836, "val_cer": 0.21004243281471005, "val_wer": 0.4979768786127168, "lr": 4.665063509461098e-05, "epoch_seconds": 57.15164858999924 }, { "epoch": 3, "train_loss": 1.1930473674566318, "val_cer": 0.20524909633820526, "val_wer": 0.49942196531791905, "lr": 4.267766952966369e-05, "epoch_seconds": 55.6579075919999 }, { "epoch": 4, "train_loss": 0.9639835356137691, "val_cer": 0.15833726229765835, "val_wer": 0.4184971098265896, "lr": 3.7500000000000003e-05, "epoch_seconds": 57.48923320799986 }, { "epoch": 5, "train_loss": 0.7886032088444783, "val_cer": 0.15047933364765048, "val_wer": 0.4028901734104046, "lr": 3.1470476127563024e-05, "epoch_seconds": 57.11078792199987 }, { "epoch": 6, "train_loss": 0.614951229095459, "val_cer": 0.14112839855414114, "val_wer": 0.38497109826589593, "lr": 2.5000000000000005e-05, "epoch_seconds": 57.38486632099921 }, { "epoch": 7, "train_loss": 0.48801431422814345, "val_cer": 0.1395961024673896, "val_wer": 0.3829479768786127, "lr": 1.852952387243699e-05, "epoch_seconds": 57.561237477999384 }, { "epoch": 8, "train_loss": 0.3661836621088859, "val_cer": 0.12831997485462832, "val_wer": 0.353757225433526, "lr": 1.2500000000000009e-05, "epoch_seconds": 54.417468428000575 }, { "epoch": 9, "train_loss": 0.2723297044443779, "val_cer": 0.12006914977212006, "val_wer": 0.3242774566473988, "lr": 7.322330470336316e-06, "epoch_seconds": 54.96981200200025 }, { "epoch": 10, "train_loss": 0.2096752209541125, "val_cer": 0.1131934622033632, "val_wer": 0.319364161849711, "lr": 3.3493649053890335e-06, "epoch_seconds": 56.168583769998804 }, { "epoch": 11, "train_loss": 0.1640623667683357, "val_cer": 0.11287914505736288, "val_wer": 0.3196531791907514, "lr": 8.518543427732954e-07, "epoch_seconds": 57.256369542001266 }, { "epoch": 12, "train_loss": 0.1423123875967203, "val_cer": 0.11095395253811095, "val_wer": 0.3173410404624277, "lr": 0.0, "epoch_seconds": 56.000848030998895 } ] }