lukbit commited on
Commit
3b1d1b4
·
verified ·
1 Parent(s): af353dc

deVision v0.4 (github model-v0.4, 0df9a73b091e0e8167f554da83a4034140354443)

Browse files
MANIFEST.json CHANGED
@@ -1,71 +1,71 @@
1
  {
2
  ".gitattributes": {
3
- "size": 92,
4
- "sha256": "127386e47ae53f224aaf02383189e1b11e6d52289775b426655aa5d87d7e953c"
5
  },
6
  "LICENSE": {
7
  "size": 11358,
8
  "sha256": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30"
9
  },
10
  "README.md": {
11
- "size": 12369,
12
- "sha256": "9e5087ee27134943c32a5a3a3bd3bf90bbceffc942304dc00d7a5638a743a2e8"
13
  },
14
  "assets/logo.png": {
15
  "size": 450887,
16
  "sha256": "4c1123544e9b08d79eb84ef399b244907249e5353bcbd5167667400e3a62a0f7"
17
  },
18
  "config.json": {
19
- "size": 420,
20
- "sha256": "f51a34393cc41ea56012bfd29eb35fbe9197934d897f24085eefb5e9a626452a"
21
  },
22
  "encoder/config.json": {
23
  "size": 2084,
24
  "sha256": "5268d24ad3b77c8151de5dcb0762ba4391619aad9ab0bda33e36fb083cfeae6d"
25
  },
26
- "evaluation/accept_vs_v0.2.json": {
27
- "size": 13821,
28
- "sha256": "8e63d73d13f985160e787b741c41895c029ef00eefff8895ad94b2a9d026184c"
 
 
 
 
29
  },
30
  "evaluation/adoption.md": {
31
- "size": 2269,
32
- "sha256": "0b044443cf371dbe8e017cb2fc705b1b841f58e46059c1cb272c161bfecfe988"
33
  },
34
  "evaluation/cpu_latency.json": {
35
- "size": 8940,
36
- "sha256": "1740cad45a9547c74c21e678f5ac51c906bb46890348472a1be9bebfa83328d8"
37
  },
38
  "evaluation/results.json": {
39
- "size": 3567,
40
- "sha256": "b9733f4f573a2652b079f7b899c71ca0290c0b199a85f34c0607bb0e577d6b22"
41
  },
42
  "evaluation/results.md": {
43
- "size": 2077,
44
- "sha256": "a133c35428d625adde778a9e0ff2898aa227ea854156a980eef7b5561aa6edad"
45
- },
46
- "evaluation/seeded_from.json": {
47
- "size": 143,
48
- "sha256": "c167f7139c72fb0c70c200e60448af1a5302ed4cc218e609c53e10a0c3d993e4"
49
  },
50
  "evaluation/training.yaml": {
51
- "size": 3979,
52
- "sha256": "a7733d9bc41db37b133868839c3080683167374eaf919c3cdd29d0575a894401"
53
  },
54
  "model.safetensors": {
55
  "size": 2073754784,
56
- "sha256": "110fea95889947c373258c88a396ad3eec574971815ee437b9c7cc3df8a5d2d5"
57
  },
58
  "provenance.json": {
59
- "size": 4546,
60
- "sha256": "d135fc16bd5e92fb5556972cd47ae0d783ed07d4715a8dde5b255c7f5e1d2f55"
61
  },
62
  "tokenizer/tokenizer.json": {
63
  "size": 3583228,
64
  "sha256": "6c8aaa9a542084f2457eab775d4eeb51f92a70c0fd9de28d5edb0ddec3c08d30"
65
  },
66
  "tokenizer/tokenizer_config.json": {
67
- "size": 379,
68
- "sha256": "5926e6ec4294f80294bd98d9176defa9fbae7f140525d06a1da987488e74a973"
69
  },
70
  "vision/config.json": {
71
  "size": 361,
 
1
  {
2
  ".gitattributes": {
3
+ "size": 144,
4
+ "sha256": "0f1bfba803b20cd477b98e2185c8ffdd6059059d02413a196f234e3b1d5b930e"
5
  },
6
  "LICENSE": {
7
  "size": 11358,
8
  "sha256": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30"
9
  },
10
  "README.md": {
11
+ "size": 12869,
12
+ "sha256": "1f4ea72cc502f98430ba3ec55c0df23445e6ec48aa0da97ffe7b6b7a6bb67e5d"
13
  },
14
  "assets/logo.png": {
15
  "size": 450887,
16
  "sha256": "4c1123544e9b08d79eb84ef399b244907249e5353bcbd5167667400e3a62a0f7"
17
  },
18
  "config.json": {
19
+ "size": 510,
20
+ "sha256": "55d9bcdd737b57a1779f4b931232e36ea308e96ae3175c8365f214d32ea79365"
21
  },
22
  "encoder/config.json": {
23
  "size": 2084,
24
  "sha256": "5268d24ad3b77c8151de5dcb0762ba4391619aad9ab0bda33e36fb083cfeae6d"
25
  },
26
+ "evaluation/accept_vs_v0.3.json": {
27
+ "size": 14928,
28
+ "sha256": "91649ca42013f55fda7177b05f3c0dd6110bf829817e80e7165f83d2108c5d21"
29
+ },
30
+ "evaluation/accept_vs_v0.3.md": {
31
+ "size": 2867,
32
+ "sha256": "e3cd62bc1bd9f7bf5cab0ac322dd739e168529ea0163235536a890f6f5a73b71"
33
  },
34
  "evaluation/adoption.md": {
35
+ "size": 1494,
36
+ "sha256": "7d4cd1f41d6c669c696a3c61f143d12dd4be5570f30ba96f6bc8359b61c43c35"
37
  },
38
  "evaluation/cpu_latency.json": {
39
+ "size": 5885,
40
+ "sha256": "d1863034969220c6013a83bba01e26c7ed9bb3d8595e1603cb447788c184e481"
41
  },
42
  "evaluation/results.json": {
43
+ "size": 3243,
44
+ "sha256": "3cd6fd7e67c2557760db0915505ece93ae306018998707e7378d745e81c9f779"
45
  },
46
  "evaluation/results.md": {
47
+ "size": 1901,
48
+ "sha256": "6538bfa316bf7f8b4f0d1458b3d5e44ff77b8c5e738982898cbdf171ab463d17"
 
 
 
 
49
  },
50
  "evaluation/training.yaml": {
51
+ "size": 9103,
52
+ "sha256": "50f3c8ca7428d1f25c4db6de014e8f58e15864d426db8a5d46e466ebbeb57bc3"
53
  },
54
  "model.safetensors": {
55
  "size": 2073754784,
56
+ "sha256": "fda0f969a79cf77e6bb9288ddd38e4bb377f3f677018e67275ef927bf76b0397"
57
  },
58
  "provenance.json": {
59
+ "size": 3160,
60
+ "sha256": "ed0f1165ac62178d99b08bd5a0aea830fcf433257c5f0d5436c35497980f9288"
61
  },
62
  "tokenizer/tokenizer.json": {
63
  "size": 3583228,
64
  "sha256": "6c8aaa9a542084f2457eab775d4eeb51f92a70c0fd9de28d5edb0ddec3c08d30"
65
  },
66
  "tokenizer/tokenizer_config.json": {
67
+ "size": 378,
68
+ "sha256": "68acf857b869285d8c3ac2757ddd26e6f8030fb275d6800131521eb736084608"
69
  },
70
  "vision/config.json": {
71
  "size": 361,
README.md CHANGED
@@ -29,7 +29,7 @@ tags:
29
  - rlcd
30
  - cpu
31
  model-index:
32
- - name: deVision v0.3
33
  results:
34
  - task:
35
  type: visual-question-answering
@@ -38,9 +38,9 @@ model-index:
38
  type: test_exist
39
  metrics:
40
  - type: accuracy
41
- value: 0.9473
42
  - type: ece
43
- value: 0.0341
44
  - task:
45
  type: visual-question-answering
46
  dataset:
@@ -48,9 +48,9 @@ model-index:
48
  type: test_vqa_choice
49
  metrics:
50
  - type: accuracy
51
- value: 0.9092
52
  - type: ece
53
- value: 0.0384
54
  - task:
55
  type: visual-question-answering
56
  dataset:
@@ -58,9 +58,9 @@ model-index:
58
  type: test_size
59
  metrics:
60
  - type: accuracy
61
- value: 0.8718
62
  - type: ece
63
- value: 0.0295
64
  - task:
65
  type: visual-question-answering
66
  dataset:
@@ -68,9 +68,9 @@ model-index:
68
  type: bench_pope
69
  metrics:
70
  - type: accuracy
71
- value: 0.8496
72
  - type: ece
73
- value: 0.0393
74
  - task:
75
  type: visual-question-answering
76
  dataset:
@@ -78,9 +78,9 @@ model-index:
78
  type: test_gqa
79
  metrics:
80
  - type: accuracy
81
- value: 0.7903
82
  - type: ece
83
- value: 0.0396
84
  - task:
85
  type: visual-question-answering
86
  dataset:
@@ -88,9 +88,9 @@ model-index:
88
  type: test_position
89
  metrics:
90
  - type: accuracy
91
- value: 0.8846
92
  - type: ece
93
- value: 0.029
94
  - task:
95
  type: visual-question-answering
96
  dataset:
@@ -98,9 +98,9 @@ model-index:
98
  type: test_vqa_yesno
99
  metrics:
100
  - type: accuracy
101
- value: 0.704
102
  - type: ece
103
- value: 0.0265
104
  - task:
105
  type: visual-question-answering
106
  dataset:
@@ -108,9 +108,9 @@ model-index:
108
  type: test_relation
109
  metrics:
110
  - type: accuracy
111
- value: 0.7549
112
  - type: ece
113
- value: 0.0384
114
  - task:
115
  type: visual-question-answering
116
  dataset:
@@ -118,9 +118,9 @@ model-index:
118
  type: test_vsr
119
  metrics:
120
  - type: accuracy
121
- value: 0.6615
122
  - type: ece
123
- value: 0.0465
124
  - task:
125
  type: visual-question-answering
126
  dataset:
@@ -128,19 +128,9 @@ model-index:
128
  type: test_v7w
129
  metrics:
130
  - type: accuracy
131
- value: 0.721
132
  - type: ece
133
- value: 0.0411
134
- - task:
135
- type: visual-question-answering
136
- dataset:
137
- name: Fresh counting test (unseen pictures)
138
- type: test_count_fresh
139
- metrics:
140
- - type: accuracy
141
- value: 0.7633
142
- - type: ece
143
- value: 0.054
144
  - task:
145
  type: visual-question-answering
146
  dataset:
@@ -148,9 +138,9 @@ model-index:
148
  type: bench_countbench
149
  metrics:
150
  - type: accuracy
151
- value: 0.3564
152
  - type: ece
153
- value: 0.0523
154
  - task:
155
  type: visual-question-answering
156
  dataset:
@@ -158,9 +148,9 @@ model-index:
158
  type: test_position_flip
159
  metrics:
160
  - type: accuracy
161
- value: 0.8469
162
  - type: ece
163
- value: 0.0444
164
  - task:
165
  type: visual-question-answering
166
  dataset:
@@ -168,19 +158,9 @@ model-index:
168
  type: test_relation_flip
169
  metrics:
170
  - type: accuracy
171
- value: 0.6977
172
  - type: ece
173
- value: 0.03
174
- - task:
175
- type: visual-question-answering
176
- dataset:
177
- name: GQA binding test
178
- type: test_bind_gqa
179
- metrics:
180
- - type: accuracy
181
- value: 0.6765
182
- - type: ece
183
- value: 0.0277
184
  - task:
185
  type: visual-question-answering
186
  dataset:
@@ -188,12 +168,12 @@ model-index:
188
  type: bench_whatsup
189
  metrics:
190
  - type: accuracy
191
- value: 0.2866
192
  - type: ece
193
- value: 0.2447
194
  ---
195
 
196
- # deVision v0.3
197
 
198
  <p align="center"><img src="assets/logo.png" alt="deVision" width="200"></p>
199
 
@@ -240,35 +220,33 @@ Accuracy through `decide` with the fitted temperatures. *Mismatched*: the same q
240
 
241
  | Set | Questions | Accuracy | Mismatched | NLL | ECE |
242
  |---|---:|---:|---:|---:|---:|
243
- | COCO object presence | 1,120 | 0.947 | 0.504 | 0.163 | 0.034 |
244
- | VQAv2 multiple choice | 1,420 | 0.909 | 0.380 | 0.271 | 0.038 |
245
- | COCO size | 1,100 | 0.872 | 0.511 | 0.336 | 0.029 |
246
- | POPE, project filtered set | 8,676 | 0.850 | 0.527 | 0.368 | 0.039 |
247
- | GQA val subset | 992 | 0.790 | 0.550 | 0.410 | 0.040 |
248
- | COCO position | 1,274 | 0.885 | 0.493 | 0.288 | 0.029 |
249
- | VQAv2 yes/no subset | 1,000 | 0.704 | 0.512 | 0.574 | 0.026 |
250
- | COCO relative position | 1,950 | 0.755 | 0.496 | 0.490 | 0.038 |
251
- | VSR, project held-out split | 904 | 0.661 | 0.487 | 0.620 | 0.046 |
252
- | Visual7W, project held-out split | 1,000 | 0.721 | 0.419 | 0.673 | 0.041 |
253
- | Fresh counting test (unseen pictures) | 600 | 0.763 | 0.405 | 0.574 | 0.054 |
254
- | CountBench, 0–10 choices | 491 | 0.356 | 0.104 | 1.602 | 0.052 |
255
- | COCO mirrored position | 640 | 0.847 | 0.477 | 0.359 | 0.044 |
256
- | COCO mirrored relative position | 1,492 | 0.698 | 0.507 | 0.545 | 0.030 |
257
- | GQA binding test | 1,484 | 0.676 | 0.498 | 0.559 | 0.028 |
258
- | What'sUp | 820 | 0.287 | 0.245 | 1.491 | 0.245 |
259
 
260
  Against Laya Vision 201M on the same questions (its published per-question predictions; difference in points, 95% interval from paired resampling by picture):
261
 
262
  | Set | Questions | Laya Vision | deVision | Difference |
263
  |---|---:|---:|---:|---|
264
- | VQAv2 yes/no | 4,887 | 0.717 | 0.725 | +0.8 [-0.8, +2.4] |
265
- | A-OKVQA | 1,138 | 0.598 | 0.613 | +1.4 [-1.8, +4.7] |
266
- | ScienceQA with images | 2,097 | 0.824 | 0.789 | -3.5 [-5.6, -1.4] |
267
- | ScienceQA natural science, needs the picture | 323 | 0.700 | 0.495 | -20.4 [-27.2, -13.3] |
268
 
269
- On the full POPE random / popular / adversarial sets (3,000 questions each) deVision scores **0.880 / 0.859 / 0.805**, against Laya Vision's published **0.836 / 0.819 / 0.777** (aggregate scores only, not paired).
270
 
271
- CPU latency: P50 175 ms, P95 190 ms (Darwin arm64, 4 threads, FP32, one question per request, warm-up excluded).
272
 
273
  ## Model
274
 
@@ -278,28 +256,54 @@ CPU latency: P50 175 ms, P95 190 ms (Darwin arm64, 4 threads, FP32, one question
278
  | Decision | Laya-initialised ModernBERT-large and Laya's decision head; each option is scored at its `[MASK]`, then a temperature-scaled softmax |
279
  | Size | About 518M parameters, FP32, 2.07 GB (LoRA merged) |
280
 
281
- This release continues v0.2 with 81,875 questions of counting, object presence, mirrored spatial questions, VSR and broad replay, for one 10,235-step schedule (seed 1). The first 2,000 steps were run as exp19; r15 resumes that exact training state. SigLIP2's top four encoder layers and final LayerNorm were fine-tuned at 5e-6 alongside the projector, decision head and ModernBERT LoRA. LoRA is merged into the released weights. The input remains 256×256 with 64 visual tokens; S2 question conditioning is **not** enabled.
 
 
 
 
 
 
 
 
282
 
283
- Temperatures were fitted on the designated calibration set, by question type and option-count bucket. Missing buckets fall back to the question-type temperature:
 
 
 
 
284
 
285
  | Bucket | Temperature |
286
  |---|---:|
287
- | Choice, 11+ options | 1.2012 |
288
- | Choice, 2 options | 1.9488 |
289
- | Choice, 3–5 options | 1.7575 |
290
- | Noul (yes / no) | 1.8258 |
291
- | Choice, any other count | 1.5922 |
 
292
 
293
- The owner adopted v0.3 as a trade-off: counting, relations and ScienceQA improved, while four old-capability protection conditions were not met. The original automated verdict remains `candidate=false`. See the [adoption decision and v0.2 comparison](evaluation/adoption.md), [original acceptance report](evaluation/accept_vs_v0.2.json) and [training configuration](evaluation/training.yaml).
 
 
 
 
 
 
 
 
 
 
 
 
 
294
 
295
  ## Limitations
296
 
297
- - English, one image, yes/no and choice questions only. `score` is not implemented. At 256×256, small text and fine diagram details are hard to read.
298
- - CountBench improved by 16.7 points over v0.2, but absolute accuracy is only 35.6%. Answer-order sensitivity increased (39.5% change their answer when options are reversed, versus 16.9%); this is not a general-purpose accurate counter.
299
- - VSR accuracy is 1.8 points lower and A-OKVQA 1.3 points lower than v0.2; their overall intervals contain zero, but non-inferiority was not established. VSR positive recall fell by 5.3 points. A-OKVQA and What'sUp have worse probability quality than v0.2. No prewritten NLL warning was triggered; that does not mean all probabilities improved.
300
- - Diagram, chart and map comparisons and question-to-region binding remain weak. On natural-science ScienceQA questions that require the picture, accuracy is 49.5% versus Laya Vision's 70.0%.
301
- - Calibration reflects the calibration distribution, not every deployment domain. Validate thresholds on your own examples.
302
- - Test sets have repeatedly informed experiment and release decisions. This is one training seed, not a fresh independent confirmation. Gains cannot be attributed solely to unfreezing the vision encoder.
303
 
304
  ## Licence
305
 
@@ -307,4 +311,4 @@ Weights and code: Apache-2.0, like the three base models ([Laya](https://hugging
307
 
308
  ## Links
309
 
310
- [Code and training records](https://github.com/byebyebruce/devision) (this release: tag `model-v0.3`) · [evaluation details](evaluation/results.md) · [provenance](provenance.json) · [Laya Vision](https://github.com/r33drichards/laya-vision)
 
29
  - rlcd
30
  - cpu
31
  model-index:
32
+ - name: deVision v0.4
33
  results:
34
  - task:
35
  type: visual-question-answering
 
38
  type: test_exist
39
  metrics:
40
  - type: accuracy
41
+ value: 0.9554
42
  - type: ece
43
+ value: 0.0924
44
  - task:
45
  type: visual-question-answering
46
  dataset:
 
48
  type: test_vqa_choice
49
  metrics:
50
  - type: accuracy
51
+ value: 0.905
52
  - type: ece
53
+ value: 0.0534
54
  - task:
55
  type: visual-question-answering
56
  dataset:
 
58
  type: test_size
59
  metrics:
60
  - type: accuracy
61
+ value: 0.8698
62
  - type: ece
63
+ value: 0.2345
64
  - task:
65
  type: visual-question-answering
66
  dataset:
 
68
  type: bench_pope
69
  metrics:
70
  - type: accuracy
71
+ value: 0.8653
72
  - type: ece
73
+ value: 0.0483
74
  - task:
75
  type: visual-question-answering
76
  dataset:
 
78
  type: test_gqa
79
  metrics:
80
  - type: accuracy
81
+ value: 0.8428
82
  - type: ece
83
+ value: 0.0857
84
  - task:
85
  type: visual-question-answering
86
  dataset:
 
88
  type: test_position
89
  metrics:
90
  - type: accuracy
91
+ value: 0.9381
92
  - type: ece
93
+ value: 0.0468
94
  - task:
95
  type: visual-question-answering
96
  dataset:
 
98
  type: test_vqa_yesno
99
  metrics:
100
  - type: accuracy
101
+ value: 0.722
102
  - type: ece
103
+ value: 0.0552
104
  - task:
105
  type: visual-question-answering
106
  dataset:
 
108
  type: test_relation
109
  metrics:
110
  - type: accuracy
111
+ value: 0.9167
112
  - type: ece
113
+ value: 0.0367
114
  - task:
115
  type: visual-question-answering
116
  dataset:
 
118
  type: test_vsr
119
  metrics:
120
  - type: accuracy
121
+ value: 0.7306
122
  - type: ece
123
+ value: 0.0734
124
  - task:
125
  type: visual-question-answering
126
  dataset:
 
128
  type: test_v7w
129
  metrics:
130
  - type: accuracy
131
+ value: 0.783
132
  - type: ece
133
+ value: 0.073
 
 
 
 
 
 
 
 
 
 
134
  - task:
135
  type: visual-question-answering
136
  dataset:
 
138
  type: bench_countbench
139
  metrics:
140
  - type: accuracy
141
+ value: 0.501
142
  - type: ece
143
+ value: 0.1655
144
  - task:
145
  type: visual-question-answering
146
  dataset:
 
148
  type: test_position_flip
149
  metrics:
150
  - type: accuracy
151
+ value: 0.9328
152
  - type: ece
153
+ value: 0.0532
154
  - task:
155
  type: visual-question-answering
156
  dataset:
 
158
  type: test_relation_flip
159
  metrics:
160
  - type: accuracy
161
+ value: 0.9143
162
  - type: ece
163
+ value: 0.0485
 
 
 
 
 
 
 
 
 
 
164
  - task:
165
  type: visual-question-answering
166
  dataset:
 
168
  type: bench_whatsup
169
  metrics:
170
  - type: accuracy
171
+ value: 0.4671
172
  - type: ece
173
+ value: 0.0926
174
  ---
175
 
176
+ # deVision v0.4
177
 
178
  <p align="center"><img src="assets/logo.png" alt="deVision" width="200"></p>
179
 
 
220
 
221
  | Set | Questions | Accuracy | Mismatched | NLL | ECE |
222
  |---|---:|---:|---:|---:|---:|
223
+ | COCO object presence | 1,120 | 0.955 | 0.497 | 0.196 | 0.092 |
224
+ | VQAv2 multiple choice | 1,453 | 0.905 | 0.370 | 0.280 | 0.053 |
225
+ | COCO size | 1,198 | 0.870 | 0.516 | 0.506 | 0.234 |
226
+ | POPE, project filtered set | 9,000 | 0.865 | 0.520 | 0.363 | 0.048 |
227
+ | GQA val subset | 986 | 0.843 | 0.546 | 0.383 | 0.086 |
228
+ | COCO position | 1,276 | 0.938 | 0.509 | 0.238 | 0.047 |
229
+ | VQAv2 yes/no subset | 1,000 | 0.722 | 0.500 | 0.571 | 0.055 |
230
+ | COCO relative position | 2,366 | 0.917 | 0.480 | 0.281 | 0.037 |
231
+ | VSR, project held-out split | 902 | 0.731 | 0.460 | 0.591 | 0.073 |
232
+ | Visual7W, project held-out split | 1,000 | 0.783 | 0.442 | 0.597 | 0.073 |
233
+ | CountBench, 0–10 choices | 491 | 0.501 | 0.102 | 1.387 | 0.166 |
234
+ | COCO mirrored position | 640 | 0.933 | 0.503 | 0.283 | 0.053 |
235
+ | COCO mirrored relative position | 1,786 | 0.914 | 0.494 | 0.300 | 0.049 |
236
+ | What'sUp | 820 | 0.467 | 0.233 | 1.214 | 0.093 |
 
 
237
 
238
  Against Laya Vision 201M on the same questions (its published per-question predictions; difference in points, 95% interval from paired resampling by picture):
239
 
240
  | Set | Questions | Laya Vision | deVision | Difference |
241
  |---|---:|---:|---:|---|
242
+ | VQAv2 yes/no | 4,887 | 0.717 | 0.756 | +3.9 [+2.4, +5.3] |
243
+ | A-OKVQA | 1,138 | 0.598 | 0.634 | +3.5 [+0.3, +6.6] |
244
+ | ScienceQA with images | 2,097 | 0.824 | 0.821 | -0.3 [-2.2, +1.7] |
245
+ | ScienceQA natural science, needs the picture | 323 | 0.700 | 0.638 | -6.2 [-12.7, +0.0] |
246
 
247
+ On the full POPE random / popular / adversarial sets (3,000 questions each) deVision scores **0.899 / 0.873 / 0.824**, against Laya Vision's published **0.836 / 0.819 / 0.777** (aggregate scores only, not paired).
248
 
249
+ CPU latency: P50 289 ms, P95 301 ms (Linux x86_64, 4 threads, FP32, one question per request, warm-up excluded).
250
 
251
  ## Model
252
 
 
256
  | Decision | Laya-initialised ModernBERT-large and Laya's decision head; each option is scored at its `[MASK]`, then a temperature-scaled softmax |
257
  | Size | About 518M parameters, FP32, 2.07 GB (LoRA merged) |
258
 
259
+ This release continues v0.3 in three steps on one RTX 5070 (bf16), with SigLIP2's top four encoder layers and final LayerNorm fine-tuned at 5e-6 alongside the projector, decision head and ModernBERT LoRA (merged into the released weights). The input remains 256×256 with 64 visual tokens; the architecture is unchanged.
260
+
261
+ 1. **742,238 questions, one pass from v0.3.** VQAv2 (annotators' answers as soft targets) and GQA (balanced train, all shards, open questions turned into choices), about 190,000 each, plus targeted data for the abilities v0.3 lacked:
262
+ - all of Visual7W telling (52,390 after filtering);
263
+ - caption-choice spatial relations (on / under / in front of / behind / left / right) from Visual Genome scene graphs, with every distractor checked against the boxes;
264
+ - counting on COCO and TallyQA, always with the eleven options 0–10;
265
+ - CLEVR, IconQA;
266
+ - programmatically drawn magnet and solution diagrams in ScienceQA's style;
267
+ - replay of v0.3's other abilities.
268
 
269
+ Every picture of every evaluation set was excluded by id and image hash. Choice questions v0.3 still answered confidently with the wrong picture were dropped.
270
+ 2. **A short science-heavy continuation (123,084 questions):** all ScienceQA / AI2D / TQA training questions ×3, IconQA, the magnet diagrams and 40,000 replay. This also repaired an exclusion bug that had dropped about half of the ScienceQA training questions in step 1.
271
+ 3. **A short continuation (104,331 questions) with presence and size labels softened from 0 / 1 to 0.9 / 0.1,** to stop over-confident presence answers (POPE).
272
+
273
+ Temperatures were fitted on a development mix with balanced sources, by question type and option-count bucket. Missing buckets fall back to the question-type temperature:
274
 
275
  | Bucket | Temperature |
276
  |---|---:|
277
+ | Choice, 2 options | 3.5631 |
278
+ | Choice, 3–5 options | 2.1146 |
279
+ | Noul (yes / no) | 1.0895 |
280
+ | Choice, any other count | 2.3642 |
281
+
282
+ The owner adopted this model although one prewritten acceptance rule (calibration) is not met. See the [adoption decision](evaluation/adoption.md), the [full comparison with v0.3](evaluation/accept_vs_v0.3.md) and the [training configurations](evaluation/training.yaml).
283
 
284
+ Against v0.3 on the same questions (accuracy points, 95% intervals), 22 of 23 judged sets improve and none is significantly worse:
285
+
286
+ | Set | Change |
287
+ |---|---|
288
+ | mirrored relations | +21.2 |
289
+ | What'sUp | +18.0 |
290
+ | CountBench | +14.5 |
291
+ | Visual7W | +7.2 |
292
+ | VSR | +7.0 |
293
+ | GQA | +6.1 |
294
+ | CLEVR-CoGenT B | +4.0 |
295
+ | ScienceQA | +3.1 [+1.6, +4.8] |
296
+ | MMBench-en dev | +2.3 |
297
+ | POPE | +1.7 |
298
 
299
  ## Limitations
300
 
301
+ - **Scope.** English, one image, yes/no and choice questions only; `score` is not implemented. At 256×256, small text and fine diagram details are hard to read.
302
+ - **Counting.** It improved (CountBench 35.6% → 50.1%, COCO counts 30.6% → 34.5%), but this is still not an accurate counter, especially above five.
303
+ - **Calibration.** Probabilities are slightly under-confident on easy presence and size questions (size: mean confidence 0.64 at 0.87 accuracy) and slightly over-confident on MME. POPE calibration is on par with v0.3. Validate thresholds on your own examples.
304
+ - **External benchmarks.** MME (−0.6), NaturalBench (+0.3), CV-Bench (+0.7) and A-OKVQA (+2.1) did not change significantly.
305
+ - **Diagrams.** Diagram reading that depends on small printed numbers (particle speeds, magnet distances) remains weak. The drawn solution diagrams did not transfer to ScienceQA's beakers.
306
+ - **Test-set reuse.** Test sets informed several decisions in this cycle. This is one training seed, not an independent confirmation.
307
 
308
  ## Licence
309
 
 
311
 
312
  ## Links
313
 
314
+ [Code and training records](https://github.com/byebyebruce/devision) (this release: tag `model-v0.4`) · [evaluation details](evaluation/results.md) · [provenance](provenance.json) · [Laya Vision](https://github.com/r33drichards/laya-vision)
config.json CHANGED
@@ -1,5 +1,5 @@
1
  {
2
- "model_name": "devision-v0.3",
3
  "image_size": 256,
4
  "visual_shuffle": 2,
5
  "max_len": 512,
@@ -7,15 +7,19 @@
7
  "head_layers": 2,
8
  "n_act": 2,
9
  "temperature": [
10
- 1.5922062397003174,
11
  1.0,
12
- 1.825764536857605
13
  ],
14
  "temperature_by_options": {
15
- "choice:11+": 1.201171636581421,
16
- "choice:2": 1.9487814903259277,
17
- "choice:3-5": 1.7575252056121826,
18
- "noul:2": 1.825764536857605
19
  },
20
- "question_conditioning": false
 
 
 
 
 
21
  }
 
1
  {
2
+ "model_name": "devision-v0.4",
3
  "image_size": 256,
4
  "visual_shuffle": 2,
5
  "max_len": 512,
 
7
  "head_layers": 2,
8
  "n_act": 2,
9
  "temperature": [
10
+ 2.3641862869262695,
11
  1.0,
12
+ 1.0895380973815918
13
  ],
14
  "temperature_by_options": {
15
+ "choice:2": 3.563119649887085,
16
+ "choice:3-5": 2.1145524978637695,
17
+ "noul:2": 1.0895380973815918
 
18
  },
19
+ "question_conditioning": false,
20
+ "interpolate_pos_encoding": false,
21
+ "local_views": 0,
22
+ "local_overlap": 0.0,
23
+ "local_source": "",
24
+ "number_reader": false
25
  }
evaluation/accept_vs_v0.3.json ADDED
@@ -0,0 +1,734 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "rows": {
3
+ "test_vsr": {
4
+ "acc": {
5
+ "metric": "accuracy",
6
+ "questions": 902,
7
+ "pictures": 547,
8
+ "a": 0.6607538802660754,
9
+ "b": 0.7305986696230599,
10
+ "difference": 0.06984478935698446,
11
+ "ci95": [
12
+ 0.03618421052631582,
13
+ 0.10647639956092214
14
+ ],
15
+ "resamples": 2000
16
+ },
17
+ "nll": {
18
+ "metric": "nll",
19
+ "questions": 902,
20
+ "pictures": 547,
21
+ "a": 0.6155837500135749,
22
+ "b": 0.5904692457609072,
23
+ "difference": -0.025114504252667702,
24
+ "ci95": [
25
+ -0.06730200801082653,
26
+ 0.01835022339389425
27
+ ],
28
+ "resamples": 2000
29
+ }
30
+ },
31
+ "test_v7w": {
32
+ "acc": {
33
+ "metric": "accuracy",
34
+ "questions": 1000,
35
+ "pictures": 1000,
36
+ "a": 0.711,
37
+ "b": 0.783,
38
+ "difference": 0.07200000000000006,
39
+ "ci95": [
40
+ 0.04800000000000004,
41
+ 0.09600000000000009
42
+ ],
43
+ "resamples": 2000
44
+ },
45
+ "nll": {
46
+ "metric": "nll",
47
+ "questions": 1000,
48
+ "pictures": 1000,
49
+ "a": 0.7061062017078975,
50
+ "b": 0.5966842790244825,
51
+ "difference": -0.109421922683415,
52
+ "ci95": [
53
+ -0.14233793828593067,
54
+ -0.07693998792887025
55
+ ],
56
+ "resamples": 2000
57
+ }
58
+ },
59
+ "bench_pope": {
60
+ "acc": {
61
+ "metric": "accuracy",
62
+ "questions": 9000,
63
+ "pictures": 500,
64
+ "a": 0.8481111111111111,
65
+ "b": 0.8653333333333333,
66
+ "difference": 0.01722222222222214,
67
+ "ci95": [
68
+ 0.00855555555555565,
69
+ 0.02577777777777779
70
+ ],
71
+ "resamples": 2000
72
+ },
73
+ "nll": {
74
+ "metric": "nll",
75
+ "questions": 9000,
76
+ "pictures": 500,
77
+ "a": 0.37213111549634703,
78
+ "b": 0.36302066313255416,
79
+ "difference": -0.009110452363792876,
80
+ "ci95": [
81
+ -0.02169886047608327,
82
+ 0.003435790059213739
83
+ ],
84
+ "resamples": 2000
85
+ }
86
+ },
87
+ "test_vqa_yesno": {
88
+ "acc": {
89
+ "metric": "accuracy",
90
+ "questions": 1000,
91
+ "pictures": 977,
92
+ "a": 0.683,
93
+ "b": 0.722,
94
+ "difference": 0.038999999999999924,
95
+ "ci95": [
96
+ 0.015090543259557276,
97
+ 0.06480558325024932
98
+ ],
99
+ "resamples": 2000
100
+ },
101
+ "nll": {
102
+ "metric": "nll",
103
+ "questions": 1000,
104
+ "pictures": 977,
105
+ "a": 0.5941348191891218,
106
+ "b": 0.571303429093119,
107
+ "difference": -0.022831390096002768,
108
+ "ci95": [
109
+ -0.04409385128971266,
110
+ -0.0019899478295204442
111
+ ],
112
+ "resamples": 2000
113
+ }
114
+ },
115
+ "test_vqa_choice": {
116
+ "acc": {
117
+ "metric": "accuracy",
118
+ "questions": 1453,
119
+ "pictures": 1394,
120
+ "a": 0.8823124569855472,
121
+ "b": 0.9050240880935995,
122
+ "difference": 0.0227116311080523,
123
+ "ci95": [
124
+ 0.007686932215234088,
125
+ 0.03782668500687758
126
+ ],
127
+ "resamples": 2000
128
+ },
129
+ "nll": {
130
+ "metric": "nll",
131
+ "questions": 1453,
132
+ "pictures": 1394,
133
+ "a": 0.2975529214462992,
134
+ "b": 0.28024055404603077,
135
+ "difference": -0.017312367400268425,
136
+ "ci95": [
137
+ -0.04801307597139293,
138
+ 0.017763019358089716
139
+ ],
140
+ "resamples": 2000
141
+ }
142
+ },
143
+ "test_gqa": {
144
+ "acc": {
145
+ "metric": "accuracy",
146
+ "questions": 986,
147
+ "pictures": 880,
148
+ "a": 0.781947261663286,
149
+ "b": 0.8427991886409736,
150
+ "difference": 0.0608519269776876,
151
+ "ci95": [
152
+ 0.03567787971457692,
153
+ 0.08611955420466055
154
+ ],
155
+ "resamples": 2000
156
+ },
157
+ "nll": {
158
+ "metric": "nll",
159
+ "questions": 986,
160
+ "pictures": 880,
161
+ "a": 0.4363967446492391,
162
+ "b": 0.38284475493705167,
163
+ "difference": -0.05355198971218744,
164
+ "ci95": [
165
+ -0.08716986207647759,
166
+ -0.02041387915707188
167
+ ],
168
+ "resamples": 2000
169
+ }
170
+ },
171
+ "test_exist": {
172
+ "acc": {
173
+ "metric": "accuracy",
174
+ "questions": 1120,
175
+ "pictures": 1104,
176
+ "a": 0.9392857142857143,
177
+ "b": 0.9553571428571429,
178
+ "difference": 0.016071428571428625,
179
+ "ci95": [
180
+ 0.0026929982046678402,
181
+ 0.02930728241563063
182
+ ],
183
+ "resamples": 2000
184
+ },
185
+ "nll": {
186
+ "metric": "nll",
187
+ "questions": 1120,
188
+ "pictures": 1104,
189
+ "a": 0.16983095379080976,
190
+ "b": 0.19567675111207672,
191
+ "difference": 0.02584579732126696,
192
+ "ci95": [
193
+ 0.007774706565661066,
194
+ 0.04337850870878224
195
+ ],
196
+ "resamples": 2000
197
+ }
198
+ },
199
+ "test_position": {
200
+ "acc": {
201
+ "metric": "accuracy",
202
+ "questions": 1276,
203
+ "pictures": 1232,
204
+ "a": 0.8863636363636364,
205
+ "b": 0.9380877742946708,
206
+ "difference": 0.051724137931034475,
207
+ "ci95": [
208
+ 0.03299293008641002,
209
+ 0.07092198581560283
210
+ ],
211
+ "resamples": 2000
212
+ },
213
+ "nll": {
214
+ "metric": "nll",
215
+ "questions": 1276,
216
+ "pictures": 1232,
217
+ "a": 0.27279601591009106,
218
+ "b": 0.23840018591039677,
219
+ "difference": -0.03439582999969429,
220
+ "ci95": [
221
+ -0.08219989842410494,
222
+ 0.015482905705434202
223
+ ],
224
+ "resamples": 2000
225
+ }
226
+ },
227
+ "test_relation": {
228
+ "acc": {
229
+ "metric": "accuracy",
230
+ "questions": 2366,
231
+ "pictures": 1768,
232
+ "a": 0.7489433643279797,
233
+ "b": 0.9167371090448013,
234
+ "difference": 0.16779374471682162,
235
+ "ci95": [
236
+ 0.1491782553729456,
237
+ 0.18608549874266556
238
+ ],
239
+ "resamples": 2000
240
+ },
241
+ "nll": {
242
+ "metric": "nll",
243
+ "questions": 2366,
244
+ "pictures": 1768,
245
+ "a": 0.4909602253543323,
246
+ "b": 0.2805283450848128,
247
+ "difference": -0.21043188026951953,
248
+ "ci95": [
249
+ -0.25335914427956835,
250
+ -0.16455708571446082
251
+ ],
252
+ "resamples": 2000
253
+ }
254
+ },
255
+ "test_size": {
256
+ "acc": {
257
+ "metric": "accuracy",
258
+ "questions": 1198,
259
+ "pictures": 1081,
260
+ "a": 0.8564273789649416,
261
+ "b": 0.8697829716193656,
262
+ "difference": 0.013355592654423987,
263
+ "ci95": [
264
+ -0.002523128679562725,
265
+ 0.030252100840336138
266
+ ],
267
+ "resamples": 2000
268
+ },
269
+ "nll": {
270
+ "metric": "nll",
271
+ "questions": 1198,
272
+ "pictures": 1081,
273
+ "a": 0.35047560484582363,
274
+ "b": 0.5065374303761236,
275
+ "difference": 0.1560618255303,
276
+ "ci95": [
277
+ 0.12203261708552204,
278
+ 0.18841077280205148
279
+ ],
280
+ "resamples": 2000
281
+ }
282
+ },
283
+ "test_position_flip": {
284
+ "acc": {
285
+ "metric": "accuracy",
286
+ "questions": 640,
287
+ "pictures": 636,
288
+ "a": 0.828125,
289
+ "b": 0.9328125,
290
+ "difference": 0.10468750000000004,
291
+ "ci95": [
292
+ 0.07931570762052875,
293
+ 0.1316614420062696
294
+ ],
295
+ "resamples": 2000
296
+ },
297
+ "nll": {
298
+ "metric": "nll",
299
+ "questions": 640,
300
+ "pictures": 636,
301
+ "a": 0.3792944504698811,
302
+ "b": 0.28297517066909245,
303
+ "difference": -0.09631927980078864,
304
+ "ci95": [
305
+ -0.16729839354099188,
306
+ -0.019257792204828483
307
+ ],
308
+ "resamples": 2000
309
+ }
310
+ },
311
+ "test_relation_flip": {
312
+ "acc": {
313
+ "metric": "accuracy",
314
+ "questions": 1786,
315
+ "pictures": 1460,
316
+ "a": 0.7021276595744681,
317
+ "b": 0.9143337066069429,
318
+ "difference": 0.2122060470324748,
319
+ "ci95": [
320
+ 0.18990246701090074,
321
+ 0.2346089850249583
322
+ ],
323
+ "resamples": 2000
324
+ },
325
+ "nll": {
326
+ "metric": "nll",
327
+ "questions": 1786,
328
+ "pictures": 1460,
329
+ "a": 0.5234402751432231,
330
+ "b": 0.3004006765189471,
331
+ "difference": -0.22303959862427603,
332
+ "ci95": [
333
+ -0.27563722667679236,
334
+ -0.16170787803919912
335
+ ],
336
+ "resamples": 2000
337
+ }
338
+ },
339
+ "bench_lv_vqav2_yesno": {
340
+ "acc": {
341
+ "metric": "accuracy",
342
+ "questions": 4887,
343
+ "pictures": 2069,
344
+ "a": 0.7249846531614488,
345
+ "b": 0.7558829547779824,
346
+ "difference": 0.03089830161653362,
347
+ "ci95": [
348
+ 0.01905156347069792,
349
+ 0.04241915161696774
350
+ ],
351
+ "resamples": 2000
352
+ },
353
+ "nll": {
354
+ "metric": "nll",
355
+ "questions": 4887,
356
+ "pictures": 2069,
357
+ "a": 0.551730515857613,
358
+ "b": 0.5256937856914787,
359
+ "difference": -0.02603673016613428,
360
+ "ci95": [
361
+ -0.03484135061656102,
362
+ -0.01729670636981273
363
+ ],
364
+ "resamples": 2000
365
+ }
366
+ },
367
+ "bench_lv_aokvqa": {
368
+ "acc": {
369
+ "metric": "accuracy",
370
+ "questions": 1138,
371
+ "pictures": 1138,
372
+ "a": 0.6124780316344464,
373
+ "b": 0.6335676625659051,
374
+ "difference": 0.02108963093145877,
375
+ "ci95": [
376
+ -0.0035149384885764245,
377
+ 0.0448154657293498
378
+ ],
379
+ "resamples": 2000
380
+ },
381
+ "nll": {
382
+ "metric": "nll",
383
+ "questions": 1138,
384
+ "pictures": 1138,
385
+ "a": 0.9357384620349536,
386
+ "b": 0.9235836608133525,
387
+ "difference": -0.012154801221601064,
388
+ "ci95": [
389
+ -0.050025256755278025,
390
+ 0.02747038629963383
391
+ ],
392
+ "resamples": 2000
393
+ }
394
+ },
395
+ "bench_lv_scienceqa": {
396
+ "acc": {
397
+ "metric": "accuracy",
398
+ "questions": 2097,
399
+ "pictures": 2097,
400
+ "a": 0.7892226990939437,
401
+ "b": 0.8206962327134001,
402
+ "difference": 0.03147353361945637,
403
+ "ci95": [
404
+ 0.015736766809728242,
405
+ 0.047687172150691515
406
+ ],
407
+ "resamples": 2000
408
+ },
409
+ "nll": {
410
+ "metric": "nll",
411
+ "questions": 2097,
412
+ "pictures": 2097,
413
+ "a": 0.47098928326742956,
414
+ "b": 0.46387570466731803,
415
+ "difference": -0.007113578600111525,
416
+ "ci95": [
417
+ -0.036043017961029544,
418
+ 0.02201631592471548
419
+ ],
420
+ "resamples": 2000
421
+ }
422
+ },
423
+ "bench_whatsup": {
424
+ "acc": {
425
+ "metric": "accuracy",
426
+ "questions": 820,
427
+ "pictures": 820,
428
+ "a": 0.2865853658536585,
429
+ "b": 0.46707317073170734,
430
+ "difference": 0.18048780487804883,
431
+ "ci95": [
432
+ 0.1353658536585366,
433
+ 0.22073170731707314
434
+ ],
435
+ "resamples": 2000
436
+ },
437
+ "nll": {
438
+ "metric": "nll",
439
+ "questions": 820,
440
+ "pictures": 820,
441
+ "a": 1.490915758604817,
442
+ "b": 1.2141925113554008,
443
+ "difference": -0.2767232472494161,
444
+ "ci95": [
445
+ -0.335244532597462,
446
+ -0.219079539978984
447
+ ],
448
+ "resamples": 2000
449
+ }
450
+ },
451
+ "bench_countbench": {
452
+ "acc": {
453
+ "metric": "accuracy",
454
+ "questions": 491,
455
+ "pictures": 491,
456
+ "a": 0.3564154786150713,
457
+ "b": 0.5010183299389002,
458
+ "difference": 0.14460285132382888,
459
+ "ci95": [
460
+ 0.09368635437881867,
461
+ 0.1955193482688391
462
+ ],
463
+ "resamples": 2000
464
+ },
465
+ "nll": {
466
+ "metric": "nll",
467
+ "questions": 491,
468
+ "pictures": 491,
469
+ "a": 1.6021549698788784,
470
+ "b": 1.3872406640068242,
471
+ "difference": -0.21491430587205418,
472
+ "ci95": [
473
+ -0.2562705789097375,
474
+ -0.17616865330760545
475
+ ],
476
+ "resamples": 2000
477
+ }
478
+ },
479
+ "bench_cogent_b": {
480
+ "acc": {
481
+ "metric": "accuracy",
482
+ "questions": 2000,
483
+ "pictures": 2000,
484
+ "a": 0.5775,
485
+ "b": 0.618,
486
+ "difference": 0.04049999999999998,
487
+ "ci95": [
488
+ 0.01649999999999996,
489
+ 0.0655
490
+ ],
491
+ "resamples": 2000
492
+ },
493
+ "nll": {
494
+ "metric": "nll",
495
+ "questions": 2000,
496
+ "pictures": 2000,
497
+ "a": 0.8426200623459391,
498
+ "b": 0.8368894876234722,
499
+ "difference": -0.005730574722466963,
500
+ "ci95": [
501
+ -0.02600691985620429,
502
+ 0.013703787042339766
503
+ ],
504
+ "resamples": 2000
505
+ }
506
+ },
507
+ "test_count_coco": {
508
+ "acc": {
509
+ "metric": "accuracy",
510
+ "questions": 1100,
511
+ "pictures": 1100,
512
+ "a": 0.30636363636363634,
513
+ "b": 0.34454545454545454,
514
+ "difference": 0.038181818181818206,
515
+ "ci95": [
516
+ 0.011818181818181783,
517
+ 0.06545454545454549
518
+ ],
519
+ "resamples": 2000
520
+ },
521
+ "nll": {
522
+ "metric": "nll",
523
+ "questions": 1100,
524
+ "pictures": 1100,
525
+ "a": 1.9893882985025666,
526
+ "b": 1.779380167228201,
527
+ "difference": -0.21000813127436557,
528
+ "ci95": [
529
+ -0.25964636612728054,
530
+ -0.1622590152983625
531
+ ],
532
+ "resamples": 2000
533
+ }
534
+ },
535
+ "bench_mmbench": {
536
+ "acc": {
537
+ "metric": "accuracy",
538
+ "questions": 4294,
539
+ "pictures": 4294,
540
+ "a": 0.6040987424312995,
541
+ "b": 0.6266884024219842,
542
+ "difference": 0.02258965999068474,
543
+ "ci95": [
544
+ 0.011178388448998544,
545
+ 0.03446669771774569
546
+ ],
547
+ "resamples": 2000
548
+ },
549
+ "nll": {
550
+ "metric": "nll",
551
+ "questions": 4294,
552
+ "pictures": 4294,
553
+ "a": 0.9621266293403985,
554
+ "b": 0.9076105848749486,
555
+ "difference": -0.05451604446544989,
556
+ "ci95": [
557
+ -0.07615708256293019,
558
+ -0.03108140813878635
559
+ ],
560
+ "resamples": 2000
561
+ }
562
+ },
563
+ "bench_cvbench": {
564
+ "acc": {
565
+ "metric": "accuracy",
566
+ "questions": 2638,
567
+ "pictures": 2638,
568
+ "a": 0.5443517816527672,
569
+ "b": 0.5511751326762699,
570
+ "difference": 0.006823351023502733,
571
+ "ci95": [
572
+ -0.009855951478392688,
573
+ 0.02501895375284313
574
+ ],
575
+ "resamples": 2000
576
+ },
577
+ "nll": {
578
+ "metric": "nll",
579
+ "questions": 2638,
580
+ "pictures": 2638,
581
+ "a": 0.9016688344057614,
582
+ "b": 0.8083227674466051,
583
+ "difference": -0.09334606695915626,
584
+ "ci95": [
585
+ -0.11244997195903339,
586
+ -0.07520308890416327
587
+ ],
588
+ "resamples": 2000
589
+ }
590
+ },
591
+ "bench_mme": {
592
+ "acc": {
593
+ "metric": "accuracy",
594
+ "questions": 2374,
595
+ "pictures": 1187,
596
+ "a": 0.6533277169334457,
597
+ "b": 0.6474304970513901,
598
+ "difference": -0.005897219882055604,
599
+ "ci95": [
600
+ -0.02064026958719467,
601
+ 0.008845829823083351
602
+ ],
603
+ "resamples": 2000
604
+ },
605
+ "nll": {
606
+ "metric": "nll",
607
+ "questions": 2374,
608
+ "pictures": 1187,
609
+ "a": 0.6057342796352463,
610
+ "b": 0.6429894737804899,
611
+ "difference": 0.037255194145243586,
612
+ "ci95": [
613
+ 0.023705705678477296,
614
+ 0.05017788218628971
615
+ ],
616
+ "resamples": 2000
617
+ }
618
+ },
619
+ "bench_naturalbench": {
620
+ "acc": {
621
+ "metric": "accuracy",
622
+ "questions": 7570,
623
+ "pictures": 3800,
624
+ "a": 0.6206076618229854,
625
+ "b": 0.6240422721268164,
626
+ "difference": 0.003434610303830965,
627
+ "ci95": [
628
+ -0.007000396248844298,
629
+ 0.013199577613516311
630
+ ],
631
+ "resamples": 2000
632
+ },
633
+ "nll": {
634
+ "metric": "nll",
635
+ "questions": 7570,
636
+ "pictures": 3800,
637
+ "a": 0.6743440115208639,
638
+ "b": 0.6925552586321518,
639
+ "difference": 0.018211247111287965,
640
+ "ci95": [
641
+ 0.008188317325104721,
642
+ 0.029288391972986494
643
+ ],
644
+ "resamples": 2000
645
+ }
646
+ },
647
+ "dev_mix": {
648
+ "acc": {
649
+ "metric": "accuracy",
650
+ "questions": 5178,
651
+ "pictures": 3042,
652
+ "a": 0.7576284279644651,
653
+ "b": 0.790845886442642,
654
+ "difference": 0.03321745847817692,
655
+ "ci95": [
656
+ 0.022335794056407288,
657
+ 0.04369682907965966
658
+ ],
659
+ "resamples": 2000
660
+ },
661
+ "nll": {
662
+ "metric": "nll",
663
+ "questions": 5178,
664
+ "pictures": 3042,
665
+ "a": 0.5432908524336165,
666
+ "b": 0.5260876670578333,
667
+ "difference": -0.017203185375783248,
668
+ "ci95": [
669
+ -0.034758412199066724,
670
+ 0.0017373233636809315
671
+ ],
672
+ "resamples": 2000
673
+ }
674
+ },
675
+ "dev_sqa": {
676
+ "acc": {
677
+ "metric": "accuracy",
678
+ "questions": 2017,
679
+ "pictures": 1799,
680
+ "a": 0.8041646008924145,
681
+ "b": 0.8463063956370848,
682
+ "difference": 0.04214179474467028,
683
+ "ci95": [
684
+ 0.024938875305623442,
685
+ 0.05867970660146704
686
+ ],
687
+ "resamples": 2000
688
+ },
689
+ "nll": {
690
+ "metric": "nll",
691
+ "questions": 2017,
692
+ "pictures": 1799,
693
+ "a": 0.45615675456359894,
694
+ "b": 0.416725354374512,
695
+ "difference": -0.03943140018908692,
696
+ "ci95": [
697
+ -0.06878795828969625,
698
+ -0.007295041475122277
699
+ ],
700
+ "resamples": 2000
701
+ }
702
+ }
703
+ },
704
+ "verdict": {
705
+ "missing": [],
706
+ "1_no_set_worse": {
707
+ "pass": true,
708
+ "worse": []
709
+ },
710
+ "2_at_least_15_up": {
711
+ "pass": true,
712
+ "up": 22,
713
+ "of": 23
714
+ },
715
+ "3_weak_4_of_5": {
716
+ "pass": true,
717
+ "by_ability": {
718
+ "ScienceQA": true,
719
+ "VSR": true,
720
+ "counting": true,
721
+ "A-OKVQA": false,
722
+ "V7W": true
723
+ }
724
+ },
725
+ "4_nll_not_worse": {
726
+ "pass": false,
727
+ "worse": [
728
+ "test_exist",
729
+ "test_size",
730
+ "bench_mme"
731
+ ]
732
+ }
733
+ }
734
+ }
evaluation/accept_vs_v0.3.md ADDED
@@ -0,0 +1,60 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ | 集合 | 判定 | 题数 | v0.3 | 候选 | 准确率差 [95%] | NLL 差 [95%] |
2
+ |---|---|---|---|---|---|---|
3
+ | test_vsr | 是 | 902 | 0.661 | 0.731 | +7.0 [+3.6, +10.6] | -0.025 [-0.067, +0.018] |
4
+ | test_v7w | 是 | 1000 | 0.711 | 0.783 | +7.2 [+4.8, +9.6] | -0.109 [-0.142, -0.077] |
5
+ | bench_pope | 是 | 9000 | 0.848 | 0.865 | +1.7 [+0.9, +2.6] | -0.009 [-0.022, +0.003] |
6
+ | test_vqa_yesno | 是 | 1000 | 0.683 | 0.722 | +3.9 [+1.5, +6.5] | -0.023 [-0.044, -0.002] |
7
+ | test_vqa_choice | 是 | 1453 | 0.882 | 0.905 | +2.3 [+0.8, +3.8] | -0.017 [-0.048, +0.018] |
8
+ | test_gqa | 是 | 986 | 0.782 | 0.843 | +6.1 [+3.6, +8.6] | -0.054 [-0.087, -0.020] |
9
+ | test_exist | 是 | 1120 | 0.939 | 0.955 | +1.6 [+0.3, +2.9] | +0.026 [+0.008, +0.043] |
10
+ | test_position | 是 | 1276 | 0.886 | 0.938 | +5.2 [+3.3, +7.1] | -0.034 [-0.082, +0.015] |
11
+ | test_relation | 是 | 2366 | 0.749 | 0.917 | +16.8 [+14.9, +18.6] | -0.210 [-0.253, -0.165] |
12
+ | test_size | 是 | 1198 | 0.856 | 0.870 | +1.3 [-0.3, +3.0] | +0.156 [+0.122, +0.188] |
13
+ | test_position_flip | 是 | 640 | 0.828 | 0.933 | +10.5 [+7.9, +13.2] | -0.096 [-0.167, -0.019] |
14
+ | test_relation_flip | 是 | 1786 | 0.702 | 0.914 | +21.2 [+19.0, +23.5] | -0.223 [-0.276, -0.162] |
15
+ | bench_lv_vqav2_yesno | 是 | 4887 | 0.725 | 0.756 | +3.1 [+1.9, +4.2] | -0.026 [-0.035, -0.017] |
16
+ | bench_lv_aokvqa | 是 | 1138 | 0.612 | 0.634 | +2.1 [-0.4, +4.5] | -0.012 [-0.050, +0.027] |
17
+ | bench_lv_scienceqa | 是 | 2097 | 0.789 | 0.821 | +3.1 [+1.6, +4.8] | -0.007 [-0.036, +0.022] |
18
+ | bench_whatsup | 是 | 820 | 0.287 | 0.467 | +18.0 [+13.5, +22.1] | -0.277 [-0.335, -0.219] |
19
+ | bench_countbench | 是 | 491 | 0.356 | 0.501 | +14.5 [+9.4, +19.6] | -0.215 [-0.256, -0.176] |
20
+ | bench_cogent_b | 是 | 2000 | 0.578 | 0.618 | +4.0 [+1.6, +6.6] | -0.006 [-0.026, +0.014] |
21
+ | test_count_coco | 是 | 1100 | 0.306 | 0.345 | +3.8 [+1.2, +6.5] | -0.210 [-0.260, -0.162] |
22
+ | bench_mmbench | 是 | 4294 | 0.604 | 0.627 | +2.3 [+1.1, +3.4] | -0.055 [-0.076, -0.031] |
23
+ | bench_cvbench | 是 | 2638 | 0.544 | 0.551 | +0.7 [-1.0, +2.5] | -0.093 [-0.112, -0.075] |
24
+ | bench_mme | 是 | 2374 | 0.653 | 0.647 | -0.6 [-2.1, +0.9] | +0.037 [+0.024, +0.050] |
25
+ | bench_naturalbench | 是 | 7570 | 0.621 | 0.624 | +0.3 [-0.7, +1.3] | +0.018 [+0.008, +0.029] |
26
+ | dev_mix | 报告 | 5178 | 0.758 | 0.791 | +3.3 [+2.2, +4.4] | -0.017 [-0.035, +0.002] |
27
+ | dev_sqa | 报告 | 2017 | 0.804 | 0.846 | +4.2 [+2.5, +5.9] | -0.039 [-0.069, -0.007] |
28
+
29
+ ```json
30
+ {
31
+ "missing": [],
32
+ "1_no_set_worse": {
33
+ "pass": true,
34
+ "worse": []
35
+ },
36
+ "2_at_least_15_up": {
37
+ "pass": true,
38
+ "up": 22,
39
+ "of": 23
40
+ },
41
+ "3_weak_4_of_5": {
42
+ "pass": true,
43
+ "by_ability": {
44
+ "ScienceQA": true,
45
+ "VSR": true,
46
+ "counting": true,
47
+ "A-OKVQA": false,
48
+ "V7W": true
49
+ }
50
+ },
51
+ "4_nll_not_worse": {
52
+ "pass": false,
53
+ "worse": [
54
+ "test_exist",
55
+ "test_size",
56
+ "bench_mme"
57
+ ]
58
+ }
59
+ }
60
+ ```
evaluation/adoption.md CHANGED
@@ -1,27 +1,14 @@
1
- # deVision v0.3 adoption decision
2
 
3
- Recorded: 2026-10-14 22:49:39 +0800
4
 
5
- The project owner explicitly chose r15-vision to replace v12-ext and authorized publication as model v0.3. This is an owner-approved trade-off. The prewritten acceptance rule was not passed: the original `candidate=false` is preserved in [accept_vs_v0.2.json](accept_vs_v0.2.json). The counting condition passed; four old-capability protection conditions did not pass; no prewritten NLL warning was triggered.
 
 
 
 
 
6
 
7
- | Set | v0.2 | v0.3 | Difference, points [95% CI] |
8
- |---|---:|---:|---:|
9
- | bench_countbench | 18.9% | 35.6% | +16.7 [+12.8, +21.0] |
10
- | test_relation | 71.1% | 75.5% | +4.4 [+2.8, +5.9] |
11
- | test_relation_flip | 66.9% | 69.8% | +2.9 [+1.0, +4.8] |
12
- | bench_lv_scienceqa | 76.6% | 78.9% | +2.3 [+1.1, +3.5] |
13
- | test_vsr | 67.9% | 66.2% | -1.8 [-3.9, +0.3] |
14
- | bench_lv_aokvqa | 62.6% | 61.2% | -1.3 [-2.9, +0.3] |
15
- | test_vqa_yesno | 71.0% | 70.4% | -0.6 [-2.2, +1.1] |
16
- | test_position_flip | 85.0% | 84.7% | -0.3 [-2.2, +1.4] |
17
 
18
- Intervals use paired resampling by picture. These evaluation sets have informed multiple experiments; the intervals do not correct for adaptive selection or multiple comparisons. A confidence interval containing zero does not establish equivalence.
19
-
20
- Accepted limitations:
21
-
22
- - VSR positive recall fell from 72.6% to 67.3% (post-hoc diagnostic); A-OKVQA lost 15 net correct answers, with worse NLL and ECE.
23
- - CountBench accuracy is still only 35.6%. Reversing answer order changes the selected answer on 39.5% of questions, versus 16.9% for v0.2; reversed-order accuracy also improved, so the gain is not confined to the original ordering.
24
- - What'sUp NLL increased by 0.0186 [0.0051, 0.0314], below the prewritten 0.02 warning threshold but still a deterioration in probability quality.
25
- - Diagram reasoning, small text and general spatial binding remain limited. There is no completed frozen-vision control isolating the effect of unfreezing.
26
-
27
- The final checkpoint is `runs/r15-vision/stage2`, step 10,235, seed 1. It continues exp19 at step 2,000 with the same optimizer/schedule state; see [seeded_from.json](seeded_from.json) and [training.yaml](training.yaml). Calibration is unchanged from the completed run; publication does not train or refit temperatures.
 
1
+ # v0.4 adoption
2
 
3
+ On 2026-10-22 the project owner decided to publish `r21-soft` as v0.4 ("发布这一版"), choosing it over the alternative candidate (r20 with temperatures refitted on the balanced dev set), although the prewritten acceptance rule 4 (calibration) is not met. The rules were frozen before training in `docs/experiments/2026-10-21-v04-eval-freeze.md`; the full verdict is in [accept_vs_v0.3.md](accept_vs_v0.3.md).
4
 
5
+ | Rule (vs v0.3, paired by question, pictures resampled) | Result |
6
+ |---|---|
7
+ | 1. no judged set significantly worse (accuracy) | met (0 of 23) |
8
+ | 2. at least 15 of 23 sets improve | met (22 of 23) |
9
+ | 3. at least 4 of 5 weak abilities improve with lower bound > 0 | met (ScienceQA, VSR, counting, V7W; A-OKVQA +2.1 with an interval containing 0) |
10
+ | 4. no set's NLL rises by > 0.02 with lower bound > 0 | **not met**: size +0.156, MME +0.037, COCO object presence +0.026 |
11
 
12
+ The rule-4 failures come mostly from under-confidence: size answers average 0.64 confidence at 0.87 accuracy, presence 0.88 at 0.955 (the presence / size training labels were softened to 0.9 / 0.1 to fix POPE over-confidence, which worked: POPE NLL 0.363 vs v0.3's 0.372). MME is slightly over-confident. One temperature per question type and option count cannot fit all of these at once.
 
 
 
 
 
 
 
 
 
13
 
14
+ Test sets informed several decisions in this release cycle (a stop at step 22,000, the science continuation, the label softening and the choice between two candidates). This is one training seed.
 
 
 
 
 
 
 
 
 
evaluation/cpu_latency.json CHANGED
@@ -1,14 +1,14 @@
1
  {
2
  "n": 200,
3
- "images": 73,
4
- "accuracy_all": 0.81,
5
  "accuracy": {
6
- "noul": 0.8202247191011236,
7
- "choice": 0.8018018018018018
8
  },
9
- "nll": 0.4400090990936913,
10
- "brier": 0.25543111423553433,
11
- "ece": 0.06582706868648526,
12
  "ece_bins": 15,
13
  "reliability": [
14
  {
@@ -16,369 +16,136 @@
16
  0.2,
17
  0.3
18
  ],
19
- "n": 1,
20
- "confidence": 0.28821372985839844,
21
- "accuracy": 1.0
22
  },
23
  {
24
  "bin": [
25
  0.3,
26
  0.4
27
  ],
28
- "n": 5,
29
- "confidence": 0.3615827262401581,
30
- "accuracy": 0.4
31
  },
32
  {
33
  "bin": [
34
  0.4,
35
  0.5
36
  ],
37
- "n": 7,
38
- "confidence": 0.4423674430165972,
39
- "accuracy": 0.42857142857142855
40
  },
41
  {
42
  "bin": [
43
  0.5,
44
  0.6
45
  ],
46
- "n": 33,
47
- "confidence": 0.5360189441478613,
48
- "accuracy": 0.6363636363636364
49
  },
50
  {
51
  "bin": [
52
  0.6,
53
  0.7
54
  ],
55
- "n": 26,
56
- "confidence": 0.6526116694395359,
57
- "accuracy": 0.6923076923076923
58
  },
59
  {
60
  "bin": [
61
  0.7,
62
  0.8
63
  ],
64
- "n": 15,
65
- "confidence": 0.7433490335941315,
66
- "accuracy": 0.8
67
  },
68
  {
69
  "bin": [
70
  0.8,
71
  0.9
72
  ],
73
- "n": 38,
74
- "confidence": 0.8569445978654059,
75
- "accuracy": 0.8421052631578947
76
  },
77
  {
78
  "bin": [
79
  0.9,
80
  1.0
81
  ],
82
- "n": 75,
83
- "confidence": 0.953959968884786,
84
- "accuracy": 0.9733333333333334
85
  }
86
  ],
87
  "thresholds": {
88
  "0.6": {
89
- "coverage": 0.77,
90
- "accuracy": 0.8766233766233766
91
  },
92
  "0.7": {
93
- "coverage": 0.64,
94
- "accuracy": 0.9140625
95
  },
96
  "0.8": {
97
- "coverage": 0.565,
98
- "accuracy": 0.9292035398230089
99
  },
100
  "0.9": {
101
- "coverage": 0.375,
102
- "accuracy": 0.9733333333333334
103
  }
104
  },
105
  "by_source": {
106
- "ai2d": {
107
- "n": 2,
108
- "images": 1,
109
- "accuracy": 0.5,
110
- "nll": 1.2898404388867466,
111
- "ece": 0.3732716739177704
112
- },
113
  "aokvqa": {
114
- "n": 4,
115
- "images": 2,
116
- "accuracy": 0.75,
117
- "nll": 0.611274152606737,
118
- "ece": 0.2411895990371704
119
- },
120
- "coco-exist": {
121
- "n": 39,
122
- "images": 25,
123
- "accuracy": 0.9230769230769231,
124
- "nll": 0.23563569869662415,
125
- "ece": 0.0540550612868407
126
- },
127
- "coco-position": {
128
- "n": 26,
129
- "images": 18,
130
- "accuracy": 0.9230769230769231,
131
- "nll": 0.20050254680859508,
132
- "ece": 0.12922574006594145
133
- },
134
- "coco-relation": {
135
- "n": 10,
136
- "images": 5,
137
- "accuracy": 0.8,
138
- "nll": 0.4535431995357432,
139
- "ece": 0.29919506013393404
140
- },
141
- "coco-size": {
142
- "n": 2,
143
- "images": 2,
144
- "accuracy": 1.0,
145
- "nll": 0.3333616534201184,
146
- "ece": 0.2508668899536133
147
- },
148
- "gqa-v2": {
149
- "n": 25,
150
- "images": 7,
151
- "accuracy": 0.68,
152
- "nll": 0.5026796189257893,
153
- "ece": 0.21928748846054075
154
- },
155
- "tqa": {
156
- "n": 10,
157
- "images": 2,
158
- "accuracy": 0.5,
159
- "nll": 1.2075195747510135,
160
- "ece": 0.35332188010215765
161
- },
162
- "vqav2-choice": {
163
- "n": 35,
164
- "images": 21,
165
- "accuracy": 0.8857142857142857,
166
- "nll": 0.3503283097869317,
167
- "ece": 0.15751930900982447
168
- },
169
- "vqav2-yesno": {
170
- "n": 38,
171
- "images": 24,
172
- "accuracy": 0.7368421052631579,
173
- "nll": 0.5690740238980908,
174
- "ece": 0.11526736793549436
175
- },
176
- "vsr": {
177
- "n": 9,
178
- "images": 4,
179
- "accuracy": 0.7777777777777778,
180
- "nll": 0.5381709545359337,
181
- "ece": 0.2373169246647093
182
  }
183
  },
184
  "by_kind": {
185
- "ai2d": {
186
- "n": 2,
187
- "images": 1,
188
- "accuracy": 0.5,
189
- "nll": 1.2898404388867466,
190
- "ece": 0.3732716739177704
191
- },
192
- "animal": {
193
- "n": 2,
194
- "images": 2,
195
- "accuracy": 1.0,
196
- "nll": 0.08400760063551806,
197
- "ece": 0.07780307531356812
198
- },
199
  "aokvqa": {
200
- "n": 4,
201
- "images": 2,
202
- "accuracy": 0.75,
203
- "nll": 0.611274152606737,
204
- "ece": 0.2411895990371704
205
- },
206
- "color": {
207
- "n": 14,
208
- "images": 11,
209
- "accuracy": 0.8571428571428571,
210
- "nll": 0.3618174527077554,
211
- "ece": 0.09759957662650516
212
- },
213
- "count": {
214
- "n": 10,
215
- "images": 7,
216
- "accuracy": 0.8,
217
- "nll": 0.6097179990869517,
218
- "ece": 0.3152927696704865
219
- },
220
- "exist": {
221
- "n": 39,
222
- "images": 25,
223
- "accuracy": 0.9230769230769231,
224
- "nll": 0.23563569869662415,
225
- "ece": 0.0540550612868407
226
- },
227
- "food": {
228
- "n": 1,
229
- "images": 1,
230
- "accuracy": 1.0,
231
- "nll": 0.0042057737329474765,
232
- "ece": 0.00419694185256958
233
- },
234
- "gqa": {
235
- "n": 11,
236
- "images": 6,
237
- "accuracy": 0.7272727272727273,
238
- "nll": 0.5031112251493984,
239
- "ece": 0.2824250134554776
240
- },
241
- "material": {
242
- "n": 2,
243
- "images": 2,
244
- "accuracy": 1.0,
245
- "nll": 0.22872908175288753,
246
- "ece": 0.19662755727767944
247
- },
248
- "meat": {
249
- "n": 1,
250
- "images": 1,
251
- "accuracy": 1.0,
252
- "nll": 0.1798803908020786,
253
- "ece": 0.16462987661361694
254
- },
255
- "position": {
256
- "n": 26,
257
- "images": 18,
258
- "accuracy": 0.9230769230769231,
259
- "nll": 0.20050254680859508,
260
- "ece": 0.12922574006594145
261
- },
262
- "relation": {
263
- "n": 10,
264
- "images": 5,
265
- "accuracy": 0.8,
266
- "nll": 0.4535431995357432,
267
- "ece": 0.29919506013393404
268
- },
269
- "room": {
270
- "n": 1,
271
- "images": 1,
272
- "accuracy": 1.0,
273
- "nll": 0.005263986423792628,
274
- "ece": 0.005250155925750732
275
- },
276
- "size": {
277
- "n": 2,
278
- "images": 2,
279
- "accuracy": 1.0,
280
- "nll": 0.3333616534201184,
281
- "ece": 0.2508668899536133
282
- },
283
- "spatial": {
284
- "n": 14,
285
- "images": 5,
286
- "accuracy": 0.6428571428571429,
287
- "nll": 0.5023404997500963,
288
- "ece": 0.1696794331073761
289
- },
290
- "tqa": {
291
- "n": 10,
292
- "images": 2,
293
- "accuracy": 0.5,
294
- "nll": 1.2075195747510135,
295
- "ece": 0.35332188010215765
296
- },
297
- "vegetable": {
298
- "n": 4,
299
- "images": 4,
300
- "accuracy": 1.0,
301
- "nll": 0.07101074950722219,
302
- "ece": 0.06772895157337189
303
- },
304
- "vsr": {
305
- "n": 9,
306
- "images": 4,
307
- "accuracy": 0.7777777777777778,
308
- "nll": 0.5381709545359337,
309
- "ece": 0.2373169246647093
310
- },
311
- "yesno": {
312
- "n": 38,
313
- "images": 24,
314
- "accuracy": 0.7368421052631579,
315
- "nll": 0.5690740238980908,
316
- "ece": 0.11526736793549436
317
  }
318
  },
319
  "by_axis": {
320
  "-": {
321
- "n": 162,
322
- "images": 67,
323
- "accuracy": 0.7901234567901234,
324
- "nll": 0.47554891340501837,
325
- "ece": 0.05595421993438109
326
- },
327
- "lr": {
328
- "n": 27,
329
- "images": 18,
330
- "accuracy": 0.8888888888888888,
331
- "nll": 0.3277449296076739,
332
- "ece": 0.19794687407988087
333
- },
334
- "tb": {
335
- "n": 11,
336
- "images": 11,
337
- "accuracy": 0.9090909090909091,
338
- "nll": 0.1921620679743721,
339
- "ece": 0.09886410019614479
340
  }
341
  },
342
  "by_options": {
343
- "2": {
344
- "n": 157,
345
- "images": 64,
346
- "accuracy": 0.8280254777070064,
347
- "nll": 0.38058168910086837,
348
- "ece": 0.06867314277181197
349
- },
350
- "3": {
351
- "n": 10,
352
- "images": 9,
353
- "accuracy": 0.9,
354
- "nll": 0.4393064845098579,
355
- "ece": 0.22365574836730956
356
- },
357
  "4": {
358
- "n": 31,
359
- "images": 18,
360
- "accuracy": 0.6774193548387096,
361
- "nll": 0.7616504939115978,
362
- "ece": 0.10811415699220474
363
- },
364
- "5": {
365
- "n": 2,
366
- "images": 2,
367
- "accuracy": 1.0,
368
- "nll": 0.12313223677190567,
369
- "ece": 0.1151973307132721
370
  }
371
  },
372
- "noul_confusion": {
373
- "tp": 42,
374
- "fp": 10,
375
- "fn": 6,
376
- "tn": 31,
377
- "yes_ratio": 0.5842696629213483
378
  },
379
  "request_latency_ms": {
380
- "p50": 174.91745902225375,
381
- "p95": 189.9587146937847,
382
  "requests": 200,
383
  "warmup_excluded": 3
384
  },
@@ -387,47 +154,94 @@
387
  "p50": 1.0,
388
  "max": 1
389
  },
390
- "ms_per_question": {
391
- "p50": 174.91745902225375,
392
- "p95": 189.9587146937847,
393
- "overall": 172.57170106749982
394
- },
395
  "latency_ms": {
396
- "p50": 174.91745902225375,
397
- "p95": 189.9587146937847,
398
  "requests": 200,
399
  "warmup_excluded": 3
400
  },
401
  "control": "none",
402
- "model": "devision-0.1",
 
 
 
 
 
403
  "temperature": {
404
- "choice": 1.5922062397003174,
405
- "noul": 1.825764536857605,
406
  "by_options": {
407
- "choice:11+": 1.201171636581421,
408
- "choice:2": 1.9487814903259277,
409
- "choice:3-5": 1.7575252056121826,
410
- "noul:2": 1.825764536857605
411
  }
412
  },
413
  "grouping": {
414
  "max_questions_per_request": 1,
415
- "by": "none (one question per request)"
 
416
  },
417
  "environment": {
418
  "threads": 4,
419
- "machine": "arm64",
420
- "system": "Darwin"
421
  },
422
  "run": {
423
- "checkpoint": "runs/r15-vision/stage2",
424
- "data": "data/r12/cpu_latency.jsonl",
425
- "data_sha256": "352f0b4676aeb7389b45a93086169096d6b8e3962568543cfa373877c3e84020",
426
- "role": "unspecified",
427
  "device": "cpu",
428
  "temperature": "fitted",
429
  "control": "none",
430
  "seed": 0,
431
- "code": "6feb0b3+dirty"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
432
  }
433
  }
 
1
  {
2
  "n": 200,
3
+ "images": 199,
4
+ "accuracy_all": 0.63,
5
  "accuracy": {
6
+ "noul": null,
7
+ "choice": 0.63
8
  },
9
+ "nll": 0.9023860797262202,
10
+ "brier": 0.48241933227960376,
11
+ "ece": 0.05323468044400214,
12
  "ece_bins": 15,
13
  "reliability": [
14
  {
 
16
  0.2,
17
  0.3
18
  ],
19
+ "n": 8,
20
+ "confidence": 0.28236541524529457,
21
+ "accuracy": 0.25
22
  },
23
  {
24
  "bin": [
25
  0.3,
26
  0.4
27
  ],
28
+ "n": 41,
29
+ "confidence": 0.3474449958743119,
30
+ "accuracy": 0.36585365853658536
31
  },
32
  {
33
  "bin": [
34
  0.4,
35
  0.5
36
  ],
37
+ "n": 31,
38
+ "confidence": 0.44290193915367126,
39
+ "accuracy": 0.5161290322580645
40
  },
41
  {
42
  "bin": [
43
  0.5,
44
  0.6
45
  ],
46
+ "n": 20,
47
+ "confidence": 0.5382369369268417,
48
+ "accuracy": 0.6
49
  },
50
  {
51
  "bin": [
52
  0.6,
53
  0.7
54
  ],
55
+ "n": 29,
56
+ "confidence": 0.6475593776538454,
57
+ "accuracy": 0.6206896551724138
58
  },
59
  {
60
  "bin": [
61
  0.7,
62
  0.8
63
  ],
64
+ "n": 18,
65
+ "confidence": 0.7407801515526242,
66
+ "accuracy": 0.7777777777777778
67
  },
68
  {
69
  "bin": [
70
  0.8,
71
  0.9
72
  ],
73
+ "n": 17,
74
+ "confidence": 0.8483305994202109,
75
+ "accuracy": 0.9411764705882353
76
  },
77
  {
78
  "bin": [
79
  0.9,
80
  1.0
81
  ],
82
+ "n": 36,
83
+ "confidence": 0.9695057719945908,
84
+ "accuracy": 0.9166666666666666
85
  }
86
  ],
87
  "thresholds": {
88
  "0.6": {
89
+ "coverage": 0.5,
90
+ "accuracy": 0.81
91
  },
92
  "0.7": {
93
+ "coverage": 0.355,
94
+ "accuracy": 0.8873239436619719
95
  },
96
  "0.8": {
97
+ "coverage": 0.265,
98
+ "accuracy": 0.9245283018867925
99
  },
100
  "0.9": {
101
+ "coverage": 0.18,
102
+ "accuracy": 0.9166666666666666
103
  }
104
  },
105
  "by_source": {
 
 
 
 
 
 
 
106
  "aokvqa": {
107
+ "n": 200,
108
+ "images": 199,
109
+ "accuracy": 0.63,
110
+ "nll": 0.9023860797262202,
111
+ "ece": 0.05323468044400214
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
112
  }
113
  },
114
  "by_kind": {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
115
  "aokvqa": {
116
+ "n": 200,
117
+ "images": 199,
118
+ "accuracy": 0.63,
119
+ "nll": 0.9023860797262202,
120
+ "ece": 0.05323468044400214
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
121
  }
122
  },
123
  "by_axis": {
124
  "-": {
125
+ "n": 200,
126
+ "images": 199,
127
+ "accuracy": 0.63,
128
+ "nll": 0.9023860797262202,
129
+ "ece": 0.05323468044400214
 
 
 
 
 
 
 
 
 
 
 
 
 
 
130
  }
131
  },
132
  "by_options": {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
133
  "4": {
134
+ "n": 200,
135
+ "images": 199,
136
+ "accuracy": 0.63,
137
+ "nll": 0.9023860797262202,
138
+ "ece": 0.05323468044400214
 
 
 
 
 
 
 
139
  }
140
  },
141
+ "ms_per_question": {
142
+ "p50": 289.0499159984756,
143
+ "p95": 301.4491552057734,
144
+ "overall": 289.6095040804357
 
 
145
  },
146
  "request_latency_ms": {
147
+ "p50": 289.0499159984756,
148
+ "p95": 301.4491552057734,
149
  "requests": 200,
150
  "warmup_excluded": 3
151
  },
 
154
  "p50": 1.0,
155
  "max": 1
156
  },
 
 
 
 
 
157
  "latency_ms": {
158
+ "p50": 289.0499159984756,
159
+ "p95": 301.4491552057734,
160
  "requests": 200,
161
  "warmup_excluded": 3
162
  },
163
  "control": "none",
164
+ "model": "devision-v0.3",
165
+ "reading": {
166
+ "mode": "none",
167
+ "routed_questions": 0,
168
+ "read_questions": 0
169
+ },
170
  "temperature": {
171
+ "choice": 2.3641862869262695,
172
+ "noul": 1.0895380973815918,
173
  "by_options": {
174
+ "choice:2": 3.563119649887085,
175
+ "choice:3-5": 2.1145524978637695,
176
+ "noul:2": 1.0895380973815918
 
177
  }
178
  },
179
  "grouping": {
180
  "max_questions_per_request": 1,
181
+ "by": "none (one question per request)",
182
+ "max_questions_per_call": "one request per call"
183
  },
184
  "environment": {
185
  "threads": 4,
186
+ "machine": "x86_64",
187
+ "system": "Linux"
188
  },
189
  "run": {
190
+ "checkpoint": "runs/r21-soft/train",
191
+ "data": "runs/v04-cpu/latency200.jsonl",
192
+ "data_sha256": "e0f4d5b0f82ff59ba91d141f49833ad9a097ac36842b98c32e2c4a834d0b9691",
193
+ "role": "monitoring",
194
  "device": "cpu",
195
  "temperature": "fitted",
196
  "control": "none",
197
  "seed": 0,
198
+ "code": "a6b4e8a+dirty",
199
+ "reading": {
200
+ "mode": "none",
201
+ "routed_questions": 0,
202
+ "read_questions": 0
203
+ },
204
+ "code_identity": {
205
+ "modules": {
206
+ "devision": {
207
+ "path": "/home/bruce/proj/devision/src/devision/__init__.py",
208
+ "sha256": "aa00e0d329f33444a51bc4cab7691911b6b226664fdc2fbd438103de8d0c27a1"
209
+ },
210
+ "devision.image": {
211
+ "path": "/home/bruce/proj/devision/src/devision/image.py",
212
+ "sha256": "a139a63f985b8a210de4b9a5327dd56cc078a986cb36ebcc7fd3c4aba4bef312"
213
+ },
214
+ "devision.infer": {
215
+ "path": "/home/bruce/proj/devision/src/devision/infer.py",
216
+ "sha256": "d7e3e5f8bc54278cbdba99f77da567344cf40e9748c6b1a55ecb48e48d593893"
217
+ },
218
+ "devision.model": {
219
+ "path": "/home/bruce/proj/devision/src/devision/model.py",
220
+ "sha256": "079e9c9c60545242146a99ec66ba09a5cd1435545967b37b2649e071b3245209"
221
+ },
222
+ "devision.reading": {
223
+ "path": "/home/bruce/proj/devision/src/devision/reading.py",
224
+ "sha256": "dc2f3cc2151ec4761dcfc404b28d609a932aac70ff0ff02b0dd6e170b6c1f8ba"
225
+ },
226
+ "devision.train": {
227
+ "path": "/home/bruce/proj/devision/src/devision/train/__init__.py",
228
+ "sha256": "16c32ba2bae66029fb0afd4946827c475729aa45c7dde335864d002c564df289"
229
+ },
230
+ "devision.train.cli": {
231
+ "path": "/home/bruce/proj/devision/src/devision/train/cli.py",
232
+ "sha256": "aab8811a63c89726fd78dd7ea88ab930c6d115b529a011173ccc8637f081d342"
233
+ },
234
+ "devision.train.evaluate": {
235
+ "path": "/home/bruce/proj/devision/src/devision/train/evaluate.py",
236
+ "sha256": "4d5df39b37b0854ead1b8c7d0a04933e24ab9b05e0e341f0bdbfbc6911af2d90"
237
+ },
238
+ "devision.train.samples": {
239
+ "path": "/home/bruce/proj/devision/src/devision/train/samples.py",
240
+ "sha256": "5a4d5a75ec31380f5470a22c0ba4e370e170ba0499e5d4a77ed573450f9c3e31"
241
+ }
242
+ },
243
+ "version": "0.3.0.dev1",
244
+ "python": "3.12.3"
245
+ }
246
  }
247
  }
evaluation/results.json CHANGED
@@ -1,189 +1,174 @@
1
  {
2
  "temperature": {
3
- "choice": 1.5922062397003174,
4
- "noul": 1.825764536857605,
5
  "by_options": {
6
- "choice:11+": 1.201171636581421,
7
- "choice:2": 1.9487814903259277,
8
- "choice:3-5": 1.7575252056121826,
9
- "noul:2": 1.825764536857605
10
  }
11
  },
12
  "test_sets": {
13
  "test_exist": {
14
  "questions": 1120,
15
- "accuracy": 0.9473,
16
- "nll": 0.1631,
17
- "ece": 0.0341,
18
- "accuracy_mismatched": 0.5036
19
  },
20
  "test_vqa_choice": {
21
- "questions": 1420,
22
- "accuracy": 0.9092,
23
- "nll": 0.2705,
24
- "ece": 0.0384,
25
- "accuracy_mismatched": 0.3803
26
  },
27
  "test_size": {
28
- "questions": 1100,
29
- "accuracy": 0.8718,
30
- "nll": 0.3361,
31
- "ece": 0.0295,
32
- "accuracy_mismatched": 0.5109
33
  },
34
  "bench_pope": {
35
- "questions": 8676,
36
- "accuracy": 0.8496,
37
- "nll": 0.3679,
38
- "ece": 0.0393,
39
- "accuracy_mismatched": 0.5269
40
  },
41
  "test_gqa": {
42
- "questions": 992,
43
- "accuracy": 0.7903,
44
- "nll": 0.4105,
45
- "ece": 0.0396,
46
- "accuracy_mismatched": 0.5504
47
  },
48
  "test_position": {
49
- "questions": 1274,
50
- "accuracy": 0.8846,
51
- "nll": 0.2882,
52
- "ece": 0.029,
53
- "accuracy_mismatched": 0.4929
54
  },
55
  "test_vqa_yesno": {
56
  "questions": 1000,
57
- "accuracy": 0.704,
58
- "nll": 0.5741,
59
- "ece": 0.0265,
60
- "accuracy_mismatched": 0.512
61
  },
62
  "test_relation": {
63
- "questions": 1950,
64
- "accuracy": 0.7549,
65
- "nll": 0.4896,
66
- "ece": 0.0384,
67
- "accuracy_mismatched": 0.4959
68
  },
69
  "test_vsr": {
70
- "questions": 904,
71
- "accuracy": 0.6615,
72
- "nll": 0.6198,
73
- "ece": 0.0465,
74
- "accuracy_mismatched": 0.4867
75
  },
76
  "test_v7w": {
77
  "questions": 1000,
78
- "accuracy": 0.721,
79
- "nll": 0.6726,
80
- "ece": 0.0411,
81
- "accuracy_mismatched": 0.419
82
- },
83
- "test_count_fresh": {
84
- "questions": 600,
85
- "accuracy": 0.7633,
86
- "nll": 0.5738,
87
- "ece": 0.054,
88
- "accuracy_mismatched": 0.405
89
  },
90
  "bench_countbench": {
91
  "questions": 491,
92
- "accuracy": 0.3564,
93
- "nll": 1.6022,
94
- "ece": 0.0523,
95
- "accuracy_mismatched": 0.1039
96
  },
97
  "test_position_flip": {
98
  "questions": 640,
99
- "accuracy": 0.8469,
100
- "nll": 0.3592,
101
- "ece": 0.0444,
102
- "accuracy_mismatched": 0.4766
103
  },
104
  "test_relation_flip": {
105
- "questions": 1492,
106
- "accuracy": 0.6977,
107
- "nll": 0.545,
108
- "ece": 0.03,
109
- "accuracy_mismatched": 0.5074
110
- },
111
- "test_bind_gqa": {
112
- "questions": 1484,
113
- "accuracy": 0.6765,
114
- "nll": 0.5593,
115
- "ece": 0.0277,
116
- "accuracy_mismatched": 0.498
117
  },
118
  "bench_whatsup": {
119
  "questions": 820,
120
- "accuracy": 0.2866,
121
- "nll": 1.4909,
122
- "ece": 0.2447,
123
- "accuracy_mismatched": 0.2451
124
  }
125
  },
126
  "laya_vision": {
127
  "vqav2_yesno": {
128
  "questions": 4887,
129
  "laya_vision": 0.7172,
130
- "devision": 0.725,
131
- "difference": 0.0078,
132
  "ci95": [
133
- -0.0075,
134
- 0.0241
135
  ]
136
  },
137
  "aokvqa": {
138
  "questions": 1138,
139
  "laya_vision": 0.5984,
140
- "devision": 0.6125,
141
- "difference": 0.0141,
142
  "ci95": [
143
- -0.0185,
144
- 0.0466
145
  ]
146
  },
147
  "scienceqa": {
148
  "questions": 2097,
149
  "laya_vision": 0.824,
150
- "devision": 0.7892,
151
- "difference": -0.0348,
152
  "ci95": [
153
- -0.0558,
154
- -0.0143
155
  ]
156
  },
157
  "scienceqa_natural_needs_picture": {
158
  "questions": 323,
159
  "laya_vision": 0.6997,
160
- "devision": 0.4954,
161
- "difference": -0.2043,
162
  "ci95": [
163
- -0.2724,
164
- -0.1331
165
  ]
166
  },
167
  "pope": {
168
  "random": {
169
  "laya_vision_published": 0.836,
170
- "devision": 0.8797
171
  },
172
  "popular": {
173
  "laya_vision_published": 0.819,
174
- "devision": 0.8593
175
  },
176
  "adversarial": {
177
  "laya_vision_published": 0.777,
178
- "devision": 0.8053
179
  }
180
  }
181
  },
182
  "cpu_latency": {
183
- "p50": 175,
184
- "p95": 190,
185
  "threads": 4,
186
- "machine": "Darwin arm64",
187
- "source": "release/v0.3/cpu_latency.json"
188
  }
189
  }
 
1
  {
2
  "temperature": {
3
+ "choice": 2.3641862869262695,
4
+ "noul": 1.0895380973815918,
5
  "by_options": {
6
+ "choice:2": 3.563119649887085,
7
+ "choice:3-5": 2.1145524978637695,
8
+ "noul:2": 1.0895380973815918
 
9
  }
10
  },
11
  "test_sets": {
12
  "test_exist": {
13
  "questions": 1120,
14
+ "accuracy": 0.9554,
15
+ "nll": 0.1957,
16
+ "ece": 0.0924,
17
+ "accuracy_mismatched": 0.4973
18
  },
19
  "test_vqa_choice": {
20
+ "questions": 1453,
21
+ "accuracy": 0.905,
22
+ "nll": 0.2802,
23
+ "ece": 0.0534,
24
+ "accuracy_mismatched": 0.3696
25
  },
26
  "test_size": {
27
+ "questions": 1198,
28
+ "accuracy": 0.8698,
29
+ "nll": 0.5065,
30
+ "ece": 0.2345,
31
+ "accuracy_mismatched": 0.5159
32
  },
33
  "bench_pope": {
34
+ "questions": 9000,
35
+ "accuracy": 0.8653,
36
+ "nll": 0.363,
37
+ "ece": 0.0483,
38
+ "accuracy_mismatched": 0.5201
39
  },
40
  "test_gqa": {
41
+ "questions": 986,
42
+ "accuracy": 0.8428,
43
+ "nll": 0.3828,
44
+ "ece": 0.0857,
45
+ "accuracy_mismatched": 0.5456
46
  },
47
  "test_position": {
48
+ "questions": 1276,
49
+ "accuracy": 0.9381,
50
+ "nll": 0.2384,
51
+ "ece": 0.0468,
52
+ "accuracy_mismatched": 0.5086
53
  },
54
  "test_vqa_yesno": {
55
  "questions": 1000,
56
+ "accuracy": 0.722,
57
+ "nll": 0.5713,
58
+ "ece": 0.0552,
59
+ "accuracy_mismatched": 0.5
60
  },
61
  "test_relation": {
62
+ "questions": 2366,
63
+ "accuracy": 0.9167,
64
+ "nll": 0.2805,
65
+ "ece": 0.0367,
66
+ "accuracy_mismatched": 0.4801
67
  },
68
  "test_vsr": {
69
+ "questions": 902,
70
+ "accuracy": 0.7306,
71
+ "nll": 0.5905,
72
+ "ece": 0.0734,
73
+ "accuracy_mismatched": 0.4601
74
  },
75
  "test_v7w": {
76
  "questions": 1000,
77
+ "accuracy": 0.783,
78
+ "nll": 0.5967,
79
+ "ece": 0.073,
80
+ "accuracy_mismatched": 0.442
 
 
 
 
 
 
 
81
  },
82
  "bench_countbench": {
83
  "questions": 491,
84
+ "accuracy": 0.501,
85
+ "nll": 1.3872,
86
+ "ece": 0.1655,
87
+ "accuracy_mismatched": 0.1018
88
  },
89
  "test_position_flip": {
90
  "questions": 640,
91
+ "accuracy": 0.9328,
92
+ "nll": 0.283,
93
+ "ece": 0.0532,
94
+ "accuracy_mismatched": 0.5031
95
  },
96
  "test_relation_flip": {
97
+ "questions": 1786,
98
+ "accuracy": 0.9143,
99
+ "nll": 0.3004,
100
+ "ece": 0.0485,
101
+ "accuracy_mismatched": 0.4938
 
 
 
 
 
 
 
102
  },
103
  "bench_whatsup": {
104
  "questions": 820,
105
+ "accuracy": 0.4671,
106
+ "nll": 1.2142,
107
+ "ece": 0.0926,
108
+ "accuracy_mismatched": 0.2329
109
  }
110
  },
111
  "laya_vision": {
112
  "vqav2_yesno": {
113
  "questions": 4887,
114
  "laya_vision": 0.7172,
115
+ "devision": 0.7559,
116
+ "difference": 0.0387,
117
  "ci95": [
118
+ 0.0244,
119
+ 0.0533
120
  ]
121
  },
122
  "aokvqa": {
123
  "questions": 1138,
124
  "laya_vision": 0.5984,
125
+ "devision": 0.6336,
126
+ "difference": 0.0351,
127
  "ci95": [
128
+ 0.0026,
129
+ 0.0659
130
  ]
131
  },
132
  "scienceqa": {
133
  "questions": 2097,
134
  "laya_vision": 0.824,
135
+ "devision": 0.8207,
136
+ "difference": -0.0033,
137
  "ci95": [
138
+ -0.0224,
139
+ 0.0172
140
  ]
141
  },
142
  "scienceqa_natural_needs_picture": {
143
  "questions": 323,
144
  "laya_vision": 0.6997,
145
+ "devision": 0.6378,
146
+ "difference": -0.0619,
147
  "ci95": [
148
+ -0.1269,
149
+ 0.0
150
  ]
151
  },
152
  "pope": {
153
  "random": {
154
  "laya_vision_published": 0.836,
155
+ "devision": 0.8987
156
  },
157
  "popular": {
158
  "laya_vision_published": 0.819,
159
+ "devision": 0.8733
160
  },
161
  "adversarial": {
162
  "laya_vision_published": 0.777,
163
+ "devision": 0.824
164
  }
165
  }
166
  },
167
  "cpu_latency": {
168
+ "p50": 289,
169
+ "p95": 301,
170
  "threads": 4,
171
+ "machine": "Linux x86_64",
172
+ "source": "release/v0.4/cpu_latency.json"
173
  }
174
  }
evaluation/results.md CHANGED
@@ -1,43 +1,40 @@
1
- # deVision v0.3 evaluation
2
 
3
  Generated by `scripts/release/hf.py` from the evaluation of this release.
4
 
5
  | Set | Questions | Accuracy | Mismatched | NLL | ECE |
6
  |---|---:|---:|---:|---:|---:|
7
- | COCO object presence | 1,120 | 0.947 | 0.504 | 0.163 | 0.034 |
8
- | VQAv2 multiple choice | 1,420 | 0.909 | 0.380 | 0.271 | 0.038 |
9
- | COCO size | 1,100 | 0.872 | 0.511 | 0.336 | 0.029 |
10
- | POPE, project filtered set | 8,676 | 0.850 | 0.527 | 0.368 | 0.039 |
11
- | GQA val subset | 992 | 0.790 | 0.550 | 0.410 | 0.040 |
12
- | COCO position | 1,274 | 0.885 | 0.493 | 0.288 | 0.029 |
13
- | VQAv2 yes/no subset | 1,000 | 0.704 | 0.512 | 0.574 | 0.026 |
14
- | COCO relative position | 1,950 | 0.755 | 0.496 | 0.490 | 0.038 |
15
- | VSR, project held-out split | 904 | 0.661 | 0.487 | 0.620 | 0.046 |
16
- | Visual7W, project held-out split | 1,000 | 0.721 | 0.419 | 0.673 | 0.041 |
17
- | Fresh counting test (unseen pictures) | 600 | 0.763 | 0.405 | 0.574 | 0.054 |
18
- | CountBench, 0–10 choices | 491 | 0.356 | 0.104 | 1.602 | 0.052 |
19
- | COCO mirrored position | 640 | 0.847 | 0.477 | 0.359 | 0.044 |
20
- | COCO mirrored relative position | 1,492 | 0.698 | 0.507 | 0.545 | 0.030 |
21
- | GQA binding test | 1,484 | 0.676 | 0.498 | 0.559 | 0.028 |
22
- | What'sUp | 820 | 0.287 | 0.245 | 1.491 | 0.245 |
23
 
24
  ## Laya Vision 201M, same questions
25
 
26
  | Set | Questions | Laya Vision | deVision | Difference |
27
  |---|---:|---:|---:|---|
28
- | VQAv2 yes/no | 4,887 | 0.717 | 0.725 | +0.8 [-0.8, +2.4] |
29
- | A-OKVQA | 1,138 | 0.598 | 0.613 | +1.4 [-1.8, +4.7] |
30
- | ScienceQA with images | 2,097 | 0.824 | 0.789 | -3.5 [-5.6, -1.4] |
31
- | ScienceQA natural science, needs the picture | 323 | 0.700 | 0.495 | -20.4 [-27.2, -13.3] |
32
 
33
- On the full POPE random / popular / adversarial sets (3,000 questions each) deVision scores **0.880 / 0.859 / 0.805**, against Laya Vision's published **0.836 / 0.819 / 0.777** (aggregate scores only, not paired).
34
 
35
  ## Temperatures
36
 
37
  | Bucket | Temperature |
38
  |---|---:|
39
- | Choice, 11+ options | 1.2012 |
40
- | Choice, 2 options | 1.9488 |
41
- | Choice, 3–5 options | 1.7575 |
42
- | Noul (yes / no) | 1.8258 |
43
- | Choice, any other count | 1.5922 |
 
1
+ # deVision v0.4 evaluation
2
 
3
  Generated by `scripts/release/hf.py` from the evaluation of this release.
4
 
5
  | Set | Questions | Accuracy | Mismatched | NLL | ECE |
6
  |---|---:|---:|---:|---:|---:|
7
+ | COCO object presence | 1,120 | 0.955 | 0.497 | 0.196 | 0.092 |
8
+ | VQAv2 multiple choice | 1,453 | 0.905 | 0.370 | 0.280 | 0.053 |
9
+ | COCO size | 1,198 | 0.870 | 0.516 | 0.506 | 0.234 |
10
+ | POPE, project filtered set | 9,000 | 0.865 | 0.520 | 0.363 | 0.048 |
11
+ | GQA val subset | 986 | 0.843 | 0.546 | 0.383 | 0.086 |
12
+ | COCO position | 1,276 | 0.938 | 0.509 | 0.238 | 0.047 |
13
+ | VQAv2 yes/no subset | 1,000 | 0.722 | 0.500 | 0.571 | 0.055 |
14
+ | COCO relative position | 2,366 | 0.917 | 0.480 | 0.281 | 0.037 |
15
+ | VSR, project held-out split | 902 | 0.731 | 0.460 | 0.591 | 0.073 |
16
+ | Visual7W, project held-out split | 1,000 | 0.783 | 0.442 | 0.597 | 0.073 |
17
+ | CountBench, 0–10 choices | 491 | 0.501 | 0.102 | 1.387 | 0.166 |
18
+ | COCO mirrored position | 640 | 0.933 | 0.503 | 0.283 | 0.053 |
19
+ | COCO mirrored relative position | 1,786 | 0.914 | 0.494 | 0.300 | 0.049 |
20
+ | What'sUp | 820 | 0.467 | 0.233 | 1.214 | 0.093 |
 
 
21
 
22
  ## Laya Vision 201M, same questions
23
 
24
  | Set | Questions | Laya Vision | deVision | Difference |
25
  |---|---:|---:|---:|---|
26
+ | VQAv2 yes/no | 4,887 | 0.717 | 0.756 | +3.9 [+2.4, +5.3] |
27
+ | A-OKVQA | 1,138 | 0.598 | 0.634 | +3.5 [+0.3, +6.6] |
28
+ | ScienceQA with images | 2,097 | 0.824 | 0.821 | -0.3 [-2.2, +1.7] |
29
+ | ScienceQA natural science, needs the picture | 323 | 0.700 | 0.638 | -6.2 [-12.7, +0.0] |
30
 
31
+ On the full POPE random / popular / adversarial sets (3,000 questions each) deVision scores **0.899 / 0.873 / 0.824**, against Laya Vision's published **0.836 / 0.819 / 0.777** (aggregate scores only, not paired).
32
 
33
  ## Temperatures
34
 
35
  | Bucket | Temperature |
36
  |---|---:|
37
+ | Choice, 2 options | 3.5631 |
38
+ | Choice, 3–5 options | 2.1146 |
39
+ | Noul (yes / no) | 1.0895 |
40
+ | Choice, any other count | 2.3642 |
 
evaluation/training.yaml CHANGED
@@ -1,47 +1,35 @@
1
- # Round 15 (r15-vision; owner 2026-10-14: option 1 after exp19, "1"): r14b's mix (r14 + v6 mirror pairs + VSR) with
2
- # the SigLIP tower's top 4 layers and final norm trained at 5e-6, the whole 10,235-step schedule, seed 1 -- exp19's
3
- # configuration exactly, continued from its step-2000 training state (scripts/r15/chain.sh seeds the stage directory;
4
- # the resume check refuses any setting that differs). r14b's frozen stop rules every 2,000 steps; temperatures fitted
5
- # on data/r13b/val.jsonl; full evaluation = r14b's sets; acceptance = r14's rules against v12, written before training
6
- # in docs/experiments/2026-10-14-r15-vision.md.
7
- name: r15-vision
8
- device: mps
 
 
 
 
 
9
  common:
10
  log_every: 100
11
 
12
  stages:
13
- - name: stage2
14
  kind: train
15
- init: runs/v12-ext/stage2
16
- data: data/r14b/train.jsonl
17
- val: data/r13b/val.jsonl
18
- eval: {exist: data/r13b/panel_exist.jsonl, science: data/r13b/panel_science.jsonl, ext: data/ext/dev_ext.jsonl,
19
- bind_gqa: data/r13/gqa/dev_bind_gqa.jsonl, count_narrow: data/v11/dev_count_transfer.jsonl,
20
- count_wide: data/r13b/count_wide.jsonl, px_wide: data/exp14/pixmo_count_wide.jsonl,
21
- px_narrow: data/exp14/pixmo_count_narrow.jsonl, px_exist: data/exp14/pixmo_exist.jsonl,
22
- flip: data/v6/dev_lr_pairs.jsonl, vsr: data/v5/dev_vsr.jsonl}
23
- params: {epochs: 1, lr_new: 2.0e-5, lr_head: 1.0e-5, lr_lora: 5.0e-5, warmup: 300, eval_every: 2000,
24
- save_every: 500, amp: "off", seed: 1, monitor_details: true,
25
- vision_unfreeze_top: 4, lr_vision: 5.0e-6,
26
- start_check: runs/exp16-r14b-s1/stage2/monitor/step0, start_tolerance: 1.0e-5}
27
 
28
  evaluate:
29
- calibration_fit: data/r13b/val.jsonl
30
- history: [data/ext/dev_ext.jsonl, data/r13/gqa/dev_bind_gqa.jsonl, data/r13b/panel_exist.jsonl, data/r13b/panel_science.jsonl,
31
- data/r13b/count_wide.jsonl, data/v11/dev_count_transfer.jsonl, data/exp14/pixmo_count_wide.jsonl,
32
- data/exp14/pixmo_count_narrow.jsonl, data/exp14/pixmo_exist.jsonl,
33
- data/v6/dev_lr_pairs.jsonl, data/v5/dev_vsr.jsonl]
34
  image_identity: data/v5/image_identity.json
35
  controls: true
36
  sets:
37
- exist: {path: data/r13b/panel_exist.jsonl, role: monitoring}
38
- science: {path: data/r13b/panel_science.jsonl, role: monitoring}
39
- ext: {path: data/ext/dev_ext.jsonl, role: monitoring}
40
- bind_gqa: {path: data/r13/gqa/dev_bind_gqa.jsonl, role: monitoring}
41
- count_narrow: {path: data/v11/dev_count_transfer.jsonl, role: monitoring}
42
- count_wide: {path: data/r13b/count_wide.jsonl, role: monitoring}
43
- flip: {path: data/v6/dev_lr_pairs.jsonl, role: monitoring}
44
- vsr: {path: data/v5/dev_vsr.jsonl, role: monitoring}
45
  dev_mix: data/v5/dev_mix.jsonl
46
  test_vsr: data/v5/test_vsr.jsonl
47
  test_v7w: data/v5/test_v7w.jsonl
@@ -59,10 +47,124 @@ evaluate:
59
  bench_lv_aokvqa: data/lv_bench/aokvqa.jsonl
60
  bench_lv_scienceqa: data/lv_bench/scienceqa.jsonl
61
  bench_lv_pope: data/lv_bench/pope.jsonl
62
- test_count_fresh: {path: data/v11/test_count_fresh.jsonl, role: heldout}
63
- test_bind_gqa: {path: data/r13/gqa/test_bind_gqa.jsonl, role: heldout}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
64
  bench_countbench: {path: data/r13/bench/countbench.jsonl, role: heldout}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
65
  bench_whatsup: {path: data/r13/bench/whatsup.jsonl, role: heldout}
66
- commands:
67
- - "uv run python scripts/r13b/judge.py --rules scripts/r14b/rules.json final {eval_dir} runs/r13b-v12-base/stage2-recal || true"
68
- - "uv run python scripts/lv_report.py {eval_dir} --prev runs/v12-ext/eval || true"
 
 
 
 
 
 
1
+ # r19-n2 (from v0.3)
2
+ # Round 19 -- v0.3 trained on data-n2 (docs/experiments/2026-10-21-v04-plan.md; owner 2026-10-21: fill the weak
3
+ # abilities with good training data, no teacher). Starts from v0.3 (runs/v03/model), one pass over
4
+ # data/n2/train_mix.jsonl: data-n1 with VQAv2 / GQA cut to 200,000 each, r17's existence questions, Visual7W telling in
5
+ # full, caption-choice spatial relations from scene graphs, COCO counting 0..10, IconQA / TallyQA / MapQA / CLEVR, with
6
+ # counting options always 0..10, held-out pictures dropped by id and dHash, and choices answerable without the picture
7
+ # dropped (scripts/data/n2/). r16's settings (bf16, top 4 SigLIP layers unfrozen). Monitored every 10,000 steps on
8
+ # the new blocks' dev sets and the ScienceQA test split (dev_sqa). Evaluated on every set of configs/v03-baseline.yaml
9
+ # and configs/v03-n2bench.yaml, so each pairs question by question with runs/v03/eval/.
10
+ # scripts/data/n2/mix.py builds the data
11
+ # UV_NO_SYNC=1 HF_HUB_OFFLINE=1 nohup uv run devision-pipeline configs/r19-n2.yaml > runs/r19-n2.out 2>&1 &
12
+ name: r19-n2
13
+ device: cuda
14
  common:
15
  log_every: 100
16
 
17
  stages:
18
+ - name: train
19
  kind: train
20
+ init: runs/v03/model
21
+ data: data/n2/train_mix.jsonl
22
+ val: data/n1/dev_mix.jsonl
23
+ eval: {sqa: data/n2/dev_sqa.jsonl, v7w: data/n2/dev_v7w.jsonl, spatial: data/n2/dev_spatial.jsonl,
24
+ count: data/n2/dev_count.jsonl, iconqa: data/n2/dev_iconqa.jsonl, tallyqa: data/n2/dev_tallyqa.jsonl,
25
+ sqa_synth: data/n2/dev_sqa_synth.jsonl, clevr: data/n2/dev_clevr.jsonl}
26
+ params: {epochs: 1, lr_new: 2.0e-5, lr_head: 1.0e-5, lr_lora: 5.0e-5, warmup: 300, eval_every: 10000,
27
+ vision_unfreeze_top: 4, lr_vision: 5.0e-6, seed: 0}
 
 
 
 
28
 
29
  evaluate:
 
 
 
 
 
30
  image_identity: data/v5/image_identity.json
31
  controls: true
32
  sets:
 
 
 
 
 
 
 
 
33
  dev_mix: data/v5/dev_mix.jsonl
34
  test_vsr: data/v5/test_vsr.jsonl
35
  test_v7w: data/v5/test_v7w.jsonl
 
47
  bench_lv_aokvqa: data/lv_bench/aokvqa.jsonl
48
  bench_lv_scienceqa: data/lv_bench/scienceqa.jsonl
49
  bench_lv_pope: data/lv_bench/pope.jsonl
50
+ bench_whatsup: {path: data/r13/bench/whatsup.jsonl, role: heldout}
51
+ bench_countbench: {path: data/r13/bench/countbench.jsonl, role: heldout}
52
+ bench_cogent_b: {path: data/r13/bench/cogent_b.jsonl, role: heldout}
53
+ test_count_coco: {path: data/n2/test_count_coco.jsonl, role: heldout}
54
+ bench_mmbench: {path: data/n2/bench/mmbench.jsonl, role: heldout}
55
+ bench_cvbench: {path: data/n2/bench/cvbench.jsonl, role: heldout}
56
+ bench_mme: {path: data/n2/bench/mme.jsonl, role: heldout}
57
+ bench_naturalbench: {path: data/n2/bench/naturalbench.jsonl, role: heldout}
58
+ dev_sqa: data/n2/dev_sqa.jsonl
59
+
60
+ # r20-science (from r19)
61
+ # Round 20 -- a short science-heavy continuation of r19 (docs/experiments/2026-10-21-v04-plan.md, stage 4). r19's
62
+ # ScienceQA dev fell while it trained; the main cause was the data: its held-out rule matched drawn maps by dHash and
63
+ # dropped 2,291 of 4,948 ScienceQA questions (state capitals, colonies, oceans). Fixed in scripts/data/n2/held.py
64
+ # (drawn pictures by identical pixels only); data/n2/science_mix.jsonl (scripts/data/n2/science_mix.py) draws from the
65
+ # corrected mix: all ScienceQA / AI2D / TQA x3, IconQA, the synthetic magnet questions (not the solution-concentration
66
+ # ones), 40,000 replay of the rest. One pass from runs/r19-n2/train, r19's settings; the same evaluation sets.
67
+ # UV_NO_SYNC=1 HF_HUB_OFFLINE=1 nohup uv run devision-pipeline configs/r20-science.yaml > runs/r20-science.out 2>&1 &
68
+ name: r20-science
69
+ device: cuda
70
+ common:
71
+ log_every: 100
72
+
73
+ stages:
74
+ - name: train
75
+ kind: train
76
+ init: runs/r19-n2/train
77
+ data: data/n2/science_mix.jsonl
78
+ val: data/n1/dev_mix.jsonl
79
+ eval: {sqa: data/n2/dev_sqa.jsonl, v7w: data/n2/dev_v7w.jsonl, spatial: data/n2/dev_spatial.jsonl,
80
+ count: data/n2/dev_count.jsonl, iconqa: data/n2/dev_iconqa.jsonl, tallyqa: data/n2/dev_tallyqa.jsonl,
81
+ sqa_synth: data/n2/dev_sqa_synth.jsonl, clevr: data/n2/dev_clevr.jsonl}
82
+ params: {epochs: 1, lr_new: 2.0e-5, lr_head: 1.0e-5, lr_lora: 5.0e-5, warmup: 300, eval_every: 5000,
83
+ vision_unfreeze_top: 4, lr_vision: 5.0e-6, seed: 0}
84
+
85
+ evaluate:
86
+ image_identity: data/v5/image_identity.json
87
+ controls: true
88
+ sets:
89
+ dev_mix: data/v5/dev_mix.jsonl
90
+ test_vsr: data/v5/test_vsr.jsonl
91
+ test_v7w: data/v5/test_v7w.jsonl
92
+ bench_pope: data/v2/bench_pope.jsonl
93
+ test_vqa_yesno: data/v2/test_vqa_yesno.jsonl
94
+ test_vqa_choice: data/v2/test_vqa_choice.jsonl
95
+ test_gqa: data/v2/test_gqa.jsonl
96
+ test_exist: data/v2/test_exist.jsonl
97
+ test_position: data/v2/test_position.jsonl
98
+ test_relation: data/v2/test_relation.jsonl
99
+ test_size: data/v2/test_size.jsonl
100
+ test_position_flip: data/v6/test_position_flip.jsonl
101
+ test_relation_flip: data/v6/test_relation_flip.jsonl
102
+ bench_lv_vqav2_yesno: data/lv_bench/vqav2_yesno.jsonl
103
+ bench_lv_aokvqa: data/lv_bench/aokvqa.jsonl
104
+ bench_lv_scienceqa: data/lv_bench/scienceqa.jsonl
105
+ bench_lv_pope: data/lv_bench/pope.jsonl
106
+ bench_whatsup: {path: data/r13/bench/whatsup.jsonl, role: heldout}
107
  bench_countbench: {path: data/r13/bench/countbench.jsonl, role: heldout}
108
+ bench_cogent_b: {path: data/r13/bench/cogent_b.jsonl, role: heldout}
109
+ test_count_coco: {path: data/n2/test_count_coco.jsonl, role: heldout}
110
+ bench_mmbench: {path: data/n2/bench/mmbench.jsonl, role: heldout}
111
+ bench_cvbench: {path: data/n2/bench/cvbench.jsonl, role: heldout}
112
+ bench_mme: {path: data/n2/bench/mme.jsonl, role: heldout}
113
+ bench_naturalbench: {path: data/n2/bench/naturalbench.jsonl, role: heldout}
114
+ dev_sqa: data/n2/dev_sqa.jsonl
115
+
116
+ # r21-soft (from r20) -- the released weights
117
+ # Round 21 -- r20 with the hard 0 / 1 labels of existence and size questions softened (docs/experiments/
118
+ # 2026-10-21-v04-plan.md, stage 4). r20 with temperatures refitted on data/v5/dev_mix passes the frozen rules 1-3 but
119
+ # not 4 (POPE NLL 0.372 -> 0.454, size 0.350 -> 0.440; runs/v04-interp/a1.0/compare/accept_v04.md). One pass from
120
+ # runs/r20-science/train over data/n2/soft_mix.jsonl (scripts/data/n2/soft_mix.py: 40,000 existence + 4,331 size
121
+ # questions with golds 0.9 / 0.1, 60,000 unchanged replay); --val is data/v5/dev_mix.jsonl (balanced sources), so the
122
+ # final temperatures are fitted there. r20's settings and evaluation sets.
123
+ # UV_NO_SYNC=1 HF_HUB_OFFLINE=1 nohup uv run devision-pipeline configs/r21-soft.yaml > runs/r21-soft.out 2>&1 &
124
+ name: r21-soft
125
+ device: cuda
126
+ common:
127
+ log_every: 100
128
+
129
+ stages:
130
+ - name: train
131
+ kind: train
132
+ init: runs/r20-science/train
133
+ data: data/n2/soft_mix.jsonl
134
+ val: data/v5/dev_mix.jsonl
135
+ eval: {sqa: data/n2/dev_sqa.jsonl, v7w: data/n2/dev_v7w.jsonl, spatial: data/n2/dev_spatial.jsonl,
136
+ count: data/n2/dev_count.jsonl, iconqa: data/n2/dev_iconqa.jsonl, tallyqa: data/n2/dev_tallyqa.jsonl,
137
+ sqa_synth: data/n2/dev_sqa_synth.jsonl, clevr: data/n2/dev_clevr.jsonl}
138
+ params: {epochs: 1, lr_new: 2.0e-5, lr_head: 1.0e-5, lr_lora: 5.0e-5, warmup: 300, eval_every: 5000,
139
+ vision_unfreeze_top: 4, lr_vision: 5.0e-6, seed: 0}
140
+
141
+ evaluate:
142
+ image_identity: data/v5/image_identity.json
143
+ controls: true
144
+ sets:
145
+ dev_mix: data/v5/dev_mix.jsonl
146
+ test_vsr: data/v5/test_vsr.jsonl
147
+ test_v7w: data/v5/test_v7w.jsonl
148
+ bench_pope: data/v2/bench_pope.jsonl
149
+ test_vqa_yesno: data/v2/test_vqa_yesno.jsonl
150
+ test_vqa_choice: data/v2/test_vqa_choice.jsonl
151
+ test_gqa: data/v2/test_gqa.jsonl
152
+ test_exist: data/v2/test_exist.jsonl
153
+ test_position: data/v2/test_position.jsonl
154
+ test_relation: data/v2/test_relation.jsonl
155
+ test_size: data/v2/test_size.jsonl
156
+ test_position_flip: data/v6/test_position_flip.jsonl
157
+ test_relation_flip: data/v6/test_relation_flip.jsonl
158
+ bench_lv_vqav2_yesno: data/lv_bench/vqav2_yesno.jsonl
159
+ bench_lv_aokvqa: data/lv_bench/aokvqa.jsonl
160
+ bench_lv_scienceqa: data/lv_bench/scienceqa.jsonl
161
+ bench_lv_pope: data/lv_bench/pope.jsonl
162
  bench_whatsup: {path: data/r13/bench/whatsup.jsonl, role: heldout}
163
+ bench_countbench: {path: data/r13/bench/countbench.jsonl, role: heldout}
164
+ bench_cogent_b: {path: data/r13/bench/cogent_b.jsonl, role: heldout}
165
+ test_count_coco: {path: data/n2/test_count_coco.jsonl, role: heldout}
166
+ bench_mmbench: {path: data/n2/bench/mmbench.jsonl, role: heldout}
167
+ bench_cvbench: {path: data/n2/bench/cvbench.jsonl, role: heldout}
168
+ bench_mme: {path: data/n2/bench/mme.jsonl, role: heldout}
169
+ bench_naturalbench: {path: data/n2/bench/naturalbench.jsonl, role: heldout}
170
+ dev_sqa: data/n2/dev_sqa.jsonl
model.safetensors CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:110fea95889947c373258c88a396ad3eec574971815ee437b9c7cc3df8a5d2d5
3
  size 2073754784
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:fda0f969a79cf77e6bb9288ddd38e4bb377f3f677018e67275ef927bf76b0397
3
  size 2073754784
provenance.json CHANGED
@@ -1,43 +1,40 @@
1
  {
2
- "version": "v0.3",
3
- "git_tag": "model-v0.3",
4
- "built_from_commit": "85956234d5e6638618b1d5c8c0907709575df3d5",
5
- "round": "r15-vision",
6
- "stage": "stage2",
7
- "training_commit": "aea46fc3c4bb753c13cde0a81e8261815399d9e9+dirty",
8
- "training_started": "2026-10-14 12:57:49",
9
  "stages": [
10
  {
11
- "name": "stage2",
12
- "out": "runs/r15-vision/stage2",
13
- "init": "runs/v12-ext/stage2"
14
  }
15
  ],
16
  "training_config": {
17
- "name": "r15-vision",
18
- "device": "mps",
19
  "common": {
20
  "log_every": 100
21
  },
22
  "stages": [
23
  {
24
- "name": "stage2",
25
  "kind": "train",
26
- "init": "runs/v12-ext/stage2",
27
- "data": "data/r14b/train.jsonl",
28
- "val": "data/r13b/val.jsonl",
29
  "eval": {
30
- "exist": "data/r13b/panel_exist.jsonl",
31
- "science": "data/r13b/panel_science.jsonl",
32
- "ext": "data/ext/dev_ext.jsonl",
33
- "bind_gqa": "data/r13/gqa/dev_bind_gqa.jsonl",
34
- "count_narrow": "data/v11/dev_count_transfer.jsonl",
35
- "count_wide": "data/r13b/count_wide.jsonl",
36
- "px_wide": "data/exp14/pixmo_count_wide.jsonl",
37
- "px_narrow": "data/exp14/pixmo_count_narrow.jsonl",
38
- "px_exist": "data/exp14/pixmo_exist.jsonl",
39
- "flip": "data/v6/dev_lr_pairs.jsonl",
40
- "vsr": "data/v5/dev_vsr.jsonl"
41
  },
42
  "params": {
43
  "epochs": 1,
@@ -45,68 +42,17 @@
45
  "lr_head": 1e-05,
46
  "lr_lora": 5e-05,
47
  "warmup": 300,
48
- "eval_every": 2000,
49
- "save_every": 500,
50
- "amp": "off",
51
- "seed": 1,
52
- "monitor_details": true,
53
  "vision_unfreeze_top": 4,
54
  "lr_vision": 5e-06,
55
- "start_check": "runs/exp16-r14b-s1/stage2/monitor/step0",
56
- "start_tolerance": 1e-05
57
  }
58
  }
59
  ],
60
  "evaluate": {
61
- "calibration_fit": "data/r13b/val.jsonl",
62
- "history": [
63
- "data/ext/dev_ext.jsonl",
64
- "data/r13/gqa/dev_bind_gqa.jsonl",
65
- "data/r13b/panel_exist.jsonl",
66
- "data/r13b/panel_science.jsonl",
67
- "data/r13b/count_wide.jsonl",
68
- "data/v11/dev_count_transfer.jsonl",
69
- "data/exp14/pixmo_count_wide.jsonl",
70
- "data/exp14/pixmo_count_narrow.jsonl",
71
- "data/exp14/pixmo_exist.jsonl",
72
- "data/v6/dev_lr_pairs.jsonl",
73
- "data/v5/dev_vsr.jsonl"
74
- ],
75
  "image_identity": "data/v5/image_identity.json",
76
  "controls": true,
77
  "sets": {
78
- "exist": {
79
- "path": "data/r13b/panel_exist.jsonl",
80
- "role": "monitoring"
81
- },
82
- "science": {
83
- "path": "data/r13b/panel_science.jsonl",
84
- "role": "monitoring"
85
- },
86
- "ext": {
87
- "path": "data/ext/dev_ext.jsonl",
88
- "role": "monitoring"
89
- },
90
- "bind_gqa": {
91
- "path": "data/r13/gqa/dev_bind_gqa.jsonl",
92
- "role": "monitoring"
93
- },
94
- "count_narrow": {
95
- "path": "data/v11/dev_count_transfer.jsonl",
96
- "role": "monitoring"
97
- },
98
- "count_wide": {
99
- "path": "data/r13b/count_wide.jsonl",
100
- "role": "monitoring"
101
- },
102
- "flip": {
103
- "path": "data/v6/dev_lr_pairs.jsonl",
104
- "role": "monitoring"
105
- },
106
- "vsr": {
107
- "path": "data/v5/dev_vsr.jsonl",
108
- "role": "monitoring"
109
- },
110
  "dev_mix": "data/v5/dev_mix.jsonl",
111
  "test_vsr": "data/v5/test_vsr.jsonl",
112
  "test_v7w": "data/v5/test_v7w.jsonl",
@@ -124,28 +70,41 @@
124
  "bench_lv_aokvqa": "data/lv_bench/aokvqa.jsonl",
125
  "bench_lv_scienceqa": "data/lv_bench/scienceqa.jsonl",
126
  "bench_lv_pope": "data/lv_bench/pope.jsonl",
127
- "test_count_fresh": {
128
- "path": "data/v11/test_count_fresh.jsonl",
129
- "role": "heldout"
130
- },
131
- "test_bind_gqa": {
132
- "path": "data/r13/gqa/test_bind_gqa.jsonl",
133
  "role": "heldout"
134
  },
135
  "bench_countbench": {
136
  "path": "data/r13/bench/countbench.jsonl",
137
  "role": "heldout"
138
  },
139
- "bench_whatsup": {
140
- "path": "data/r13/bench/whatsup.jsonl",
141
  "role": "heldout"
142
- }
143
- },
144
- "commands": [
145
- "uv run python scripts/r13b/judge.py --rules scripts/r14b/rules.json final {eval_dir} runs/r13b-v12-base/stage2-recal || true",
146
- "uv run python scripts/lv_report.py {eval_dir} --prev runs/v12-ext/eval || true"
147
- ]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
148
  }
149
  },
150
- "source_checkpoint_sha256": "110fea95889947c373258c88a396ad3eec574971815ee437b9c7cc3df8a5d2d5"
151
  }
 
1
  {
2
+ "version": "v0.4",
3
+ "git_tag": "model-v0.4",
4
+ "built_from_commit": "a6b4e8af3290255ce861e63397a0ec399b9f49c8",
5
+ "round": "r21-soft",
6
+ "stage": "train",
7
+ "training_commit": "d228b648f8a36628e46fd0e1e212f84af17522e2+dirty",
8
+ "training_started": "2026-10-22 03:03:02",
9
  "stages": [
10
  {
11
+ "name": "train",
12
+ "out": "runs/r21-soft/train",
13
+ "init": "runs/r20-science/train"
14
  }
15
  ],
16
  "training_config": {
17
+ "name": "r21-soft",
18
+ "device": "cuda",
19
  "common": {
20
  "log_every": 100
21
  },
22
  "stages": [
23
  {
24
+ "name": "train",
25
  "kind": "train",
26
+ "init": "runs/r20-science/train",
27
+ "data": "data/n2/soft_mix.jsonl",
28
+ "val": "data/v5/dev_mix.jsonl",
29
  "eval": {
30
+ "sqa": "data/n2/dev_sqa.jsonl",
31
+ "v7w": "data/n2/dev_v7w.jsonl",
32
+ "spatial": "data/n2/dev_spatial.jsonl",
33
+ "count": "data/n2/dev_count.jsonl",
34
+ "iconqa": "data/n2/dev_iconqa.jsonl",
35
+ "tallyqa": "data/n2/dev_tallyqa.jsonl",
36
+ "sqa_synth": "data/n2/dev_sqa_synth.jsonl",
37
+ "clevr": "data/n2/dev_clevr.jsonl"
 
 
 
38
  },
39
  "params": {
40
  "epochs": 1,
 
42
  "lr_head": 1e-05,
43
  "lr_lora": 5e-05,
44
  "warmup": 300,
45
+ "eval_every": 5000,
 
 
 
 
46
  "vision_unfreeze_top": 4,
47
  "lr_vision": 5e-06,
48
+ "seed": 0
 
49
  }
50
  }
51
  ],
52
  "evaluate": {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
53
  "image_identity": "data/v5/image_identity.json",
54
  "controls": true,
55
  "sets": {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
56
  "dev_mix": "data/v5/dev_mix.jsonl",
57
  "test_vsr": "data/v5/test_vsr.jsonl",
58
  "test_v7w": "data/v5/test_v7w.jsonl",
 
70
  "bench_lv_aokvqa": "data/lv_bench/aokvqa.jsonl",
71
  "bench_lv_scienceqa": "data/lv_bench/scienceqa.jsonl",
72
  "bench_lv_pope": "data/lv_bench/pope.jsonl",
73
+ "bench_whatsup": {
74
+ "path": "data/r13/bench/whatsup.jsonl",
 
 
 
 
75
  "role": "heldout"
76
  },
77
  "bench_countbench": {
78
  "path": "data/r13/bench/countbench.jsonl",
79
  "role": "heldout"
80
  },
81
+ "bench_cogent_b": {
82
+ "path": "data/r13/bench/cogent_b.jsonl",
83
  "role": "heldout"
84
+ },
85
+ "test_count_coco": {
86
+ "path": "data/n2/test_count_coco.jsonl",
87
+ "role": "heldout"
88
+ },
89
+ "bench_mmbench": {
90
+ "path": "data/n2/bench/mmbench.jsonl",
91
+ "role": "heldout"
92
+ },
93
+ "bench_cvbench": {
94
+ "path": "data/n2/bench/cvbench.jsonl",
95
+ "role": "heldout"
96
+ },
97
+ "bench_mme": {
98
+ "path": "data/n2/bench/mme.jsonl",
99
+ "role": "heldout"
100
+ },
101
+ "bench_naturalbench": {
102
+ "path": "data/n2/bench/naturalbench.jsonl",
103
+ "role": "heldout"
104
+ },
105
+ "dev_sqa": "data/n2/dev_sqa.jsonl"
106
+ }
107
  }
108
  },
109
+ "source_checkpoint_sha256": "fda0f969a79cf77e6bb9288ddd38e4bb377f3f677018e67275ef927bf76b0397"
110
  }
tokenizer/tokenizer_config.json CHANGED
@@ -3,7 +3,7 @@
3
  "clean_up_tokenization_spaces": true,
4
  "cls_token": "[CLS]",
5
  "is_local": true,
6
- "local_files_only": false,
7
  "mask_token": "[MASK]",
8
  "model_input_names": [
9
  "input_ids",
 
3
  "clean_up_tokenization_spaces": true,
4
  "cls_token": "[CLS]",
5
  "is_local": true,
6
+ "local_files_only": true,
7
  "mask_token": "[MASK]",
8
  "model_input_names": [
9
  "input_ids",