hoainam1706 commited on
Commit
7092dbf
·
verified ·
1 Parent(s): f971cd6

Upload ExpertHTR step-1914 checkpoint

Browse files
.gitattributes CHANGED
@@ -33,3 +33,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ tokenizer.json filter=lfs diff=lfs merge=lfs -text
CHECKPOINT_COMPLETE ADDED
@@ -0,0 +1 @@
 
 
1
+ ok
README.md ADDED
@@ -0,0 +1,75 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ library_name: experthtr
3
+ pipeline_tag: image-to-text
4
+ tags:
5
+ - handwritten-text-recognition
6
+ - ocr
7
+ - multimodal
8
+ - sparse-mixture-of-experts
9
+ base_model: Qwen/Qwen3.5-0.8B-Base
10
+ ---
11
+
12
+ # ExpertHTR Sparse MoE
13
+
14
+ <p align="center">
15
+ <a href="https://github.com/DAIR-Group/ExpertHTR"><img src="https://img.shields.io/badge/💻%20Code-ExpertHTR-blue" alt="Code"></a>
16
+ <a href="https://huggingface.co/datasets/DAIR-Group/ExpertHTR-Dataset"><img src="https://img.shields.io/badge/🤗%20Dataset-ExpertHTR-yellow" alt="Dataset"></a>
17
+ <a href="https://huggingface.co/spaces/DAIR-Group/ExpertHTR"><img src="https://img.shields.io/badge/🚀%20Demo-Try%20online-green" alt="Demo"></a>
18
+ </p>
19
+
20
+ Validation-selected page-level handwritten text recognition checkpoint from
21
+ ExpertHTR. It is based on Qwen3.5-0.8B-Base and adds four routed experts plus
22
+ one shared expert at layers 1, 5, 9, 13, 17 and 21.
23
+
24
+ ## Results
25
+
26
+ The selected checkpoint is training step 1914:
27
+
28
+ | Metric | Value |
29
+ |---|---:|
30
+ | Validation pages | 962 |
31
+ | Micro page CER | **16.439%** |
32
+ | Micro page WER | 33.300% |
33
+
34
+ CER removes only the leading region marker (`[Rk]:`). `<del>` and `<gap>` are
35
+ kept as distinct OCR symbols.
36
+
37
+ ## Dataset
38
+
39
+ The companion gated dataset is available at
40
+ [🤗 ExpertHTR-Dataset](https://huggingface.co/datasets/DAIR-Group/ExpertHTR-Dataset).
41
+ The current public-facing dataset card excludes HWDB/CASIA. **This checkpoint
42
+ was trained on the original seven-source experiment, including HWDB2.0, so the
43
+ companion dataset is not an exact reproduction of its training data.** Follow
44
+ all upstream dataset terms and do not infer redistribution permission from
45
+ this model card.
46
+
47
+ ## Use with the repository
48
+
49
+ Clone the code, install dependencies, and follow the evaluation instructions:
50
+
51
+ ```bash
52
+ git clone https://github.com/DAIR-Group/ExpertHTR
53
+ cd ExpertHTR
54
+ python -m pip install -e .
55
+ export HWVLM_DATA_ROOT=/path/to/dataset
56
+ export HWVLM_FINAL_TEST_CHECKPOINT=/path/to/this/model
57
+ experthtr final-test
58
+ ```
59
+
60
+ The checkpoint uses ExpertHTR's custom `full_model_state.pt` format. Keep the
61
+ tokenizer, processor, `checkpoint_manifest.json`, and the repository version
62
+ together; do not load it as a generic Transformers checkpoint.
63
+
64
+ ## Files
65
+
66
+ This release contains runtime files only: model state, config, tokenizer,
67
+ processor, chat template, checkpoint manifest, metadata and metrics. Training
68
+ state, optimizer state, predictions and local machine paths are excluded.
69
+
70
+ ## License and intended use
71
+
72
+ The code is Apache-2.0. Qwen3.5-0.8B-Base and the training data retain their
73
+ upstream licenses. This checkpoint is intended for research on handwritten
74
+ text recognition and may make transcription errors. Do not use it for
75
+ high-stakes decisions without human review.
chat_template.jinja ADDED
@@ -0,0 +1,154 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {%- set image_count = namespace(value=0) %}
2
+ {%- set video_count = namespace(value=0) %}
3
+ {%- macro render_content(content, do_vision_count, is_system_content=false) %}
4
+ {%- if content is string %}
5
+ {{- content }}
6
+ {%- elif content is iterable and content is not mapping %}
7
+ {%- for item in content %}
8
+ {%- if 'image' in item or 'image_url' in item or item.type == 'image' %}
9
+ {%- if is_system_content %}
10
+ {{- raise_exception('System message cannot contain images.') }}
11
+ {%- endif %}
12
+ {%- if do_vision_count %}
13
+ {%- set image_count.value = image_count.value + 1 %}
14
+ {%- endif %}
15
+ {%- if add_vision_id %}
16
+ {{- 'Picture ' ~ image_count.value ~ ': ' }}
17
+ {%- endif %}
18
+ {{- '<|vision_start|><|image_pad|><|vision_end|>' }}
19
+ {%- elif 'video' in item or item.type == 'video' %}
20
+ {%- if is_system_content %}
21
+ {{- raise_exception('System message cannot contain videos.') }}
22
+ {%- endif %}
23
+ {%- if do_vision_count %}
24
+ {%- set video_count.value = video_count.value + 1 %}
25
+ {%- endif %}
26
+ {%- if add_vision_id %}
27
+ {{- 'Video ' ~ video_count.value ~ ': ' }}
28
+ {%- endif %}
29
+ {{- '<|vision_start|><|video_pad|><|vision_end|>' }}
30
+ {%- elif 'text' in item %}
31
+ {{- item.text }}
32
+ {%- else %}
33
+ {{- raise_exception('Unexpected item type in content.') }}
34
+ {%- endif %}
35
+ {%- endfor %}
36
+ {%- elif content is none or content is undefined %}
37
+ {{- '' }}
38
+ {%- else %}
39
+ {{- raise_exception('Unexpected content type.') }}
40
+ {%- endif %}
41
+ {%- endmacro %}
42
+ {%- if not messages %}
43
+ {{- raise_exception('No messages provided.') }}
44
+ {%- endif %}
45
+ {%- if tools and tools is iterable and tools is not mapping %}
46
+ {{- '<|im_start|>system\n' }}
47
+ {{- "# Tools\n\nYou have access to the following functions:\n\n<tools>" }}
48
+ {%- for tool in tools %}
49
+ {{- "\n" }}
50
+ {{- tool | tojson }}
51
+ {%- endfor %}
52
+ {{- "\n</tools>" }}
53
+ {{- '\n\nIf you choose to call a function ONLY reply in the following format with NO suffix:\n\n<tool_call>\n<function=example_function_name>\n<parameter=example_parameter_1>\nvalue_1\n</parameter>\n<parameter=example_parameter_2>\nThis is the value for the second parameter\nthat can span\nmultiple lines\n</parameter>\n</function>\n</tool_call>\n\n<IMPORTANT>\nReminder:\n- Function calls MUST follow the specified format: an inner <function=...></function> block must be nested within <tool_call></tool_call> XML tags\n- Required parameters MUST be specified\n- You may provide optional reasoning for your function call in natural language BEFORE the function call, but NOT after\n- If there is no function call available, answer the question like normal with your current knowledge and do not tell the user about function calls\n</IMPORTANT>' }}
54
+ {%- if messages[0].role == 'system' %}
55
+ {%- set content = render_content(messages[0].content, false, true)|trim %}
56
+ {%- if content %}
57
+ {{- '\n\n' + content }}
58
+ {%- endif %}
59
+ {%- endif %}
60
+ {{- '<|im_end|>\n' }}
61
+ {%- else %}
62
+ {%- if messages[0].role == 'system' %}
63
+ {%- set content = render_content(messages[0].content, false, true)|trim %}
64
+ {{- '<|im_start|>system\n' + content + '<|im_end|>\n' }}
65
+ {%- endif %}
66
+ {%- endif %}
67
+ {%- set ns = namespace(multi_step_tool=true, last_query_index=messages|length - 1) %}
68
+ {%- for message in messages[::-1] %}
69
+ {%- set index = (messages|length - 1) - loop.index0 %}
70
+ {%- if ns.multi_step_tool and message.role == "user" %}
71
+ {%- set content = render_content(message.content, false)|trim %}
72
+ {%- if not(content.startswith('<tool_response>') and content.endswith('</tool_response>')) %}
73
+ {%- set ns.multi_step_tool = false %}
74
+ {%- set ns.last_query_index = index %}
75
+ {%- endif %}
76
+ {%- endif %}
77
+ {%- endfor %}
78
+ {%- if ns.multi_step_tool %}
79
+ {{- raise_exception('No user query found in messages.') }}
80
+ {%- endif %}
81
+ {%- for message in messages %}
82
+ {%- set content = render_content(message.content, true)|trim %}
83
+ {%- if message.role == "system" %}
84
+ {%- if not loop.first %}
85
+ {{- raise_exception('System message must be at the beginning.') }}
86
+ {%- endif %}
87
+ {%- elif message.role == "user" %}
88
+ {{- '<|im_start|>' + message.role + '\n' + content + '<|im_end|>' + '\n' }}
89
+ {%- elif message.role == "assistant" %}
90
+ {%- set reasoning_content = '' %}
91
+ {%- if message.reasoning_content is string %}
92
+ {%- set reasoning_content = message.reasoning_content %}
93
+ {%- else %}
94
+ {%- if '</think>' in content %}
95
+ {%- set reasoning_content = content.split('</think>')[0].rstrip('\n').split('<think>')[-1].lstrip('\n') %}
96
+ {%- set content = content.split('</think>')[-1].lstrip('\n') %}
97
+ {%- endif %}
98
+ {%- endif %}
99
+ {%- set reasoning_content = reasoning_content|trim %}
100
+ {%- if loop.index0 > ns.last_query_index %}
101
+ {{- '<|im_start|>' + message.role + '\n<think>\n' + reasoning_content + '\n</think>\n\n' + content }}
102
+ {%- else %}
103
+ {{- '<|im_start|>' + message.role + '\n' + content }}
104
+ {%- endif %}
105
+ {%- if message.tool_calls and message.tool_calls is iterable and message.tool_calls is not mapping %}
106
+ {%- for tool_call in message.tool_calls %}
107
+ {%- if tool_call.function is defined %}
108
+ {%- set tool_call = tool_call.function %}
109
+ {%- endif %}
110
+ {%- if loop.first %}
111
+ {%- if content|trim %}
112
+ {{- '\n\n<tool_call>\n<function=' + tool_call.name + '>\n' }}
113
+ {%- else %}
114
+ {{- '<tool_call>\n<function=' + tool_call.name + '>\n' }}
115
+ {%- endif %}
116
+ {%- else %}
117
+ {{- '\n<tool_call>\n<function=' + tool_call.name + '>\n' }}
118
+ {%- endif %}
119
+ {%- if tool_call.arguments is defined %}
120
+ {%- for args_name, args_value in tool_call.arguments|items %}
121
+ {{- '<parameter=' + args_name + '>\n' }}
122
+ {%- set args_value = args_value | tojson | safe if args_value is mapping or (args_value is sequence and args_value is not string) else args_value | string %}
123
+ {{- args_value }}
124
+ {{- '\n</parameter>\n' }}
125
+ {%- endfor %}
126
+ {%- endif %}
127
+ {{- '</function>\n</tool_call>' }}
128
+ {%- endfor %}
129
+ {%- endif %}
130
+ {{- '<|im_end|>\n' }}
131
+ {%- elif message.role == "tool" %}
132
+ {%- if loop.previtem and loop.previtem.role != "tool" %}
133
+ {{- '<|im_start|>user' }}
134
+ {%- endif %}
135
+ {{- '\n<tool_response>\n' }}
136
+ {{- content }}
137
+ {{- '\n</tool_response>' }}
138
+ {%- if not loop.last and loop.nextitem.role != "tool" %}
139
+ {{- '<|im_end|>\n' }}
140
+ {%- elif loop.last %}
141
+ {{- '<|im_end|>\n' }}
142
+ {%- endif %}
143
+ {%- else %}
144
+ {{- raise_exception('Unexpected message role.') }}
145
+ {%- endif %}
146
+ {%- endfor %}
147
+ {%- if add_generation_prompt %}
148
+ {{- '<|im_start|>assistant\n' }}
149
+ {%- if enable_thinking is defined and enable_thinking is true %}
150
+ {{- '<think>\n' }}
151
+ {%- else %}
152
+ {{- '<think>\n\n</think>\n\n' }}
153
+ {%- endif %}
154
+ {%- endif %}
checkpoint_manifest.json ADDED
@@ -0,0 +1,202 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "format_version": 2,
3
+ "created_utc": "2026-09-01T00:24:30.285500+00:00",
4
+ "base_model": "<redacted-local-path>",
5
+ "moe_signature": {
6
+ "enabled": true,
7
+ "ablation_mode": "sparsegen_shared_lamsparse_balance",
8
+ "routing_grouping": "unsupervised4",
9
+ "language_groups": [
10
+ "all"
11
+ ],
12
+ "language_experts": 4,
13
+ "shared_experts": 1,
14
+ "shared_mix": 0.25,
15
+ "layer_indices": [
16
+ 1,
17
+ 5,
18
+ 9,
19
+ 13,
20
+ 17,
21
+ 21
22
+ ],
23
+ "routing_fn": "sparsegen",
24
+ "router_ce_coef": 0.0,
25
+ "router_ce_class_weighting": "none",
26
+ "load_balance_coef": 0.01,
27
+ "load_balance_warmup_fraction": 0.1,
28
+ "load_balance_warmup_updates": 64,
29
+ "lam_sparse_coef": 0.01,
30
+ "lam_sparse_warmup_fraction": 0.1,
31
+ "router_temperature": 1.0,
32
+ "sparsegen_hidden": 128,
33
+ "sparsegen_eps": 0.01,
34
+ "expert_init": "copy",
35
+ "expert_train_dtype": "match_base",
36
+ "freeze_base": false
37
+ },
38
+ "atomic_ocr_markers": [
39
+ "<del>",
40
+ "<gap>"
41
+ ],
42
+ "atomic_ocr_marker_ids": {
43
+ "<del>": 248077,
44
+ "<gap>": 248078
45
+ },
46
+ "full_model_state_file": "full_model_state.pt",
47
+ "training_state_included": false,
48
+ "dense_initialization": {
49
+ "mode": "dense_checkpoint_expand_moe_v1",
50
+ "checkpoint_dir": "<redacted-local-path>",
51
+ "checkpoint_manifest": {
52
+ "format_version": 2,
53
+ "created_utc": "2026-08-31T06:26:34.597677+00:00",
54
+ "base_model": "<redacted-local-path>",
55
+ "moe_signature": {
56
+ "enabled": false,
57
+ "routing_grouping": "script3",
58
+ "language_groups": [
59
+ "latin",
60
+ "greek",
61
+ "han"
62
+ ],
63
+ "language_experts": 3,
64
+ "shared_experts": 1,
65
+ "layer_indices": [
66
+ 1,
67
+ 5,
68
+ 9,
69
+ 13,
70
+ 17,
71
+ 21
72
+ ]
73
+ },
74
+ "atomic_ocr_markers": [
75
+ "<del>",
76
+ "<gap>"
77
+ ],
78
+ "atomic_ocr_marker_ids": {
79
+ "<del>": 248077,
80
+ "<gap>": 248078
81
+ },
82
+ "full_model_state_file": "full_model_state.pt",
83
+ "training_state_included": true
84
+ },
85
+ "checkpoint_metadata_path": "<redacted-local-path>",
86
+ "run_config_checked": true,
87
+ "compared_contract": {
88
+ "dataset": "page_multitask",
89
+ "expected_sources": [
90
+ "BRESSAY",
91
+ "Bentham",
92
+ "HWDB2.0",
93
+ "IAM",
94
+ "ICFHR2016",
95
+ "Images_Courriers",
96
+ "ScribbleLens"
97
+ ],
98
+ "image_resize_policy": "area_ratio",
99
+ "image_min_pixels": 589824,
100
+ "image_max_pixels": 1572864,
101
+ "image_max_aspect_ratio": 200.0,
102
+ "max_text_length": 2560,
103
+ "eval_max_new_tokens": 1024,
104
+ "atomic_ocr_markers": [
105
+ "<del>",
106
+ "<gap>"
107
+ ],
108
+ "page_htr_eos_weight": 4.0,
109
+ "token_ul_coef": 0.0,
110
+ "token_ul_page_fraction": 0.0,
111
+ "sampling_mode": "full_pass"
112
+ },
113
+ "waived_contract_keys": [
114
+ {
115
+ "key": "expected_split_records",
116
+ "reason": "checkpoint_serialized_all_split_counts_as_null"
117
+ }
118
+ ],
119
+ "source_scope_transfer": {
120
+ "policy": "exact",
121
+ "checkpoint_sources": [
122
+ "BRESSAY",
123
+ "Bentham",
124
+ "HWDB2.0",
125
+ "IAM",
126
+ "ICFHR2016",
127
+ "Images_Courriers",
128
+ "ScribbleLens"
129
+ ],
130
+ "active_sources": [
131
+ "BRESSAY",
132
+ "Bentham",
133
+ "HWDB2.0",
134
+ "IAM",
135
+ "ICFHR2016",
136
+ "Images_Courriers",
137
+ "ScribbleLens"
138
+ ]
139
+ },
140
+ "full_model_state_file": "<redacted-local-path>",
141
+ "full_model_state_bytes": 1705688804,
142
+ "full_model_state_sha256": "7866b36b4d3cb9b3ce39a4dcd225ec51d2fde75a664ab1ad2260b4292b930388",
143
+ "moe_transfer": {
144
+ "checked": true,
145
+ "layer_path": "model.language_model.layers",
146
+ "layers": [
147
+ {
148
+ "layer": 1,
149
+ "max_abs_diff": 0.00048828125,
150
+ "mean_abs_diff": 2.0134884834988043e-05,
151
+ "mean_relative_diff": 0.0007749682408757508,
152
+ "routed_experts": 4,
153
+ "shared_experts": 1
154
+ },
155
+ {
156
+ "layer": 5,
157
+ "max_abs_diff": 0.0009765625,
158
+ "mean_abs_diff": 3.1044164643390104e-05,
159
+ "mean_relative_diff": 0.0011407412821426988,
160
+ "routed_experts": 4,
161
+ "shared_experts": 1
162
+ },
163
+ {
164
+ "layer": 9,
165
+ "max_abs_diff": 0.00048828125,
166
+ "mean_abs_diff": 1.4513420865114313e-05,
167
+ "mean_relative_diff": 0.0008208884974010289,
168
+ "routed_experts": 4,
169
+ "shared_experts": 1
170
+ },
171
+ {
172
+ "layer": 13,
173
+ "max_abs_diff": 0.00048828125,
174
+ "mean_abs_diff": 1.9256414816481993e-05,
175
+ "mean_relative_diff": 0.0008550191414542496,
176
+ "routed_experts": 4,
177
+ "shared_experts": 1
178
+ },
179
+ {
180
+ "layer": 17,
181
+ "max_abs_diff": 0.0009765625,
182
+ "mean_abs_diff": 2.7810845494968817e-05,
183
+ "mean_relative_diff": 0.0008891209727153182,
184
+ "routed_experts": 4,
185
+ "shared_experts": 1
186
+ },
187
+ {
188
+ "layer": 21,
189
+ "max_abs_diff": 0.0009765625,
190
+ "mean_abs_diff": 2.683823367988225e-05,
191
+ "mean_relative_diff": 0.0006347740418277681,
192
+ "routed_experts": 4,
193
+ "shared_experts": 1
194
+ }
195
+ ],
196
+ "tolerance": {
197
+ "max_abs": 0.05,
198
+ "mean_relative": 0.02
199
+ }
200
+ }
201
+ }
202
+ }
config.json ADDED
@@ -0,0 +1,102 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architectures": [
3
+ "Qwen3_5ForConditionalGeneration"
4
+ ],
5
+ "dtype": "bfloat16",
6
+ "eos_token_id": 248044,
7
+ "image_token_id": 248056,
8
+ "model_type": "qwen3_5",
9
+ "text_config": {
10
+ "attention_bias": false,
11
+ "attention_dropout": 0.0,
12
+ "attn_output_gate": true,
13
+ "bos_token_id": null,
14
+ "dtype": "bfloat16",
15
+ "eos_token_id": 248044,
16
+ "full_attention_interval": 4,
17
+ "head_dim": 256,
18
+ "hidden_act": "silu",
19
+ "hidden_size": 1024,
20
+ "initializer_range": 0.02,
21
+ "intermediate_size": 3584,
22
+ "layer_types": [
23
+ "linear_attention",
24
+ "linear_attention",
25
+ "linear_attention",
26
+ "full_attention",
27
+ "linear_attention",
28
+ "linear_attention",
29
+ "linear_attention",
30
+ "full_attention",
31
+ "linear_attention",
32
+ "linear_attention",
33
+ "linear_attention",
34
+ "full_attention",
35
+ "linear_attention",
36
+ "linear_attention",
37
+ "linear_attention",
38
+ "full_attention",
39
+ "linear_attention",
40
+ "linear_attention",
41
+ "linear_attention",
42
+ "full_attention",
43
+ "linear_attention",
44
+ "linear_attention",
45
+ "linear_attention",
46
+ "full_attention"
47
+ ],
48
+ "linear_conv_kernel_dim": 4,
49
+ "linear_key_head_dim": 128,
50
+ "linear_num_key_heads": 16,
51
+ "linear_num_value_heads": 16,
52
+ "linear_value_head_dim": 128,
53
+ "mamba_ssm_dtype": "float32",
54
+ "max_position_embeddings": 262144,
55
+ "mlp_only_layers": [],
56
+ "model_type": "qwen3_5_text",
57
+ "mtp_num_hidden_layers": 1,
58
+ "mtp_use_dedicated_embeddings": false,
59
+ "num_attention_heads": 8,
60
+ "num_hidden_layers": 24,
61
+ "num_key_value_heads": 2,
62
+ "pad_token_id": null,
63
+ "partial_rotary_factor": 0.25,
64
+ "rms_norm_eps": 1e-06,
65
+ "rope_parameters": {
66
+ "mrope_interleaved": true,
67
+ "mrope_section": [
68
+ 11,
69
+ 11,
70
+ 10
71
+ ],
72
+ "partial_rotary_factor": 0.25,
73
+ "rope_theta": 10000000,
74
+ "rope_type": "default"
75
+ },
76
+ "tie_word_embeddings": true,
77
+ "use_cache": true,
78
+ "vocab_size": 248079
79
+ },
80
+ "tie_word_embeddings": true,
81
+ "transformers_version": "5.12.1",
82
+ "video_token_id": 248057,
83
+ "vision_config": {
84
+ "deepstack_visual_indexes": [],
85
+ "depth": 12,
86
+ "dtype": "bfloat16",
87
+ "hidden_act": "gelu_pytorch_tanh",
88
+ "hidden_size": 768,
89
+ "in_channels": 3,
90
+ "initializer_range": 0.02,
91
+ "intermediate_size": 3072,
92
+ "model_type": "qwen3_5_vision",
93
+ "num_heads": 12,
94
+ "num_position_embeddings": 2304,
95
+ "out_hidden_size": 1024,
96
+ "patch_size": 16,
97
+ "spatial_merge_size": 2,
98
+ "temporal_patch_size": 2
99
+ },
100
+ "vision_end_token_id": 248054,
101
+ "vision_start_token_id": 248053
102
+ }
full_model_state.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:84704b2b0ae98ded07cd65b28f13fab34dbd89b9afb220fa97f915a41a22b9c6
3
+ size 2237476462
metadata.json ADDED
@@ -0,0 +1,1209 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "stage": "canonical_v5_corrected_dense_moe_page_multitask",
3
+ "epoch": 3,
4
+ "epoch_progress": 3.0,
5
+ "epoch_completed": false,
6
+ "global_step": 1914,
7
+ "llm_name": "<redacted-local-path>",
8
+ "resume_from_checkpoint": "",
9
+ "dense_initialization": {
10
+ "mode": "dense_checkpoint_expand_moe_v1",
11
+ "checkpoint_dir": "<redacted-local-path>",
12
+ "checkpoint_manifest": {
13
+ "format_version": 2,
14
+ "created_utc": "2026-08-31T06:26:34.597677+00:00",
15
+ "base_model": "<redacted-local-path>",
16
+ "moe_signature": {
17
+ "enabled": false,
18
+ "routing_grouping": "script3",
19
+ "language_groups": [
20
+ "latin",
21
+ "greek",
22
+ "han"
23
+ ],
24
+ "language_experts": 3,
25
+ "shared_experts": 1,
26
+ "layer_indices": [
27
+ 1,
28
+ 5,
29
+ 9,
30
+ 13,
31
+ 17,
32
+ 21
33
+ ]
34
+ },
35
+ "atomic_ocr_markers": [
36
+ "<del>",
37
+ "<gap>"
38
+ ],
39
+ "atomic_ocr_marker_ids": {
40
+ "<del>": 248077,
41
+ "<gap>": 248078
42
+ },
43
+ "full_model_state_file": "full_model_state.pt",
44
+ "training_state_included": true
45
+ },
46
+ "checkpoint_metadata_path": "<redacted-local-path>",
47
+ "run_config_checked": true,
48
+ "compared_contract": {
49
+ "dataset": "page_multitask",
50
+ "expected_sources": [
51
+ "BRESSAY",
52
+ "Bentham",
53
+ "HWDB2.0",
54
+ "IAM",
55
+ "ICFHR2016",
56
+ "Images_Courriers",
57
+ "ScribbleLens"
58
+ ],
59
+ "image_resize_policy": "area_ratio",
60
+ "image_min_pixels": 589824,
61
+ "image_max_pixels": 1572864,
62
+ "image_max_aspect_ratio": 200.0,
63
+ "max_text_length": 2560,
64
+ "eval_max_new_tokens": 1024,
65
+ "atomic_ocr_markers": [
66
+ "<del>",
67
+ "<gap>"
68
+ ],
69
+ "page_htr_eos_weight": 4.0,
70
+ "token_ul_coef": 0.0,
71
+ "token_ul_page_fraction": 0.0,
72
+ "sampling_mode": "full_pass"
73
+ },
74
+ "waived_contract_keys": [
75
+ {
76
+ "key": "expected_split_records",
77
+ "reason": "checkpoint_serialized_all_split_counts_as_null"
78
+ }
79
+ ],
80
+ "source_scope_transfer": {
81
+ "policy": "exact",
82
+ "checkpoint_sources": [
83
+ "BRESSAY",
84
+ "Bentham",
85
+ "HWDB2.0",
86
+ "IAM",
87
+ "ICFHR2016",
88
+ "Images_Courriers",
89
+ "ScribbleLens"
90
+ ],
91
+ "active_sources": [
92
+ "BRESSAY",
93
+ "Bentham",
94
+ "HWDB2.0",
95
+ "IAM",
96
+ "ICFHR2016",
97
+ "Images_Courriers",
98
+ "ScribbleLens"
99
+ ]
100
+ },
101
+ "full_model_state_file": "<redacted-local-path>",
102
+ "full_model_state_bytes": 1705688804,
103
+ "full_model_state_sha256": "7866b36b4d3cb9b3ce39a4dcd225ec51d2fde75a664ab1ad2260b4292b930388",
104
+ "moe_transfer": {
105
+ "checked": true,
106
+ "layer_path": "model.language_model.layers",
107
+ "layers": [
108
+ {
109
+ "layer": 1,
110
+ "max_abs_diff": 0.00048828125,
111
+ "mean_abs_diff": 2.0134884834988043e-05,
112
+ "mean_relative_diff": 0.0007749682408757508,
113
+ "routed_experts": 4,
114
+ "shared_experts": 1
115
+ },
116
+ {
117
+ "layer": 5,
118
+ "max_abs_diff": 0.0009765625,
119
+ "mean_abs_diff": 3.1044164643390104e-05,
120
+ "mean_relative_diff": 0.0011407412821426988,
121
+ "routed_experts": 4,
122
+ "shared_experts": 1
123
+ },
124
+ {
125
+ "layer": 9,
126
+ "max_abs_diff": 0.00048828125,
127
+ "mean_abs_diff": 1.4513420865114313e-05,
128
+ "mean_relative_diff": 0.0008208884974010289,
129
+ "routed_experts": 4,
130
+ "shared_experts": 1
131
+ },
132
+ {
133
+ "layer": 13,
134
+ "max_abs_diff": 0.00048828125,
135
+ "mean_abs_diff": 1.9256414816481993e-05,
136
+ "mean_relative_diff": 0.0008550191414542496,
137
+ "routed_experts": 4,
138
+ "shared_experts": 1
139
+ },
140
+ {
141
+ "layer": 17,
142
+ "max_abs_diff": 0.0009765625,
143
+ "mean_abs_diff": 2.7810845494968817e-05,
144
+ "mean_relative_diff": 0.0008891209727153182,
145
+ "routed_experts": 4,
146
+ "shared_experts": 1
147
+ },
148
+ {
149
+ "layer": 21,
150
+ "max_abs_diff": 0.0009765625,
151
+ "mean_abs_diff": 2.683823367988225e-05,
152
+ "mean_relative_diff": 0.0006347740418277681,
153
+ "routed_experts": 4,
154
+ "shared_experts": 1
155
+ }
156
+ ],
157
+ "tolerance": {
158
+ "max_abs": 0.05,
159
+ "mean_relative": 0.02
160
+ }
161
+ }
162
+ },
163
+ "train_metrics": {
164
+ "train_loss": 0.5901720113664641,
165
+ "train_lm_loss": 0.579147330208922,
166
+ "train_moe_load_balance_raw_loss": 1.0158756909965416,
167
+ "train_moe_load_balance_loss": 0.010158756687544316,
168
+ "train_moe_router_language_loss": 0.0,
169
+ "train_moe_lam_sparse_raw_loss": 0.07576503753092023,
170
+ "train_moe_lam_sparse_loss": 0.0007576503584921332,
171
+ "train_batches": 5097,
172
+ "supervised_label_tokens": 1831248,
173
+ "sample_exposure_epoch": {
174
+ "draws": 20388,
175
+ "unique_records": 20388,
176
+ "duplicate_draws": 0,
177
+ "unique_pages": 4393,
178
+ "by_source": {
179
+ "BRESSAY": 3726,
180
+ "Bentham": 1842,
181
+ "HWDB2.0": 5513,
182
+ "IAM": 2988,
183
+ "ICFHR2016": 1745,
184
+ "Images_Courriers": 3690,
185
+ "ScribbleLens": 884
186
+ },
187
+ "by_task": {
188
+ "line_count": 4393,
189
+ "line_range_htr": 7209,
190
+ "page_htr": 4393,
191
+ "phrase_line_lookup": 4393
192
+ },
193
+ "by_source_task": {
194
+ "BRESSAY": {
195
+ "line_count": 647,
196
+ "line_range_htr": 1785,
197
+ "page_htr": 647,
198
+ "phrase_line_lookup": 647
199
+ },
200
+ "Bentham": {
201
+ "line_count": 350,
202
+ "line_range_htr": 792,
203
+ "page_htr": 350,
204
+ "phrase_line_lookup": 350
205
+ },
206
+ "HWDB2.0": {
207
+ "line_count": 1377,
208
+ "line_range_htr": 1382,
209
+ "page_htr": 1377,
210
+ "phrase_line_lookup": 1377
211
+ },
212
+ "IAM": {
213
+ "line_count": 747,
214
+ "line_range_htr": 747,
215
+ "page_htr": 747,
216
+ "phrase_line_lookup": 747
217
+ },
218
+ "ICFHR2016": {
219
+ "line_count": 350,
220
+ "line_range_htr": 695,
221
+ "page_htr": 350,
222
+ "phrase_line_lookup": 350
223
+ },
224
+ "Images_Courriers": {
225
+ "line_count": 758,
226
+ "line_range_htr": 1416,
227
+ "page_htr": 758,
228
+ "phrase_line_lookup": 758
229
+ },
230
+ "ScribbleLens": {
231
+ "line_count": 164,
232
+ "line_range_htr": 392,
233
+ "page_htr": 164,
234
+ "phrase_line_lookup": 164
235
+ }
236
+ },
237
+ "unique_records_by_source": {
238
+ "BRESSAY": 3726,
239
+ "Bentham": 1842,
240
+ "HWDB2.0": 5513,
241
+ "IAM": 2988,
242
+ "ICFHR2016": 1745,
243
+ "Images_Courriers": 3690,
244
+ "ScribbleLens": 884
245
+ },
246
+ "unique_pages_by_source": {
247
+ "BRESSAY": 647,
248
+ "Bentham": 350,
249
+ "HWDB2.0": 1377,
250
+ "IAM": 747,
251
+ "ICFHR2016": 350,
252
+ "Images_Courriers": 758,
253
+ "ScribbleLens": 164
254
+ }
255
+ },
256
+ "sample_exposure_cumulative": {
257
+ "draws": 61164,
258
+ "unique_records": 20388,
259
+ "duplicate_draws": 40776,
260
+ "unique_pages": 4393,
261
+ "by_source": {
262
+ "BRESSAY": 11178,
263
+ "Bentham": 5526,
264
+ "HWDB2.0": 16539,
265
+ "IAM": 8964,
266
+ "ICFHR2016": 5235,
267
+ "Images_Courriers": 11070,
268
+ "ScribbleLens": 2652
269
+ },
270
+ "by_task": {
271
+ "line_count": 13179,
272
+ "line_range_htr": 21627,
273
+ "page_htr": 13179,
274
+ "phrase_line_lookup": 13179
275
+ },
276
+ "by_source_task": {
277
+ "BRESSAY": {
278
+ "line_count": 1941,
279
+ "line_range_htr": 5355,
280
+ "page_htr": 1941,
281
+ "phrase_line_lookup": 1941
282
+ },
283
+ "Bentham": {
284
+ "line_count": 1050,
285
+ "line_range_htr": 2376,
286
+ "page_htr": 1050,
287
+ "phrase_line_lookup": 1050
288
+ },
289
+ "HWDB2.0": {
290
+ "line_count": 4131,
291
+ "line_range_htr": 4146,
292
+ "page_htr": 4131,
293
+ "phrase_line_lookup": 4131
294
+ },
295
+ "IAM": {
296
+ "line_count": 2241,
297
+ "line_range_htr": 2241,
298
+ "page_htr": 2241,
299
+ "phrase_line_lookup": 2241
300
+ },
301
+ "ICFHR2016": {
302
+ "line_count": 1050,
303
+ "line_range_htr": 2085,
304
+ "page_htr": 1050,
305
+ "phrase_line_lookup": 1050
306
+ },
307
+ "Images_Courriers": {
308
+ "line_count": 2274,
309
+ "line_range_htr": 4248,
310
+ "page_htr": 2274,
311
+ "phrase_line_lookup": 2274
312
+ },
313
+ "ScribbleLens": {
314
+ "line_count": 492,
315
+ "line_range_htr": 1176,
316
+ "page_htr": 492,
317
+ "phrase_line_lookup": 492
318
+ }
319
+ },
320
+ "unique_records_by_source": {
321
+ "BRESSAY": 3726,
322
+ "Bentham": 1842,
323
+ "HWDB2.0": 5513,
324
+ "IAM": 2988,
325
+ "ICFHR2016": 1745,
326
+ "Images_Courriers": 3690,
327
+ "ScribbleLens": 884
328
+ },
329
+ "unique_pages_by_source": {
330
+ "BRESSAY": 647,
331
+ "Bentham": 350,
332
+ "HWDB2.0": 1377,
333
+ "IAM": 747,
334
+ "ICFHR2016": 350,
335
+ "Images_Courriers": 758,
336
+ "ScribbleLens": 164
337
+ }
338
+ }
339
+ },
340
+ "val_metrics": {
341
+ "cer_generate": 0.16438965258561158,
342
+ "wer_generate": 0.33299821549752434,
343
+ "num_samples": 962,
344
+ "safety_cer_generate_diagnostic": 0.15750271999682047,
345
+ "loop_guard_trigger_rate": 0.028066528066528068,
346
+ "by_source": {
347
+ "BRESSAY": {
348
+ "cer_generate": 0.20291806036232865,
349
+ "wer_generate": 0.3477519644157897,
350
+ "num_samples": 154
351
+ },
352
+ "Bentham": {
353
+ "cer_generate": 0.1773907135467334,
354
+ "wer_generate": 0.4670343876583642,
355
+ "num_samples": 50
356
+ },
357
+ "HWDB2.0": {
358
+ "cer_generate": 0.031286644544796786,
359
+ "wer_generate": 0.3711730306157551,
360
+ "num_samples": 300
361
+ },
362
+ "IAM": {
363
+ "cer_generate": 0.020206642421906985,
364
+ "wer_generate": 0.06037131027113664,
365
+ "num_samples": 116
366
+ },
367
+ "ICFHR2016": {
368
+ "cer_generate": 0.4769110835970101,
369
+ "wer_generate": 0.8564913347522043,
370
+ "num_samples": 50
371
+ },
372
+ "Images_Courriers": {
373
+ "cer_generate": 0.08557112516173132,
374
+ "wer_generate": 0.1783308596871789,
375
+ "num_samples": 278
376
+ },
377
+ "ScribbleLens": {
378
+ "cer_generate": 0.4741920423302381,
379
+ "wer_generate": 0.87206106870229,
380
+ "num_samples": 14
381
+ }
382
+ },
383
+ "safety_cer_by_source_diagnostic": {
384
+ "BRESSAY": 0.20162264844067207,
385
+ "Bentham": 0.1496116489862726,
386
+ "HWDB2.0": 0.031286644544796786,
387
+ "IAM": 0.020206642421906985,
388
+ "ICFHR2016": 0.4769110835970101,
389
+ "Images_Courriers": 0.07008153699680199,
390
+ "ScribbleLens": 0.4393318462416351
391
+ },
392
+ "macro_source_cer_diagnostic": 0.20978233028067791,
393
+ "macro_page_cer_diagnostic": 0.10694783478550064,
394
+ "by_task": {
395
+ "page_htr": {
396
+ "cer_generate": 0.16438965258561158,
397
+ "wer_generate": 0.33299821549752434,
398
+ "num_samples": 962
399
+ }
400
+ },
401
+ "by_language_group": {
402
+ "all": {
403
+ "cer_generate": 0.16438965258561158,
404
+ "wer_generate": 0.33299821549752434,
405
+ "num_samples": 962
406
+ }
407
+ },
408
+ "generation_diagnostics": {
409
+ "num_samples": 962,
410
+ "output_tokens": {
411
+ "count": 962,
412
+ "mean": 277.5686070686071,
413
+ "p50": 190.0,
414
+ "p95": 754.0,
415
+ "p99": 1024.0,
416
+ "max": 1024.0
417
+ },
418
+ "reference_tokens": {
419
+ "count": 962,
420
+ "mean": 260.11538461538464,
421
+ "p50": 186.0,
422
+ "p95": 672.9499999999999,
423
+ "p99": 806.39,
424
+ "max": 944.0
425
+ },
426
+ "output_reference_token_ratio": {
427
+ "count": 962,
428
+ "mean": 1.0538785060645548,
429
+ "p50": 1.0136054421768708,
430
+ "p95": 1.1400505503262113,
431
+ "p99": 2.213666242038215,
432
+ "max": 5.333333333333333
433
+ },
434
+ "prediction_chars": {
435
+ "count": 962,
436
+ "mean": 860.0436590436591,
437
+ "p50": 501.5,
438
+ "p95": 2838.95,
439
+ "p99": 3455.29,
440
+ "max": 4349.0
441
+ },
442
+ "reference_chars": {
443
+ "count": 962,
444
+ "mean": 855.5197505197506,
445
+ "p50": 507.0,
446
+ "p95": 2833.049999999999,
447
+ "p99": 3482.68,
448
+ "max": 4298.0
449
+ },
450
+ "max_new_tokens_hit_rate": 0.02702702702702703,
451
+ "eos_emitted_rate": 0.972972972972973,
452
+ "empty_output_rate": 0.0,
453
+ "loop_guard_trigger_rate": 0.028066528066528068,
454
+ "repetition_3gram_fraction": {
455
+ "count": 962,
456
+ "mean": 0.042803856253832664,
457
+ "p50": 0.017991044937152756,
458
+ "p95": 0.10372954615622096,
459
+ "p99": 0.7909393346379647,
460
+ "max": 0.9363992172211351
461
+ },
462
+ "region_count_exact_rate": 1.0,
463
+ "line_count_exact_rate": 0.8056133056133056,
464
+ "marker_reference_counts": {
465
+ "<del>": 576,
466
+ "<gap>": 297
467
+ },
468
+ "marker_prediction_counts": {
469
+ "<del>": 0,
470
+ "<gap>": 0
471
+ },
472
+ "generation_seconds_per_page": {
473
+ "count": 962,
474
+ "mean": 1.8000839774241226,
475
+ "p50": 1.1455812877502467,
476
+ "p95": 5.233787497999401,
477
+ "p99": 5.325606547574771,
478
+ "max": 6.0885678070008
479
+ },
480
+ "generation_seconds_per_sample": {
481
+ "count": 962,
482
+ "mean": 1.8000839774241226,
483
+ "p50": 1.1455812877502467,
484
+ "p95": 5.233787497999401,
485
+ "p99": 5.325606547574771,
486
+ "max": 6.0885678070008
487
+ },
488
+ "generation_wall_seconds_total": 1731.680786282006,
489
+ "generation_pages_per_second": 0.5555296378066629,
490
+ "generated_tokens_per_second": 154.19758775132323
491
+ },
492
+ "evaluation_wall_seconds": 1747.2859408959994,
493
+ "diagnostics_by_source": {
494
+ "BRESSAY": {
495
+ "num_samples": 154,
496
+ "output_tokens": {
497
+ "count": 154,
498
+ "mean": 685.2857142857143,
499
+ "p50": 655.5,
500
+ "p95": 1024.0,
501
+ "p99": 1024.0,
502
+ "max": 1024.0
503
+ },
504
+ "reference_tokens": {
505
+ "count": 154,
506
+ "mean": 646.6883116883117,
507
+ "p50": 636.5,
508
+ "p95": 814.4,
509
+ "p99": 925.35,
510
+ "max": 944.0
511
+ },
512
+ "output_reference_token_ratio": {
513
+ "count": 154,
514
+ "mean": 1.0582472392281992,
515
+ "p50": 1.0112063214077225,
516
+ "p95": 1.4542156304832359,
517
+ "p99": 1.654286506305147,
518
+ "max": 1.7038269550748752
519
+ },
520
+ "prediction_chars": {
521
+ "count": 154,
522
+ "mean": 2685.525974025974,
523
+ "p50": 2648.0,
524
+ "p95": 3469.85,
525
+ "p99": 4216.37,
526
+ "max": 4349.0
527
+ },
528
+ "reference_chars": {
529
+ "count": 154,
530
+ "mean": 2708.8311688311687,
531
+ "p50": 2663.5,
532
+ "p95": 3513.4,
533
+ "p99": 3693.27,
534
+ "max": 4298.0
535
+ },
536
+ "max_new_tokens_hit_rate": 0.09090909090909091,
537
+ "eos_emitted_rate": 0.9090909090909091,
538
+ "empty_output_rate": 0.0,
539
+ "loop_guard_trigger_rate": 0.1038961038961039,
540
+ "repetition_3gram_fraction": {
541
+ "count": 154,
542
+ "mean": 0.08230364542639139,
543
+ "p50": 0.027308844865693127,
544
+ "p95": 0.44138943248532264,
545
+ "p99": 0.793170254403131,
546
+ "max": 0.821917808219178
547
+ },
548
+ "region_count_exact_rate": 1.0,
549
+ "line_count_exact_rate": 0.7012987012987013,
550
+ "marker_reference_counts": {
551
+ "<del>": 560,
552
+ "<gap>": 57
553
+ },
554
+ "marker_prediction_counts": {
555
+ "<del>": 0,
556
+ "<gap>": 0
557
+ },
558
+ "generation_seconds_per_page": {
559
+ "count": 154,
560
+ "mean": 4.209619012707757,
561
+ "p50": 3.977695644999585,
562
+ "p95": 5.30480367291184,
563
+ "p99": 5.341092155499609,
564
+ "max": 5.341092155499609
565
+ },
566
+ "generation_seconds_per_sample": {
567
+ "count": 154,
568
+ "mean": 4.209619012707757,
569
+ "p50": 3.977695644999585,
570
+ "p95": 5.30480367291184,
571
+ "p99": 5.341092155499609,
572
+ "max": 5.341092155499609
573
+ },
574
+ "generation_wall_seconds_total": 648.2813279569946,
575
+ "generation_pages_per_second": 0.23755118859480093,
576
+ "generated_tokens_per_second": 162.79043595560856
577
+ },
578
+ "Bentham": {
579
+ "num_samples": 50,
580
+ "output_tokens": {
581
+ "count": 50,
582
+ "mean": 422.12,
583
+ "p50": 332.5,
584
+ "p95": 1024.0,
585
+ "p99": 1024.0,
586
+ "max": 1024.0
587
+ },
588
+ "reference_tokens": {
589
+ "count": 50,
590
+ "mean": 330.94,
591
+ "p50": 320.5,
592
+ "p95": 481.0,
593
+ "p99": 536.14,
594
+ "max": 543.0
595
+ },
596
+ "output_reference_token_ratio": {
597
+ "count": 50,
598
+ "mean": 1.2766760861172306,
599
+ "p50": 1.0,
600
+ "p95": 3.2397365295324465,
601
+ "p99": 3.6336356432156376,
602
+ "max": 3.696750902527076
603
+ },
604
+ "prediction_chars": {
605
+ "count": 50,
606
+ "mean": 1358.92,
607
+ "p50": 1321.5,
608
+ "p95": 2073.499999999999,
609
+ "p99": 2334.75,
610
+ "max": 2347.0
611
+ },
612
+ "reference_chars": {
613
+ "count": 50,
614
+ "mean": 1310.18,
615
+ "p50": 1252.5,
616
+ "p95": 1860.35,
617
+ "p99": 2225.5399999999995,
618
+ "max": 2350.0
619
+ },
620
+ "max_new_tokens_hit_rate": 0.14,
621
+ "eos_emitted_rate": 0.86,
622
+ "empty_output_rate": 0.0,
623
+ "loop_guard_trigger_rate": 0.14,
624
+ "repetition_3gram_fraction": {
625
+ "count": 50,
626
+ "mean": 0.15351462873620134,
627
+ "p50": 0.0354426409472281,
628
+ "p95": 0.8212818003913894,
629
+ "p99": 0.8724266144814089,
630
+ "max": 0.9021526418786693
631
+ },
632
+ "region_count_exact_rate": 1.0,
633
+ "line_count_exact_rate": 0.24,
634
+ "marker_reference_counts": {
635
+ "<del>": 0,
636
+ "<gap>": 4
637
+ },
638
+ "marker_prediction_counts": {
639
+ "<del>": 0,
640
+ "<gap>": 0
641
+ },
642
+ "generation_seconds_per_page": {
643
+ "count": 50,
644
+ "mean": 3.4135301617999723,
645
+ "p50": 2.6635789757492603,
646
+ "p95": 5.2451707629998054,
647
+ "p99": 5.2451707629998054,
648
+ "max": 5.2451707629998054
649
+ },
650
+ "generation_seconds_per_sample": {
651
+ "count": 50,
652
+ "mean": 3.4135301617999723,
653
+ "p50": 2.6635789757492603,
654
+ "p95": 5.2451707629998054,
655
+ "p99": 5.2451707629998054,
656
+ "max": 5.2451707629998054
657
+ },
658
+ "generation_wall_seconds_total": 170.6765080899986,
659
+ "generation_pages_per_second": 0.29295185705132154,
660
+ "generated_tokens_per_second": 123.66083789850386
661
+ },
662
+ "HWDB2.0": {
663
+ "num_samples": 300,
664
+ "output_tokens": {
665
+ "count": 300,
666
+ "mean": 167.40666666666667,
667
+ "p50": 167.0,
668
+ "p95": 201.0,
669
+ "p99": 213.0,
670
+ "max": 214.0
671
+ },
672
+ "reference_tokens": {
673
+ "count": 300,
674
+ "mean": 165.7,
675
+ "p50": 164.5,
676
+ "p95": 199.0,
677
+ "p99": 209.01999999999998,
678
+ "max": 213.0
679
+ },
680
+ "output_reference_token_ratio": {
681
+ "count": 300,
682
+ "mean": 1.0106741074467964,
683
+ "p50": 1.0116959064327486,
684
+ "p95": 1.038722245496439,
685
+ "p99": 1.0508463221219577,
686
+ "max": 1.0793650793650793
687
+ },
688
+ "prediction_chars": {
689
+ "count": 300,
690
+ "mean": 272.2966666666667,
691
+ "p50": 269.0,
692
+ "p95": 313.0,
693
+ "p99": 326.0,
694
+ "max": 332.0
695
+ },
696
+ "reference_chars": {
697
+ "count": 300,
698
+ "mean": 276.35333333333335,
699
+ "p50": 275.0,
700
+ "p95": 317.15000000000003,
701
+ "p99": 328.03999999999996,
702
+ "max": 343.0
703
+ },
704
+ "max_new_tokens_hit_rate": 0.0,
705
+ "eos_emitted_rate": 1.0,
706
+ "empty_output_rate": 0.0,
707
+ "loop_guard_trigger_rate": 0.0,
708
+ "repetition_3gram_fraction": {
709
+ "count": 300,
710
+ "mean": 0.01982862275667522,
711
+ "p50": 0.01365203615692856,
712
+ "p95": 0.051183712121212144,
713
+ "p99": 0.05883968972204266,
714
+ "max": 0.07017543859649122
715
+ },
716
+ "region_count_exact_rate": 1.0,
717
+ "line_count_exact_rate": 0.9633333333333334,
718
+ "marker_reference_counts": {
719
+ "<del>": 0,
720
+ "<gap>": 236
721
+ },
722
+ "marker_prediction_counts": {
723
+ "<del>": 0,
724
+ "<gap>": 0
725
+ },
726
+ "generation_seconds_per_page": {
727
+ "count": 300,
728
+ "mean": 1.0133197663800093,
729
+ "p50": 0.9922402704996784,
730
+ "p95": 1.1455812877502467,
731
+ "p99": 1.1506245174996366,
732
+ "max": 1.1506245174996366
733
+ },
734
+ "generation_seconds_per_sample": {
735
+ "count": 300,
736
+ "mean": 1.0133197663800093,
737
+ "p50": 0.9922402704996784,
738
+ "p95": 1.1455812877502467,
739
+ "p99": 1.1506245174996366,
740
+ "max": 1.1506245174996366
741
+ },
742
+ "generation_wall_seconds_total": 303.9959299140028,
743
+ "generation_pages_per_second": 0.986855317717138,
744
+ "generated_tokens_per_second": 165.20615922130034
745
+ },
746
+ "IAM": {
747
+ "num_samples": 116,
748
+ "output_tokens": {
749
+ "count": 116,
750
+ "mean": 98.0,
751
+ "p50": 97.0,
752
+ "p95": 127.0,
753
+ "p99": 155.04999999999993,
754
+ "max": 157.0
755
+ },
756
+ "reference_tokens": {
757
+ "count": 116,
758
+ "mean": 95.91379310344827,
759
+ "p50": 94.5,
760
+ "p95": 123.75,
761
+ "p99": 151.04999999999993,
762
+ "max": 155.0
763
+ },
764
+ "output_reference_token_ratio": {
765
+ "count": 116,
766
+ "mean": 1.0228742961042576,
767
+ "p50": 1.0209429824561402,
768
+ "p95": 1.0460884353741497,
769
+ "p99": 1.093605025773196,
770
+ "max": 1.125
771
+ },
772
+ "prediction_chars": {
773
+ "count": 116,
774
+ "mean": 364.2844827586207,
775
+ "p50": 358.5,
776
+ "p95": 501.25,
777
+ "p99": 582.5499999999997,
778
+ "max": 610.0
779
+ },
780
+ "reference_chars": {
781
+ "count": 116,
782
+ "mean": 363.9396551724138,
783
+ "p50": 358.5,
784
+ "p95": 497.5,
785
+ "p99": 580.8499999999998,
786
+ "max": 610.0
787
+ },
788
+ "max_new_tokens_hit_rate": 0.0,
789
+ "eos_emitted_rate": 1.0,
790
+ "empty_output_rate": 0.0,
791
+ "loop_guard_trigger_rate": 0.0,
792
+ "repetition_3gram_fraction": {
793
+ "count": 116,
794
+ "mean": 0.005795495058881031,
795
+ "p50": 0.0,
796
+ "p95": 0.029751131221719462,
797
+ "p99": 0.050506072874493886,
798
+ "max": 0.11538461538461542
799
+ },
800
+ "region_count_exact_rate": 1.0,
801
+ "line_count_exact_rate": 1.0,
802
+ "marker_reference_counts": {
803
+ "<del>": 0,
804
+ "<gap>": 0
805
+ },
806
+ "marker_prediction_counts": {
807
+ "<del>": 0,
808
+ "<gap>": 0
809
+ },
810
+ "generation_seconds_per_page": {
811
+ "count": 116,
812
+ "mean": 0.6505729309310482,
813
+ "p50": 0.6363210999998046,
814
+ "p95": 0.8624965879998854,
815
+ "p99": 0.8652169607494216,
816
+ "max": 0.8652169607494216
817
+ },
818
+ "generation_seconds_per_sample": {
819
+ "count": 116,
820
+ "mean": 0.6505729309310482,
821
+ "p50": 0.6363210999998046,
822
+ "p95": 0.8624965879998854,
823
+ "p99": 0.8652169607494216,
824
+ "max": 0.8652169607494216
825
+ },
826
+ "generation_wall_seconds_total": 75.46645998800159,
827
+ "generation_pages_per_second": 1.5371066831337106,
828
+ "generated_tokens_per_second": 150.63645494710363
829
+ },
830
+ "ICFHR2016": {
831
+ "num_samples": 50,
832
+ "output_tokens": {
833
+ "count": 50,
834
+ "mean": 228.18,
835
+ "p50": 230.5,
836
+ "p95": 270.0,
837
+ "p99": 661.3999999999985,
838
+ "max": 1024.0
839
+ },
840
+ "reference_tokens": {
841
+ "count": 50,
842
+ "mean": 192.18,
843
+ "p50": 209.5,
844
+ "p95": 254.1,
845
+ "p99": 260.59,
846
+ "max": 265.0
847
+ },
848
+ "output_reference_token_ratio": {
849
+ "count": 50,
850
+ "mean": 1.214897954381385,
851
+ "p50": 1.0978468899521532,
852
+ "p95": 1.4179384203480587,
853
+ "p99": 3.5281818181818108,
854
+ "max": 5.333333333333333
855
+ },
856
+ "prediction_chars": {
857
+ "count": 50,
858
+ "mean": 496.52,
859
+ "p50": 494.5,
860
+ "p95": 596.1,
861
+ "p99": 1514.1199999999967,
862
+ "max": 2353.0
863
+ },
864
+ "reference_chars": {
865
+ "count": 50,
866
+ "mean": 459.26,
867
+ "p50": 500.5,
868
+ "p95": 603.5,
869
+ "p99": 624.02,
870
+ "max": 625.0
871
+ },
872
+ "max_new_tokens_hit_rate": 0.02,
873
+ "eos_emitted_rate": 0.98,
874
+ "empty_output_rate": 0.0,
875
+ "loop_guard_trigger_rate": 0.0,
876
+ "repetition_3gram_fraction": {
877
+ "count": 50,
878
+ "mean": 0.06765920660542266,
879
+ "p50": 0.040066703526012604,
880
+ "p95": 0.15343333333333317,
881
+ "p99": 0.5539309761517781,
882
+ "max": 0.8825831702544031
883
+ },
884
+ "region_count_exact_rate": 1.0,
885
+ "line_count_exact_rate": 0.6,
886
+ "marker_reference_counts": {
887
+ "<del>": 16,
888
+ "<gap>": 0
889
+ },
890
+ "marker_prediction_counts": {
891
+ "<del>": 0,
892
+ "<gap>": 0
893
+ },
894
+ "generation_seconds_per_page": {
895
+ "count": 50,
896
+ "mean": 1.6397333451399028,
897
+ "p50": 1.3918661629995768,
898
+ "p95": 5.401545224499387,
899
+ "p99": 5.401545224499387,
900
+ "max": 5.401545224499387
901
+ },
902
+ "generation_seconds_per_sample": {
903
+ "count": 50,
904
+ "mean": 1.6397333451399028,
905
+ "p50": 1.3918661629995768,
906
+ "p95": 5.401545224499387,
907
+ "p99": 5.401545224499387,
908
+ "max": 5.401545224499387
909
+ },
910
+ "generation_wall_seconds_total": 81.98666725699513,
911
+ "generation_pages_per_second": 0.6098552566269119,
912
+ "generated_tokens_per_second": 139.15677245712874
913
+ },
914
+ "Images_Courriers": {
915
+ "num_samples": 278,
916
+ "output_tokens": {
917
+ "count": 278,
918
+ "mean": 213.79856115107913,
919
+ "p50": 205.0,
920
+ "p95": 289.44999999999993,
921
+ "p99": 383.46000000000004,
922
+ "max": 1024.0
923
+ },
924
+ "reference_tokens": {
925
+ "count": 278,
926
+ "mean": 206.23381294964028,
927
+ "p50": 201.0,
928
+ "p95": 289.44999999999993,
929
+ "p99": 337.7300000000009,
930
+ "max": 450.0
931
+ },
932
+ "output_reference_token_ratio": {
933
+ "count": 278,
934
+ "mean": 1.0309230199193677,
935
+ "p50": 1.013667496886675,
936
+ "p95": 1.0607790801851575,
937
+ "p99": 1.239687500000001,
938
+ "max": 4.19672131147541
939
+ },
940
+ "prediction_chars": {
941
+ "count": 278,
942
+ "mean": 633.8597122302158,
943
+ "p50": 605.5,
944
+ "p95": 891.3,
945
+ "p99": 1262.4400000000023,
946
+ "max": 3107.0
947
+ },
948
+ "reference_chars": {
949
+ "count": 278,
950
+ "mean": 621.9208633093525,
951
+ "p50": 604.5,
952
+ "p95": 873.0999999999997,
953
+ "p99": 1076.3100000000036,
954
+ "max": 1486.0
955
+ },
956
+ "max_new_tokens_hit_rate": 0.007194244604316547,
957
+ "eos_emitted_rate": 0.9928057553956835,
958
+ "empty_output_rate": 0.0,
959
+ "loop_guard_trigger_rate": 0.007194244604316547,
960
+ "repetition_3gram_fraction": {
961
+ "count": 278,
962
+ "mean": 0.02890799216476402,
963
+ "p50": 0.017416582406471204,
964
+ "p95": 0.06890628879509099,
965
+ "p99": 0.16417016953902247,
966
+ "max": 0.7681017612524462
967
+ },
968
+ "region_count_exact_rate": 1.0,
969
+ "line_count_exact_rate": 0.7769784172661871,
970
+ "marker_reference_counts": {
971
+ "<del>": 0,
972
+ "<gap>": 0
973
+ },
974
+ "marker_prediction_counts": {
975
+ "<del>": 0,
976
+ "<gap>": 0
977
+ },
978
+ "generation_seconds_per_page": {
979
+ "count": 278,
980
+ "mean": 1.4111926457698238,
981
+ "p50": 1.2364898257501409,
982
+ "p95": 1.9682605375001003,
983
+ "p99": 5.259757931499735,
984
+ "max": 5.259757931499735
985
+ },
986
+ "generation_seconds_per_sample": {
987
+ "count": 278,
988
+ "mean": 1.4111926457698238,
989
+ "p50": 1.2364898257501409,
990
+ "p95": 1.9682605375001003,
991
+ "p99": 5.259757931499735,
992
+ "max": 5.259757931499735
993
+ },
994
+ "generation_wall_seconds_total": 392.31155552401106,
995
+ "generation_pages_per_second": 0.7086204729011233,
996
+ "generated_tokens_per_second": 151.50203750845742
997
+ },
998
+ "ScribbleLens": {
999
+ "num_samples": 14,
1000
+ "output_tokens": {
1001
+ "count": 14,
1002
+ "mean": 567.5714285714286,
1003
+ "p50": 569.0,
1004
+ "p95": 1024.0,
1005
+ "p99": 1024.0,
1006
+ "max": 1024.0
1007
+ },
1008
+ "reference_tokens": {
1009
+ "count": 14,
1010
+ "mean": 451.14285714285717,
1011
+ "p50": 480.5,
1012
+ "p95": 590.7,
1013
+ "p99": 591.74,
1014
+ "max": 592.0
1015
+ },
1016
+ "output_reference_token_ratio": {
1017
+ "count": 14,
1018
+ "mean": 1.2735782748793814,
1019
+ "p50": 1.1085131559332142,
1020
+ "p95": 2.3024935067671866,
1021
+ "p99": 2.4932530437851987,
1022
+ "max": 2.5409429280397022
1023
+ },
1024
+ "prediction_chars": {
1025
+ "count": 14,
1026
+ "mean": 1490.0,
1027
+ "p50": 1583.5,
1028
+ "p95": 2222.3999999999996,
1029
+ "p99": 2442.8799999999997,
1030
+ "max": 2498.0
1031
+ },
1032
+ "reference_chars": {
1033
+ "count": 14,
1034
+ "mean": 1382.9285714285713,
1035
+ "p50": 1489.0,
1036
+ "p95": 1795.55,
1037
+ "p99": 1802.31,
1038
+ "max": 1804.0
1039
+ },
1040
+ "max_new_tokens_hit_rate": 0.14285714285714285,
1041
+ "eos_emitted_rate": 0.8571428571428571,
1042
+ "empty_output_rate": 0.0,
1043
+ "loop_guard_trigger_rate": 0.14285714285714285,
1044
+ "repetition_3gram_fraction": {
1045
+ "count": 14,
1046
+ "mean": 0.19904074841459948,
1047
+ "p50": 0.056307386702582396,
1048
+ "p95": 0.9287671232876713,
1049
+ "p99": 0.9348727984344423,
1050
+ "max": 0.9363992172211351
1051
+ },
1052
+ "region_count_exact_rate": 1.0,
1053
+ "line_count_exact_rate": 0.2857142857142857,
1054
+ "marker_reference_counts": {
1055
+ "<del>": 0,
1056
+ "<gap>": 0
1057
+ },
1058
+ "marker_prediction_counts": {
1059
+ "<del>": 0,
1060
+ "<gap>": 0
1061
+ },
1062
+ "generation_seconds_per_page": {
1063
+ "count": 14,
1064
+ "mean": 4.2115955394287345,
1065
+ "p50": 3.213291670250328,
1066
+ "p95": 6.0885678070008,
1067
+ "p99": 6.0885678070008,
1068
+ "max": 6.0885678070008
1069
+ },
1070
+ "generation_seconds_per_sample": {
1071
+ "count": 14,
1072
+ "mean": 4.2115955394287345,
1073
+ "p50": 3.213291670250328,
1074
+ "p95": 6.0885678070008,
1075
+ "p99": 6.0885678070008,
1076
+ "max": 6.0885678070008
1077
+ },
1078
+ "generation_wall_seconds_total": 58.96233755200228,
1079
+ "generation_pages_per_second": 0.2374397044155957,
1080
+ "generated_tokens_per_second": 134.76399223473737
1081
+ }
1082
+ }
1083
+ },
1084
+ "checkpoint_dir": "<redacted-local-path>",
1085
+ "architecture": "qwen3_5_vlm_script_grouped_supervised_mlp_moe",
1086
+ "dataset_config": {
1087
+ "dataset_name": "page_multitask",
1088
+ "data_root": "<redacted-local-path>",
1089
+ "train_json_path": "<redacted-local-path>",
1090
+ "valid_json_path": "<redacted-local-path>",
1091
+ "test_json_path": "<redacted-local-path>",
1092
+ "image_root": "<redacted-local-path>",
1093
+ "prompt_text": "",
1094
+ "expected_sources": [
1095
+ "BRESSAY",
1096
+ "Bentham",
1097
+ "HWDB2.0",
1098
+ "IAM",
1099
+ "ICFHR2016",
1100
+ "Images_Courriers",
1101
+ "ScribbleLens"
1102
+ ],
1103
+ "excluded_sources": [
1104
+ "Eparchos"
1105
+ ],
1106
+ "excluded_train_tasks": [],
1107
+ "excluded_valid_tasks": [],
1108
+ "structure_task_policy": "page_total_physical_line_count_v3",
1109
+ "image_resize_policy": "area_ratio",
1110
+ "image_resize_factor": 32,
1111
+ "image_max_aspect_ratio": 200.0,
1112
+ "image_min_pixels": 589824,
1113
+ "image_max_pixels": 1572864,
1114
+ "resolution_profile": "area_ratio_min589824_max1572864_ctx2560",
1115
+ "max_text_length": 2560,
1116
+ "processor_image_size": {
1117
+ "shortest_edge": 589824,
1118
+ "longest_edge": 1572864
1119
+ },
1120
+ "sampling_mode": "full_pass",
1121
+ "microbatch_invariant_token_loss": true,
1122
+ "training_terminal_id": 248044,
1123
+ "generation_stop_ids": [
1124
+ 248044
1125
+ ],
1126
+ "atomic_ocr_marker_ids": {
1127
+ "<del>": 248077,
1128
+ "<gap>": 248078
1129
+ },
1130
+ "page_htr_eos_weight": 4.0,
1131
+ "token_ul_coef": 0.0,
1132
+ "token_ul_page_fraction": 0.0,
1133
+ "loop_guard": {
1134
+ "ngram": 3,
1135
+ "window": 96,
1136
+ "threshold": 0.6,
1137
+ "min_tokens": 128,
1138
+ "consecutive": 2
1139
+ }
1140
+ },
1141
+ "best_metric": 0.16438965258561158,
1142
+ "evaluations_no_improve": 0,
1143
+ "validation_has_started": true,
1144
+ "top_checkpoints": [
1145
+ {
1146
+ "cer": 0.16947443202988768,
1147
+ "global_step": 638,
1148
+ "epoch_progress": 1.0,
1149
+ "path": "<redacted-local-path>"
1150
+ }
1151
+ ],
1152
+ "learning_rate": 0.0,
1153
+ "loss_weighting": "optimizer_window_eos_weighted_ce_plus_token_ul_plus_router_balance_and_lam_sparse",
1154
+ "moe_signature": {
1155
+ "enabled": true,
1156
+ "ablation_mode": "sparsegen_shared_lamsparse_balance",
1157
+ "routing_grouping": "unsupervised4",
1158
+ "language_groups": [
1159
+ "all"
1160
+ ],
1161
+ "language_experts": 4,
1162
+ "shared_experts": 1,
1163
+ "shared_mix": 0.25,
1164
+ "layer_indices": [
1165
+ 1,
1166
+ 5,
1167
+ 9,
1168
+ 13,
1169
+ 17,
1170
+ 21
1171
+ ],
1172
+ "routing_fn": "sparsegen",
1173
+ "router_ce_coef": 0.0,
1174
+ "router_ce_class_weighting": "none",
1175
+ "load_balance_coef": 0.01,
1176
+ "load_balance_warmup_fraction": 0.1,
1177
+ "load_balance_warmup_updates": 64,
1178
+ "lam_sparse_coef": 0.01,
1179
+ "lam_sparse_warmup_fraction": 0.1,
1180
+ "router_temperature": 1.0,
1181
+ "sparsegen_hidden": 128,
1182
+ "sparsegen_eps": 0.01,
1183
+ "expert_init": "copy",
1184
+ "expert_train_dtype": "match_base",
1185
+ "freeze_base": false
1186
+ },
1187
+ "moe_mlp": {
1188
+ "routing_grouping": "unsupervised4",
1189
+ "routing_group_description": "four source-agnostic routed experts; no router supervision",
1190
+ "routing_fn": "sparsegen",
1191
+ "router_temperature": 1.0,
1192
+ "load_balance_coef": 0.01,
1193
+ "load_balance_warmup_fraction": 0.1,
1194
+ "load_balance_warmup_updates": 64,
1195
+ "router_ce_coef": 0.0,
1196
+ "lam_sparse_coef": 0.01,
1197
+ "lam_sparse_warmup_fraction": 0.1,
1198
+ "lam_sparse_warmup_updates": 64,
1199
+ "shared_mix": 0.25,
1200
+ "hard_top_k": false,
1201
+ "active_expert_budget": 0,
1202
+ "routed_top_k": 4,
1203
+ "freeze_base": false,
1204
+ "language_group_counts": {},
1205
+ "language_group_class_weights": {},
1206
+ "metadata_used_for_training_router_labels": false,
1207
+ "metadata_used_for_inference_routing": false
1208
+ }
1209
+ }
metrics.json ADDED
@@ -0,0 +1,744 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cer_generate": 0.16438965258561158,
3
+ "wer_generate": 0.33299821549752434,
4
+ "num_samples": 962,
5
+ "safety_cer_generate_diagnostic": 0.15750271999682047,
6
+ "loop_guard_trigger_rate": 0.028066528066528068,
7
+ "by_source": {
8
+ "BRESSAY": {
9
+ "cer_generate": 0.20291806036232865,
10
+ "wer_generate": 0.3477519644157897,
11
+ "num_samples": 154
12
+ },
13
+ "Bentham": {
14
+ "cer_generate": 0.1773907135467334,
15
+ "wer_generate": 0.4670343876583642,
16
+ "num_samples": 50
17
+ },
18
+ "HWDB2.0": {
19
+ "cer_generate": 0.031286644544796786,
20
+ "wer_generate": 0.3711730306157551,
21
+ "num_samples": 300
22
+ },
23
+ "IAM": {
24
+ "cer_generate": 0.020206642421906985,
25
+ "wer_generate": 0.06037131027113664,
26
+ "num_samples": 116
27
+ },
28
+ "ICFHR2016": {
29
+ "cer_generate": 0.4769110835970101,
30
+ "wer_generate": 0.8564913347522043,
31
+ "num_samples": 50
32
+ },
33
+ "Images_Courriers": {
34
+ "cer_generate": 0.08557112516173132,
35
+ "wer_generate": 0.1783308596871789,
36
+ "num_samples": 278
37
+ },
38
+ "ScribbleLens": {
39
+ "cer_generate": 0.4741920423302381,
40
+ "wer_generate": 0.87206106870229,
41
+ "num_samples": 14
42
+ }
43
+ },
44
+ "safety_cer_by_source_diagnostic": {
45
+ "BRESSAY": 0.20162264844067207,
46
+ "Bentham": 0.1496116489862726,
47
+ "HWDB2.0": 0.031286644544796786,
48
+ "IAM": 0.020206642421906985,
49
+ "ICFHR2016": 0.4769110835970101,
50
+ "Images_Courriers": 0.07008153699680199,
51
+ "ScribbleLens": 0.4393318462416351
52
+ },
53
+ "macro_source_cer_diagnostic": 0.20978233028067791,
54
+ "macro_page_cer_diagnostic": 0.10694783478550064,
55
+ "by_task": {
56
+ "page_htr": {
57
+ "cer_generate": 0.16438965258561158,
58
+ "wer_generate": 0.33299821549752434,
59
+ "num_samples": 962
60
+ }
61
+ },
62
+ "by_language_group": {
63
+ "all": {
64
+ "cer_generate": 0.16438965258561158,
65
+ "wer_generate": 0.33299821549752434,
66
+ "num_samples": 962
67
+ }
68
+ },
69
+ "generation_diagnostics": {
70
+ "num_samples": 962,
71
+ "output_tokens": {
72
+ "count": 962,
73
+ "mean": 277.5686070686071,
74
+ "p50": 190.0,
75
+ "p95": 754.0,
76
+ "p99": 1024.0,
77
+ "max": 1024.0
78
+ },
79
+ "reference_tokens": {
80
+ "count": 962,
81
+ "mean": 260.11538461538464,
82
+ "p50": 186.0,
83
+ "p95": 672.9499999999999,
84
+ "p99": 806.39,
85
+ "max": 944.0
86
+ },
87
+ "output_reference_token_ratio": {
88
+ "count": 962,
89
+ "mean": 1.0538785060645548,
90
+ "p50": 1.0136054421768708,
91
+ "p95": 1.1400505503262113,
92
+ "p99": 2.213666242038215,
93
+ "max": 5.333333333333333
94
+ },
95
+ "prediction_chars": {
96
+ "count": 962,
97
+ "mean": 860.0436590436591,
98
+ "p50": 501.5,
99
+ "p95": 2838.95,
100
+ "p99": 3455.29,
101
+ "max": 4349.0
102
+ },
103
+ "reference_chars": {
104
+ "count": 962,
105
+ "mean": 855.5197505197506,
106
+ "p50": 507.0,
107
+ "p95": 2833.049999999999,
108
+ "p99": 3482.68,
109
+ "max": 4298.0
110
+ },
111
+ "max_new_tokens_hit_rate": 0.02702702702702703,
112
+ "eos_emitted_rate": 0.972972972972973,
113
+ "empty_output_rate": 0.0,
114
+ "loop_guard_trigger_rate": 0.028066528066528068,
115
+ "repetition_3gram_fraction": {
116
+ "count": 962,
117
+ "mean": 0.042803856253832664,
118
+ "p50": 0.017991044937152756,
119
+ "p95": 0.10372954615622096,
120
+ "p99": 0.7909393346379647,
121
+ "max": 0.9363992172211351
122
+ },
123
+ "region_count_exact_rate": 1.0,
124
+ "line_count_exact_rate": 0.8056133056133056,
125
+ "marker_reference_counts": {
126
+ "<del>": 576,
127
+ "<gap>": 297
128
+ },
129
+ "marker_prediction_counts": {
130
+ "<del>": 0,
131
+ "<gap>": 0
132
+ },
133
+ "generation_seconds_per_page": {
134
+ "count": 962,
135
+ "mean": 1.8000839774241226,
136
+ "p50": 1.1455812877502467,
137
+ "p95": 5.233787497999401,
138
+ "p99": 5.325606547574771,
139
+ "max": 6.0885678070008
140
+ },
141
+ "generation_seconds_per_sample": {
142
+ "count": 962,
143
+ "mean": 1.8000839774241226,
144
+ "p50": 1.1455812877502467,
145
+ "p95": 5.233787497999401,
146
+ "p99": 5.325606547574771,
147
+ "max": 6.0885678070008
148
+ },
149
+ "generation_wall_seconds_total": 1731.680786282006,
150
+ "generation_pages_per_second": 0.5555296378066629,
151
+ "generated_tokens_per_second": 154.19758775132323
152
+ },
153
+ "evaluation_wall_seconds": 1747.2859408959994,
154
+ "diagnostics_by_source": {
155
+ "BRESSAY": {
156
+ "num_samples": 154,
157
+ "output_tokens": {
158
+ "count": 154,
159
+ "mean": 685.2857142857143,
160
+ "p50": 655.5,
161
+ "p95": 1024.0,
162
+ "p99": 1024.0,
163
+ "max": 1024.0
164
+ },
165
+ "reference_tokens": {
166
+ "count": 154,
167
+ "mean": 646.6883116883117,
168
+ "p50": 636.5,
169
+ "p95": 814.4,
170
+ "p99": 925.35,
171
+ "max": 944.0
172
+ },
173
+ "output_reference_token_ratio": {
174
+ "count": 154,
175
+ "mean": 1.0582472392281992,
176
+ "p50": 1.0112063214077225,
177
+ "p95": 1.4542156304832359,
178
+ "p99": 1.654286506305147,
179
+ "max": 1.7038269550748752
180
+ },
181
+ "prediction_chars": {
182
+ "count": 154,
183
+ "mean": 2685.525974025974,
184
+ "p50": 2648.0,
185
+ "p95": 3469.85,
186
+ "p99": 4216.37,
187
+ "max": 4349.0
188
+ },
189
+ "reference_chars": {
190
+ "count": 154,
191
+ "mean": 2708.8311688311687,
192
+ "p50": 2663.5,
193
+ "p95": 3513.4,
194
+ "p99": 3693.27,
195
+ "max": 4298.0
196
+ },
197
+ "max_new_tokens_hit_rate": 0.09090909090909091,
198
+ "eos_emitted_rate": 0.9090909090909091,
199
+ "empty_output_rate": 0.0,
200
+ "loop_guard_trigger_rate": 0.1038961038961039,
201
+ "repetition_3gram_fraction": {
202
+ "count": 154,
203
+ "mean": 0.08230364542639139,
204
+ "p50": 0.027308844865693127,
205
+ "p95": 0.44138943248532264,
206
+ "p99": 0.793170254403131,
207
+ "max": 0.821917808219178
208
+ },
209
+ "region_count_exact_rate": 1.0,
210
+ "line_count_exact_rate": 0.7012987012987013,
211
+ "marker_reference_counts": {
212
+ "<del>": 560,
213
+ "<gap>": 57
214
+ },
215
+ "marker_prediction_counts": {
216
+ "<del>": 0,
217
+ "<gap>": 0
218
+ },
219
+ "generation_seconds_per_page": {
220
+ "count": 154,
221
+ "mean": 4.209619012707757,
222
+ "p50": 3.977695644999585,
223
+ "p95": 5.30480367291184,
224
+ "p99": 5.341092155499609,
225
+ "max": 5.341092155499609
226
+ },
227
+ "generation_seconds_per_sample": {
228
+ "count": 154,
229
+ "mean": 4.209619012707757,
230
+ "p50": 3.977695644999585,
231
+ "p95": 5.30480367291184,
232
+ "p99": 5.341092155499609,
233
+ "max": 5.341092155499609
234
+ },
235
+ "generation_wall_seconds_total": 648.2813279569946,
236
+ "generation_pages_per_second": 0.23755118859480093,
237
+ "generated_tokens_per_second": 162.79043595560856
238
+ },
239
+ "Bentham": {
240
+ "num_samples": 50,
241
+ "output_tokens": {
242
+ "count": 50,
243
+ "mean": 422.12,
244
+ "p50": 332.5,
245
+ "p95": 1024.0,
246
+ "p99": 1024.0,
247
+ "max": 1024.0
248
+ },
249
+ "reference_tokens": {
250
+ "count": 50,
251
+ "mean": 330.94,
252
+ "p50": 320.5,
253
+ "p95": 481.0,
254
+ "p99": 536.14,
255
+ "max": 543.0
256
+ },
257
+ "output_reference_token_ratio": {
258
+ "count": 50,
259
+ "mean": 1.2766760861172306,
260
+ "p50": 1.0,
261
+ "p95": 3.2397365295324465,
262
+ "p99": 3.6336356432156376,
263
+ "max": 3.696750902527076
264
+ },
265
+ "prediction_chars": {
266
+ "count": 50,
267
+ "mean": 1358.92,
268
+ "p50": 1321.5,
269
+ "p95": 2073.499999999999,
270
+ "p99": 2334.75,
271
+ "max": 2347.0
272
+ },
273
+ "reference_chars": {
274
+ "count": 50,
275
+ "mean": 1310.18,
276
+ "p50": 1252.5,
277
+ "p95": 1860.35,
278
+ "p99": 2225.5399999999995,
279
+ "max": 2350.0
280
+ },
281
+ "max_new_tokens_hit_rate": 0.14,
282
+ "eos_emitted_rate": 0.86,
283
+ "empty_output_rate": 0.0,
284
+ "loop_guard_trigger_rate": 0.14,
285
+ "repetition_3gram_fraction": {
286
+ "count": 50,
287
+ "mean": 0.15351462873620134,
288
+ "p50": 0.0354426409472281,
289
+ "p95": 0.8212818003913894,
290
+ "p99": 0.8724266144814089,
291
+ "max": 0.9021526418786693
292
+ },
293
+ "region_count_exact_rate": 1.0,
294
+ "line_count_exact_rate": 0.24,
295
+ "marker_reference_counts": {
296
+ "<del>": 0,
297
+ "<gap>": 4
298
+ },
299
+ "marker_prediction_counts": {
300
+ "<del>": 0,
301
+ "<gap>": 0
302
+ },
303
+ "generation_seconds_per_page": {
304
+ "count": 50,
305
+ "mean": 3.4135301617999723,
306
+ "p50": 2.6635789757492603,
307
+ "p95": 5.2451707629998054,
308
+ "p99": 5.2451707629998054,
309
+ "max": 5.2451707629998054
310
+ },
311
+ "generation_seconds_per_sample": {
312
+ "count": 50,
313
+ "mean": 3.4135301617999723,
314
+ "p50": 2.6635789757492603,
315
+ "p95": 5.2451707629998054,
316
+ "p99": 5.2451707629998054,
317
+ "max": 5.2451707629998054
318
+ },
319
+ "generation_wall_seconds_total": 170.6765080899986,
320
+ "generation_pages_per_second": 0.29295185705132154,
321
+ "generated_tokens_per_second": 123.66083789850386
322
+ },
323
+ "HWDB2.0": {
324
+ "num_samples": 300,
325
+ "output_tokens": {
326
+ "count": 300,
327
+ "mean": 167.40666666666667,
328
+ "p50": 167.0,
329
+ "p95": 201.0,
330
+ "p99": 213.0,
331
+ "max": 214.0
332
+ },
333
+ "reference_tokens": {
334
+ "count": 300,
335
+ "mean": 165.7,
336
+ "p50": 164.5,
337
+ "p95": 199.0,
338
+ "p99": 209.01999999999998,
339
+ "max": 213.0
340
+ },
341
+ "output_reference_token_ratio": {
342
+ "count": 300,
343
+ "mean": 1.0106741074467964,
344
+ "p50": 1.0116959064327486,
345
+ "p95": 1.038722245496439,
346
+ "p99": 1.0508463221219577,
347
+ "max": 1.0793650793650793
348
+ },
349
+ "prediction_chars": {
350
+ "count": 300,
351
+ "mean": 272.2966666666667,
352
+ "p50": 269.0,
353
+ "p95": 313.0,
354
+ "p99": 326.0,
355
+ "max": 332.0
356
+ },
357
+ "reference_chars": {
358
+ "count": 300,
359
+ "mean": 276.35333333333335,
360
+ "p50": 275.0,
361
+ "p95": 317.15000000000003,
362
+ "p99": 328.03999999999996,
363
+ "max": 343.0
364
+ },
365
+ "max_new_tokens_hit_rate": 0.0,
366
+ "eos_emitted_rate": 1.0,
367
+ "empty_output_rate": 0.0,
368
+ "loop_guard_trigger_rate": 0.0,
369
+ "repetition_3gram_fraction": {
370
+ "count": 300,
371
+ "mean": 0.01982862275667522,
372
+ "p50": 0.01365203615692856,
373
+ "p95": 0.051183712121212144,
374
+ "p99": 0.05883968972204266,
375
+ "max": 0.07017543859649122
376
+ },
377
+ "region_count_exact_rate": 1.0,
378
+ "line_count_exact_rate": 0.9633333333333334,
379
+ "marker_reference_counts": {
380
+ "<del>": 0,
381
+ "<gap>": 236
382
+ },
383
+ "marker_prediction_counts": {
384
+ "<del>": 0,
385
+ "<gap>": 0
386
+ },
387
+ "generation_seconds_per_page": {
388
+ "count": 300,
389
+ "mean": 1.0133197663800093,
390
+ "p50": 0.9922402704996784,
391
+ "p95": 1.1455812877502467,
392
+ "p99": 1.1506245174996366,
393
+ "max": 1.1506245174996366
394
+ },
395
+ "generation_seconds_per_sample": {
396
+ "count": 300,
397
+ "mean": 1.0133197663800093,
398
+ "p50": 0.9922402704996784,
399
+ "p95": 1.1455812877502467,
400
+ "p99": 1.1506245174996366,
401
+ "max": 1.1506245174996366
402
+ },
403
+ "generation_wall_seconds_total": 303.9959299140028,
404
+ "generation_pages_per_second": 0.986855317717138,
405
+ "generated_tokens_per_second": 165.20615922130034
406
+ },
407
+ "IAM": {
408
+ "num_samples": 116,
409
+ "output_tokens": {
410
+ "count": 116,
411
+ "mean": 98.0,
412
+ "p50": 97.0,
413
+ "p95": 127.0,
414
+ "p99": 155.04999999999993,
415
+ "max": 157.0
416
+ },
417
+ "reference_tokens": {
418
+ "count": 116,
419
+ "mean": 95.91379310344827,
420
+ "p50": 94.5,
421
+ "p95": 123.75,
422
+ "p99": 151.04999999999993,
423
+ "max": 155.0
424
+ },
425
+ "output_reference_token_ratio": {
426
+ "count": 116,
427
+ "mean": 1.0228742961042576,
428
+ "p50": 1.0209429824561402,
429
+ "p95": 1.0460884353741497,
430
+ "p99": 1.093605025773196,
431
+ "max": 1.125
432
+ },
433
+ "prediction_chars": {
434
+ "count": 116,
435
+ "mean": 364.2844827586207,
436
+ "p50": 358.5,
437
+ "p95": 501.25,
438
+ "p99": 582.5499999999997,
439
+ "max": 610.0
440
+ },
441
+ "reference_chars": {
442
+ "count": 116,
443
+ "mean": 363.9396551724138,
444
+ "p50": 358.5,
445
+ "p95": 497.5,
446
+ "p99": 580.8499999999998,
447
+ "max": 610.0
448
+ },
449
+ "max_new_tokens_hit_rate": 0.0,
450
+ "eos_emitted_rate": 1.0,
451
+ "empty_output_rate": 0.0,
452
+ "loop_guard_trigger_rate": 0.0,
453
+ "repetition_3gram_fraction": {
454
+ "count": 116,
455
+ "mean": 0.005795495058881031,
456
+ "p50": 0.0,
457
+ "p95": 0.029751131221719462,
458
+ "p99": 0.050506072874493886,
459
+ "max": 0.11538461538461542
460
+ },
461
+ "region_count_exact_rate": 1.0,
462
+ "line_count_exact_rate": 1.0,
463
+ "marker_reference_counts": {
464
+ "<del>": 0,
465
+ "<gap>": 0
466
+ },
467
+ "marker_prediction_counts": {
468
+ "<del>": 0,
469
+ "<gap>": 0
470
+ },
471
+ "generation_seconds_per_page": {
472
+ "count": 116,
473
+ "mean": 0.6505729309310482,
474
+ "p50": 0.6363210999998046,
475
+ "p95": 0.8624965879998854,
476
+ "p99": 0.8652169607494216,
477
+ "max": 0.8652169607494216
478
+ },
479
+ "generation_seconds_per_sample": {
480
+ "count": 116,
481
+ "mean": 0.6505729309310482,
482
+ "p50": 0.6363210999998046,
483
+ "p95": 0.8624965879998854,
484
+ "p99": 0.8652169607494216,
485
+ "max": 0.8652169607494216
486
+ },
487
+ "generation_wall_seconds_total": 75.46645998800159,
488
+ "generation_pages_per_second": 1.5371066831337106,
489
+ "generated_tokens_per_second": 150.63645494710363
490
+ },
491
+ "ICFHR2016": {
492
+ "num_samples": 50,
493
+ "output_tokens": {
494
+ "count": 50,
495
+ "mean": 228.18,
496
+ "p50": 230.5,
497
+ "p95": 270.0,
498
+ "p99": 661.3999999999985,
499
+ "max": 1024.0
500
+ },
501
+ "reference_tokens": {
502
+ "count": 50,
503
+ "mean": 192.18,
504
+ "p50": 209.5,
505
+ "p95": 254.1,
506
+ "p99": 260.59,
507
+ "max": 265.0
508
+ },
509
+ "output_reference_token_ratio": {
510
+ "count": 50,
511
+ "mean": 1.214897954381385,
512
+ "p50": 1.0978468899521532,
513
+ "p95": 1.4179384203480587,
514
+ "p99": 3.5281818181818108,
515
+ "max": 5.333333333333333
516
+ },
517
+ "prediction_chars": {
518
+ "count": 50,
519
+ "mean": 496.52,
520
+ "p50": 494.5,
521
+ "p95": 596.1,
522
+ "p99": 1514.1199999999967,
523
+ "max": 2353.0
524
+ },
525
+ "reference_chars": {
526
+ "count": 50,
527
+ "mean": 459.26,
528
+ "p50": 500.5,
529
+ "p95": 603.5,
530
+ "p99": 624.02,
531
+ "max": 625.0
532
+ },
533
+ "max_new_tokens_hit_rate": 0.02,
534
+ "eos_emitted_rate": 0.98,
535
+ "empty_output_rate": 0.0,
536
+ "loop_guard_trigger_rate": 0.0,
537
+ "repetition_3gram_fraction": {
538
+ "count": 50,
539
+ "mean": 0.06765920660542266,
540
+ "p50": 0.040066703526012604,
541
+ "p95": 0.15343333333333317,
542
+ "p99": 0.5539309761517781,
543
+ "max": 0.8825831702544031
544
+ },
545
+ "region_count_exact_rate": 1.0,
546
+ "line_count_exact_rate": 0.6,
547
+ "marker_reference_counts": {
548
+ "<del>": 16,
549
+ "<gap>": 0
550
+ },
551
+ "marker_prediction_counts": {
552
+ "<del>": 0,
553
+ "<gap>": 0
554
+ },
555
+ "generation_seconds_per_page": {
556
+ "count": 50,
557
+ "mean": 1.6397333451399028,
558
+ "p50": 1.3918661629995768,
559
+ "p95": 5.401545224499387,
560
+ "p99": 5.401545224499387,
561
+ "max": 5.401545224499387
562
+ },
563
+ "generation_seconds_per_sample": {
564
+ "count": 50,
565
+ "mean": 1.6397333451399028,
566
+ "p50": 1.3918661629995768,
567
+ "p95": 5.401545224499387,
568
+ "p99": 5.401545224499387,
569
+ "max": 5.401545224499387
570
+ },
571
+ "generation_wall_seconds_total": 81.98666725699513,
572
+ "generation_pages_per_second": 0.6098552566269119,
573
+ "generated_tokens_per_second": 139.15677245712874
574
+ },
575
+ "Images_Courriers": {
576
+ "num_samples": 278,
577
+ "output_tokens": {
578
+ "count": 278,
579
+ "mean": 213.79856115107913,
580
+ "p50": 205.0,
581
+ "p95": 289.44999999999993,
582
+ "p99": 383.46000000000004,
583
+ "max": 1024.0
584
+ },
585
+ "reference_tokens": {
586
+ "count": 278,
587
+ "mean": 206.23381294964028,
588
+ "p50": 201.0,
589
+ "p95": 289.44999999999993,
590
+ "p99": 337.7300000000009,
591
+ "max": 450.0
592
+ },
593
+ "output_reference_token_ratio": {
594
+ "count": 278,
595
+ "mean": 1.0309230199193677,
596
+ "p50": 1.013667496886675,
597
+ "p95": 1.0607790801851575,
598
+ "p99": 1.239687500000001,
599
+ "max": 4.19672131147541
600
+ },
601
+ "prediction_chars": {
602
+ "count": 278,
603
+ "mean": 633.8597122302158,
604
+ "p50": 605.5,
605
+ "p95": 891.3,
606
+ "p99": 1262.4400000000023,
607
+ "max": 3107.0
608
+ },
609
+ "reference_chars": {
610
+ "count": 278,
611
+ "mean": 621.9208633093525,
612
+ "p50": 604.5,
613
+ "p95": 873.0999999999997,
614
+ "p99": 1076.3100000000036,
615
+ "max": 1486.0
616
+ },
617
+ "max_new_tokens_hit_rate": 0.007194244604316547,
618
+ "eos_emitted_rate": 0.9928057553956835,
619
+ "empty_output_rate": 0.0,
620
+ "loop_guard_trigger_rate": 0.007194244604316547,
621
+ "repetition_3gram_fraction": {
622
+ "count": 278,
623
+ "mean": 0.02890799216476402,
624
+ "p50": 0.017416582406471204,
625
+ "p95": 0.06890628879509099,
626
+ "p99": 0.16417016953902247,
627
+ "max": 0.7681017612524462
628
+ },
629
+ "region_count_exact_rate": 1.0,
630
+ "line_count_exact_rate": 0.7769784172661871,
631
+ "marker_reference_counts": {
632
+ "<del>": 0,
633
+ "<gap>": 0
634
+ },
635
+ "marker_prediction_counts": {
636
+ "<del>": 0,
637
+ "<gap>": 0
638
+ },
639
+ "generation_seconds_per_page": {
640
+ "count": 278,
641
+ "mean": 1.4111926457698238,
642
+ "p50": 1.2364898257501409,
643
+ "p95": 1.9682605375001003,
644
+ "p99": 5.259757931499735,
645
+ "max": 5.259757931499735
646
+ },
647
+ "generation_seconds_per_sample": {
648
+ "count": 278,
649
+ "mean": 1.4111926457698238,
650
+ "p50": 1.2364898257501409,
651
+ "p95": 1.9682605375001003,
652
+ "p99": 5.259757931499735,
653
+ "max": 5.259757931499735
654
+ },
655
+ "generation_wall_seconds_total": 392.31155552401106,
656
+ "generation_pages_per_second": 0.7086204729011233,
657
+ "generated_tokens_per_second": 151.50203750845742
658
+ },
659
+ "ScribbleLens": {
660
+ "num_samples": 14,
661
+ "output_tokens": {
662
+ "count": 14,
663
+ "mean": 567.5714285714286,
664
+ "p50": 569.0,
665
+ "p95": 1024.0,
666
+ "p99": 1024.0,
667
+ "max": 1024.0
668
+ },
669
+ "reference_tokens": {
670
+ "count": 14,
671
+ "mean": 451.14285714285717,
672
+ "p50": 480.5,
673
+ "p95": 590.7,
674
+ "p99": 591.74,
675
+ "max": 592.0
676
+ },
677
+ "output_reference_token_ratio": {
678
+ "count": 14,
679
+ "mean": 1.2735782748793814,
680
+ "p50": 1.1085131559332142,
681
+ "p95": 2.3024935067671866,
682
+ "p99": 2.4932530437851987,
683
+ "max": 2.5409429280397022
684
+ },
685
+ "prediction_chars": {
686
+ "count": 14,
687
+ "mean": 1490.0,
688
+ "p50": 1583.5,
689
+ "p95": 2222.3999999999996,
690
+ "p99": 2442.8799999999997,
691
+ "max": 2498.0
692
+ },
693
+ "reference_chars": {
694
+ "count": 14,
695
+ "mean": 1382.9285714285713,
696
+ "p50": 1489.0,
697
+ "p95": 1795.55,
698
+ "p99": 1802.31,
699
+ "max": 1804.0
700
+ },
701
+ "max_new_tokens_hit_rate": 0.14285714285714285,
702
+ "eos_emitted_rate": 0.8571428571428571,
703
+ "empty_output_rate": 0.0,
704
+ "loop_guard_trigger_rate": 0.14285714285714285,
705
+ "repetition_3gram_fraction": {
706
+ "count": 14,
707
+ "mean": 0.19904074841459948,
708
+ "p50": 0.056307386702582396,
709
+ "p95": 0.9287671232876713,
710
+ "p99": 0.9348727984344423,
711
+ "max": 0.9363992172211351
712
+ },
713
+ "region_count_exact_rate": 1.0,
714
+ "line_count_exact_rate": 0.2857142857142857,
715
+ "marker_reference_counts": {
716
+ "<del>": 0,
717
+ "<gap>": 0
718
+ },
719
+ "marker_prediction_counts": {
720
+ "<del>": 0,
721
+ "<gap>": 0
722
+ },
723
+ "generation_seconds_per_page": {
724
+ "count": 14,
725
+ "mean": 4.2115955394287345,
726
+ "p50": 3.213291670250328,
727
+ "p95": 6.0885678070008,
728
+ "p99": 6.0885678070008,
729
+ "max": 6.0885678070008
730
+ },
731
+ "generation_seconds_per_sample": {
732
+ "count": 14,
733
+ "mean": 4.2115955394287345,
734
+ "p50": 3.213291670250328,
735
+ "p95": 6.0885678070008,
736
+ "p99": 6.0885678070008,
737
+ "max": 6.0885678070008
738
+ },
739
+ "generation_wall_seconds_total": 58.96233755200228,
740
+ "generation_pages_per_second": 0.2374397044155957,
741
+ "generated_tokens_per_second": 134.76399223473737
742
+ }
743
+ }
744
+ }
processor_config.json ADDED
@@ -0,0 +1,60 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "image_processor": {
3
+ "do_convert_rgb": true,
4
+ "do_normalize": true,
5
+ "do_rescale": true,
6
+ "do_resize": true,
7
+ "image_mean": [
8
+ 0.5,
9
+ 0.5,
10
+ 0.5
11
+ ],
12
+ "image_processor_type": "Qwen2VLImageProcessor",
13
+ "image_std": [
14
+ 0.5,
15
+ 0.5,
16
+ 0.5
17
+ ],
18
+ "merge_size": 2,
19
+ "patch_size": 16,
20
+ "resample": 3,
21
+ "rescale_factor": 0.00392156862745098,
22
+ "size": {
23
+ "longest_edge": 1572864,
24
+ "shortest_edge": 589824
25
+ },
26
+ "temporal_patch_size": 2
27
+ },
28
+ "processor_class": "Qwen3VLProcessor",
29
+ "video_processor": {
30
+ "do_convert_rgb": true,
31
+ "do_normalize": true,
32
+ "do_rescale": true,
33
+ "do_resize": true,
34
+ "do_sample_frames": true,
35
+ "fps": 2,
36
+ "image_mean": [
37
+ 0.5,
38
+ 0.5,
39
+ 0.5
40
+ ],
41
+ "image_std": [
42
+ 0.5,
43
+ 0.5,
44
+ 0.5
45
+ ],
46
+ "max_frames": 768,
47
+ "merge_size": 2,
48
+ "min_frames": 4,
49
+ "patch_size": 16,
50
+ "resample": 3,
51
+ "rescale_factor": 0.00392156862745098,
52
+ "return_metadata": false,
53
+ "size": {
54
+ "longest_edge": 1572864,
55
+ "shortest_edge": 589824
56
+ },
57
+ "temporal_patch_size": 2,
58
+ "video_processor_type": "Qwen3VLVideoProcessor"
59
+ }
60
+ }
tokenizer.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f1f6887f1ab36de8834180debb9f07a1756ce4263fe11bdac3a84f3c57faa1aa
3
+ size 19989691
tokenizer_config.json ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "add_prefix_space": false,
3
+ "audio_bos_token": "<|audio_start|>",
4
+ "audio_eos_token": "<|audio_end|>",
5
+ "audio_token": "<|audio_pad|>",
6
+ "backend": "tokenizers",
7
+ "bos_token": null,
8
+ "clean_up_tokenization_spaces": false,
9
+ "eos_token": "<|endoftext|>",
10
+ "errors": "replace",
11
+ "image_token": "<|image_pad|>",
12
+ "is_local": true,
13
+ "local_files_only": true,
14
+ "model_max_length": 262144,
15
+ "model_specific_special_tokens": {
16
+ "audio_bos_token": "<|audio_start|>",
17
+ "audio_eos_token": "<|audio_end|>",
18
+ "audio_token": "<|audio_pad|>",
19
+ "image_token": "<|image_pad|>",
20
+ "video_token": "<|video_pad|>",
21
+ "vision_bos_token": "<|vision_start|>",
22
+ "vision_eos_token": "<|vision_end|>"
23
+ },
24
+ "pad_token": "<|endoftext|>",
25
+ "pretokenize_regex": "(?i:'s|'t|'re|'ve|'m|'ll|'d)|[^\\r\\n\\p{L}\\p{N}]?[\\p{L}\\p{M}]+|\\p{N}| ?[^\\s\\p{L}\\p{M}\\p{N}]+[\\r\\n]*|\\s*[\\r\\n]+|\\s+(?!\\S)|\\s+",
26
+ "processor_class": "Qwen3VLProcessor",
27
+ "size": {
28
+ "longest_edge": 1572864,
29
+ "shortest_edge": 589824
30
+ },
31
+ "split_special_tokens": false,
32
+ "tokenizer_class": "Qwen2Tokenizer",
33
+ "unk_token": null,
34
+ "video_token": "<|video_pad|>",
35
+ "vision_bos_token": "<|vision_start|>",
36
+ "vision_eos_token": "<|vision_end|>"
37
+ }