wahnfried commited on
Commit
e489a10
·
verified ·
1 Parent(s): d38f332

Release Alberich-mini-v1 adapter and full benchmark results

Browse files
README.md CHANGED
@@ -60,7 +60,7 @@ Download this repository into a local directory and run from that directory. Ins
60
  ```python
61
  from inference import MultiDecider
62
 
63
- decider = MultiDecider() # adapter in this directory; downloads pinned base separately
64
  answers = decider.decide(
65
  context="Anna hat drei rote Ordner. Ben hat zwei blaue Ordner.",
66
  questions=[
@@ -109,21 +109,28 @@ BF16 backbone computation, gradient checkpointing, no LoRA dropout. Adapter tens
109
 
110
  The main stage contains 75114 English and 24886 German examples, including 21494 image examples and 2000 synthetic examples. Tasks cover natural-language inference, coreference, paraphrase, intent, sentiment, commonsense, numeric/temporal/rule reasoning, diagrams, visual relations and adapted multiple-choice OCR/document questions. See [training_summary.json](training_summary.json) for exact task counts and corpus hashes, and [DATA_SOURCES.md](DATA_SOURCES.md) for source and licensing notes.
111
 
112
- ## Evaluation
 
 
 
 
 
 
113
 
114
  These are **local subset results**, not official benchmark leaderboard scores. The fixed comparison has 1000 questions from 27 task families, with 37 per family and 38 for AI2D: 703 text and 297 image questions. It was sampled from held-out pools used during development, after training. It is not a newly collected blind evaluation. The earlier 200 pilot comparison cases were excluded. No further model tuning or calibration was performed on this 1000-question comparison.
115
 
116
  | System, local implementation | Correct | Accuracy | Mean ms/question | Peak allocated GPU GiB |
117
  |---|---:|---:|---:|---:|
118
- | **This adapter + Qwen3.5-2B** | **865/1000** | **86.5%** | 88 | 4.32 |
 
119
  | Qwen3.5-2B base, same readout without adapter | 700/1000 | 70.0% | 65 | 4.26 |
120
  | BARD-VL-4B, local OpenJev port | 809/1000 | 80.9% | 86 | 8.43 |
121
  | DiffusionVL-3B, local OpenJev port | 737/1000 | 73.7% | 86 | 7.24 |
122
  | Qwen3.5-4B, LitJev | 771/1000 | 77.1% | 164 | 8.78 |
123
 
124
- This adapter scored **587/703 (83.5%) on text**, **278/297 (93.6%) on images**, and **685/815 (84.0%) after excluding synthetic tasks**. Full aggregate per-task results are in [eval_results.json](eval_results.json).
125
 
126
- The unchanged Qwen3.5-2B base scored **700/1000 (70.0%)** using the same prompt, readout, question order and image settings, with LoRA disabled. The adapter improves overall accuracy by **+16.5 percentage points**. Base-only scores: **459/703 (65.3%) text** and **241/297 (81.1%) images**. On paired questions, the adapter fixes 224 base errors and introduces 59 errors on cases the base answered correctly.
127
 
128
  The base-only speed measurement was repeated as a standalone run with no concurrent model inference, using the same 1000 questions and timing boundaries. All 1000 selected answers matched the earlier base evaluation. Peak allocated memory is per benchmark process, not total GPU usage.
129
 
@@ -131,7 +138,20 @@ All systems received the same questions, options and option order. Images were c
131
 
132
  The OCR subsets are local multiple-choice adaptations with distractors, not open-ended DocVQA/TextVQA evaluations. Near-ceiling scores should not be read as general OCR accuracy. Dataset SHA256: `88cc14e7201b39b16545cd1e7578358a1747d528138d458c4351b2d27ed4e974`.
133
 
134
- ## Limitations and intended use
 
 
 
 
 
 
 
 
 
 
 
 
 
135
 
136
  This is a decision-support prototype for reviewing text and images with explicit answer choices. A human should inspect the source material before acting on consequential findings. It has not been validated to establish criminal intent, legal suspicion or evidentiary conclusions.
137
 
@@ -146,8 +166,10 @@ English and German were directly trained and evaluated. Other languages inherite
146
 
147
  The weights are unchanged from the evaluated short-repair checkpoint. The adapter configuration replaces the original local base path with the public base ID and pinned revision. `release_manifest.json` records every distributed file's size and hash; `validation.json` records local loading and inference checks.
148
 
149
- ## Full public benchmark splits (zero-shot product readout)
150
-
 
 
151
  Complete splits, original option order, 0-shot, product chat prompt, direct A-J logits in FP32, BF16 backbone, no generation. MMStar RGB thumbnail <=768x768 then image budget 262144; full prompt <=1536 tokens, no truncation. Failures counted incorrect. Not standard MMLU 5-shot or a leaderboard submission.
152
 
153
  | Dataset | N per model | Base | Adapter | Delta pp | Errors base / adapter |
 
60
  ```python
61
  from inference import MultiDecider
62
 
63
+ decider = MultiDecider() # downloads pinned base, then merges local adapter in RAM
64
  answers = decider.decide(
65
  context="Anna hat drei rote Ordner. Ben hat zwei blaue Ordner.",
66
  questions=[
 
109
 
110
  The main stage contains 75114 English and 24886 German examples, including 21494 image examples and 2000 synthetic examples. Tasks cover natural-language inference, coreference, paraphrase, intent, sentiment, commonsense, numeric/temporal/rule reasoning, diagrams, visual relations and adapted multiple-choice OCR/document questions. See [training_summary.json](training_summary.json) for exact task counts and corpus hashes, and [DATA_SOURCES.md](DATA_SOURCES.md) for source and licensing notes.
111
 
112
+ ### In-memory merging (default)
113
+
114
+ The inference helper now defaults to `merge_adapter=True`: it loads the separate base and adapter, then calls PEFT `merge_and_unload(safe_merge=True)`. This removes the separate LoRA operations during inference. No base or adapter files are modified, and this repository still distributes only the adapter.
115
+
116
+ Use `MultiDecider(merge_adapter=False)` to reproduce the historical unmerged evaluation mode. Merging into BF16 weights is not numerically identical: in the 1000-question paired test, two answers changed, both from incorrect to correct. Individual option probabilities changed by up to 0.311; probability thresholds may therefore behave differently. This small accuracy increase does not establish a general quality improvement.
117
+
118
+ ## Evaluation
119
 
120
  These are **local subset results**, not official benchmark leaderboard scores. The fixed comparison has 1000 questions from 27 task families, with 37 per family and 38 for AI2D: 703 text and 297 image questions. It was sampled from held-out pools used during development, after training. It is not a newly collected blind evaluation. The earlier 200 pilot comparison cases were excluded. No further model tuning or calibration was performed on this 1000-question comparison.
121
 
122
  | System, local implementation | Correct | Accuracy | Mean ms/question | Peak allocated GPU GiB |
123
  |---|---:|---:|---:|---:|
124
+ | **This adapter + Qwen3.5-2B, merged in RAM (default)** | **867/1000** | **86.7%** | **63** | See paired test below |
125
+ | This adapter + Qwen3.5-2B, unmerged (original run) | 865/1000 | 86.5% | 88 | 4.32 |
126
  | Qwen3.5-2B base, same readout without adapter | 700/1000 | 70.0% | 65 | 4.26 |
127
  | BARD-VL-4B, local OpenJev port | 809/1000 | 80.9% | 86 | 8.43 |
128
  | DiffusionVL-3B, local OpenJev port | 737/1000 | 73.7% | 86 | 7.24 |
129
  | Qwen3.5-4B, LitJev | 771/1000 | 77.1% | 164 | 8.78 |
130
 
131
+ The original unmerged adapter scored **587/703 (83.5%) on text**, **278/297 (93.6%) on images**, and **685/815 (84.0%) after excluding synthetic tasks**. The merged variant scored **589/703 (83.8%) on text**, **278/297 (93.6%) on images**, and **687/815 (84.3%) after excluding synthetic tasks**. Original aggregate per-task results are in [eval_results.json](eval_results.json); the merge comparison is in [merged_adapter_results.json](merged_adapter_results.json).
132
 
133
+ The unchanged Qwen3.5-2B base scored **700/1000 (70.0%)** using the same prompt, readout, question order and image settings, with LoRA disabled. The original unmerged adapter improves overall accuracy by **+16.5 percentage points**; the merged default by **+16.7 points**. Base-only scores: **459/703 (65.3%) text** and **241/297 (81.1%) images**. On paired questions, the original unmerged adapter fixes 224 base errors and introduces 59 errors on cases the base answered correctly.
134
 
135
  The base-only speed measurement was repeated as a standalone run with no concurrent model inference, using the same 1000 questions and timing boundaries. All 1000 selected answers matched the earlier base evaluation. Peak allocated memory is per benchmark process, not total GPU usage.
136
 
 
138
 
139
  The OCR subsets are local multiple-choice adaptations with distractors, not open-ended DocVQA/TextVQA evaluations. Near-ceiling scores should not be read as general OCR accuracy. Dataset SHA256: `88cc14e7201b39b16545cd1e7578358a1747d528138d458c4351b2d27ed4e974`.
140
 
141
+ ### Paired merge speed test
142
+
143
+ A fresh sequential comparison in the same process measured **85.9 ms/question unmerged versus 63.5 ms merged**, a **26.1% latency reduction**, on the same 1000 questions. Accuracy was 865 versus 867 correct; 998 answers were identical. Merging took 0.22 seconds, excluding model loading. Peak allocated memory over the benchmark and the additional ten-question tests was 4.56 GiB unmerged and 4.50 GiB merged; these peaks have a different scope from the original single-question table.
144
+
145
+ | Input | Questions per request | Unmerged median ms | Merged median ms |
146
+ |---|---:|---:|---:|
147
+ | Text | 1 | 57.7 | 49.1 |
148
+ | Text | 10 | 141.7 | 107.1 |
149
+ | Image | 1 | 112.0 | 98.1 |
150
+ | Image | 10 | 256.7 | 235.4 |
151
+
152
+ These latency examples use one fixed text context and one fixed image with distinct questions, three warmup requests and 20 measured requests per setting. They are not a representative multiquestion accuracy benchmark. All 22 selected answers matched between modes. Default image budget: 262144 pixels; the 1000-question comparison uses its original 1048576-pixel budget after a 768-pixel thumbnail. Timings include preprocessing and inference, not image-file reading or model loading. Ten questions take roughly 2.2–2.4 times the latency of one in these merged examples; they share a prefix pass and use one batched suffix pass.
153
+
154
+ ## Limitations and intended use
155
 
156
  This is a decision-support prototype for reviewing text and images with explicit answer choices. A human should inspect the source material before acting on consequential findings. It has not been validated to establish criminal intent, legal suspicion or evidentiary conclusions.
157
 
 
166
 
167
  The weights are unchanged from the evaluated short-repair checkpoint. The adapter configuration replaces the original local base path with the public base ID and pinned revision. `release_manifest.json` records every distributed file's size and hash; `validation.json` records local loading and inference checks.
168
 
169
+ ## Full public benchmark splits (zero-shot product readout)
170
+
171
+ These results and their domain breakdowns were measured with the **unmerged adapter** (`merge_adapter=False`). The full MMStar/MMLU suites have not been rerun with the merged default; the paired merge validation above covers the separate 1000-question comparison.
172
+
173
  Complete splits, original option order, 0-shot, product chat prompt, direct A-J logits in FP32, BF16 backbone, no generation. MMStar RGB thumbnail <=768x768 then image budget 262144; full prompt <=1536 tokens, no truncation. Failures counted incorrect. Not standard MMLU 5-shot or a leaderboard submission.
174
 
175
  | Dataset | N per model | Base | Adapter | Delta pp | Errors base / adapter |
inference.py CHANGED
@@ -33,7 +33,7 @@ def clone_cache(cache, count):
33
  return result
34
 
35
  class MultiDecider:
36
- def __init__(self, adapter=True, dtype=torch.bfloat16, adapter_path=None, model_path=None, local_files_only=False):
37
  torch.set_num_threads(4)
38
  if not torch.cuda.is_available():
39
  raise RuntimeError('This inference implementation requires a CUDA GPU')
@@ -44,7 +44,13 @@ class MultiDecider:
44
  base = Qwen3_5ForConditionalGeneration.from_pretrained(path, local_files_only=local_files_only, revision=revision,
45
  dtype=dtype, attn_implementation='sdpa').cuda().eval()
46
  self.model = PeftModel.from_pretrained(base, adapter_path or Path(__file__).resolve().parent).eval() if adapter else base
47
- self.base = base
 
 
 
 
 
 
48
  ids = [self.processor.tokenizer.encode(c, add_special_tokens=False) for c in 'ABCDEFGHIJ']
49
  assert all(len(x) == 1 for x in ids)
50
  self.letters = torch.tensor([x[0] for x in ids], device='cuda')
 
33
  return result
34
 
35
  class MultiDecider:
36
+ def __init__(self, adapter=True, dtype=torch.bfloat16, adapter_path=None, model_path=None, local_files_only=False, merge_adapter=True):
37
  torch.set_num_threads(4)
38
  if not torch.cuda.is_available():
39
  raise RuntimeError('This inference implementation requires a CUDA GPU')
 
44
  base = Qwen3_5ForConditionalGeneration.from_pretrained(path, local_files_only=local_files_only, revision=revision,
45
  dtype=dtype, attn_implementation='sdpa').cuda().eval()
46
  self.model = PeftModel.from_pretrained(base, adapter_path or Path(__file__).resolve().parent).eval() if adapter else base
47
+ self.base = base
48
+ # Merge only the in-memory model. Adapter/base files are never modified.
49
+ # BF16 rounding can change probabilities; disable for historical scores.
50
+ self.adapter_merged = bool(adapter and merge_adapter)
51
+ if self.adapter_merged:
52
+ self.base = self.model.merge_and_unload(safe_merge=True).eval()
53
+ self.model = self.base
54
  ids = [self.processor.tokenizer.encode(c, add_special_tokens=False) for c in 'ABCDEFGHIJ']
55
  assert all(len(x) == 1 for x in ids)
56
  self.letters = torch.tensor([x[0] for x in ids], device='cuda')
merged_adapter_results.json ADDED
@@ -0,0 +1,388 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "dataset_sha256": "88cc14e7201b39b16545cd1e7578358a1747d528138d458c4351b2d27ed4e974",
3
+ "adapter_sha256": "dc9dbc8cd11c65e5d8dcff8df7ceeb39d8f73fe454e7fa51b5c155790c506bdd",
4
+ "protocol": "Same loaded BF16 base, active FP32 LoRA then safe merge_and_unload into BF16 weights. No weights saved. 1000 fixed questions, same option order, 768px thumbnail, max_image_pixels=1048576. Timed calls include preprocessing; image loading excluded. Separate 1/10-question fixtures use default 262144 image budget, 3 warmups and 20 measured calls. Multiquestion fixtures measure latency and parity, not benchmark accuracy.",
5
+ "modes": {
6
+ "active": {
7
+ "correct": 865,
8
+ "mean_ms": 85.93854070002271,
9
+ "peak_gib": 4.557392120361328,
10
+ "fixtures": {
11
+ "text-1": {
12
+ "mean_ms": 59.040699998877244,
13
+ "median_ms": 57.732200002647005,
14
+ "answers": [
15
+ {
16
+ "choice": 1,
17
+ "probabilities": [
18
+ 0.00025641079992055893,
19
+ 0.9991825222969055,
20
+ 0.0005610074149444699
21
+ ]
22
+ }
23
+ ]
24
+ },
25
+ "text-10": {
26
+ "mean_ms": 144.78395000114688,
27
+ "median_ms": 141.6638500013505,
28
+ "answers": [
29
+ {
30
+ "choice": 1,
31
+ "probabilities": [
32
+ 0.00025614723563194275,
33
+ 0.9991936087608337,
34
+ 0.0005502948770299554
35
+ ]
36
+ },
37
+ {
38
+ "choice": 1,
39
+ "probabilities": [
40
+ 0.00039496851968578994,
41
+ 0.9996050000190735
42
+ ]
43
+ },
44
+ {
45
+ "choice": 1,
46
+ "probabilities": [
47
+ 0.001627324498258531,
48
+ 0.9983727335929871
49
+ ]
50
+ },
51
+ {
52
+ "choice": 0,
53
+ "probabilities": [
54
+ 0.9996798038482666,
55
+ 0.0003202491207048297
56
+ ]
57
+ },
58
+ {
59
+ "choice": 0,
60
+ "probabilities": [
61
+ 0.9997703433036804,
62
+ 0.00022963015362620354
63
+ ]
64
+ },
65
+ {
66
+ "choice": 1,
67
+ "probabilities": [
68
+ 0.00017448891594540328,
69
+ 0.9998255372047424
70
+ ]
71
+ },
72
+ {
73
+ "choice": 0,
74
+ "probabilities": [
75
+ 0.9996844530105591,
76
+ 0.00031555391615256667
77
+ ]
78
+ },
79
+ {
80
+ "choice": 0,
81
+ "probabilities": [
82
+ 0.9997870326042175,
83
+ 0.00021302947425283492
84
+ ]
85
+ },
86
+ {
87
+ "choice": 0,
88
+ "probabilities": [
89
+ 0.9998362064361572,
90
+ 0.00016377581050619483
91
+ ]
92
+ },
93
+ {
94
+ "choice": 1,
95
+ "probabilities": [
96
+ 0.0001576126232976094,
97
+ 0.9998424053192139
98
+ ]
99
+ }
100
+ ]
101
+ },
102
+ "image-1": {
103
+ "mean_ms": 114.17969499889296,
104
+ "median_ms": 112.01630000141449,
105
+ "answers": [
106
+ {
107
+ "choice": 0,
108
+ "probabilities": [
109
+ 0.9978511333465576,
110
+ 0.0021488636266440153
111
+ ]
112
+ }
113
+ ]
114
+ },
115
+ "image-10": {
116
+ "mean_ms": 259.21306499876664,
117
+ "median_ms": 256.6619999925024,
118
+ "answers": [
119
+ {
120
+ "choice": 0,
121
+ "probabilities": [
122
+ 0.9977619647979736,
123
+ 0.002238077810034156
124
+ ]
125
+ },
126
+ {
127
+ "choice": 1,
128
+ "probabilities": [
129
+ 0.0005537447286769748,
130
+ 0.9994462132453918
131
+ ]
132
+ },
133
+ {
134
+ "choice": 1,
135
+ "probabilities": [
136
+ 0.02532758191227913,
137
+ 0.9746724367141724
138
+ ]
139
+ },
140
+ {
141
+ "choice": 1,
142
+ "probabilities": [
143
+ 0.016182688996195793,
144
+ 0.9838173389434814
145
+ ]
146
+ },
147
+ {
148
+ "choice": 1,
149
+ "probabilities": [
150
+ 0.0012587311211973429,
151
+ 0.9987413287162781
152
+ ]
153
+ },
154
+ {
155
+ "choice": 1,
156
+ "probabilities": [
157
+ 0.018032928928732872,
158
+ 0.9819670915603638
159
+ ]
160
+ },
161
+ {
162
+ "choice": 1,
163
+ "probabilities": [
164
+ 0.0004362701438367367,
165
+ 0.9995637536048889
166
+ ]
167
+ },
168
+ {
169
+ "choice": 0,
170
+ "probabilities": [
171
+ 0.9969595670700073,
172
+ 0.003040406620129943
173
+ ]
174
+ },
175
+ {
176
+ "choice": 1,
177
+ "probabilities": [
178
+ 0.001857470953837037,
179
+ 0.9981424808502197
180
+ ]
181
+ },
182
+ {
183
+ "choice": 1,
184
+ "probabilities": [
185
+ 0.0006009377539157867,
186
+ 0.9993990659713745
187
+ ]
188
+ }
189
+ ]
190
+ }
191
+ }
192
+ },
193
+ "merged": {
194
+ "correct": 867,
195
+ "mean_ms": 63.48714179956005,
196
+ "peak_gib": 4.495811462402344,
197
+ "fixtures": {
198
+ "text-1": {
199
+ "mean_ms": 52.594800000224495,
200
+ "median_ms": 49.0979000023799,
201
+ "answers": [
202
+ {
203
+ "choice": 1,
204
+ "probabilities": [
205
+ 0.0002519080589991063,
206
+ 0.9992098808288574,
207
+ 0.0005381316295824945
208
+ ]
209
+ }
210
+ ]
211
+ },
212
+ "text-10": {
213
+ "mean_ms": 109.39867499910179,
214
+ "median_ms": 107.06689999642549,
215
+ "answers": [
216
+ {
217
+ "choice": 1,
218
+ "probabilities": [
219
+ 0.00026706536300480366,
220
+ 0.9991580247879028,
221
+ 0.0005748923285864294
222
+ ]
223
+ },
224
+ {
225
+ "choice": 1,
226
+ "probabilities": [
227
+ 0.00041133916238322854,
228
+ 0.999588668346405
229
+ ]
230
+ },
231
+ {
232
+ "choice": 1,
233
+ "probabilities": [
234
+ 0.0016603628173470497,
235
+ 0.9983396530151367
236
+ ]
237
+ },
238
+ {
239
+ "choice": 0,
240
+ "probabilities": [
241
+ 0.9996787309646606,
242
+ 0.0003212429292034358
243
+ ]
244
+ },
245
+ {
246
+ "choice": 0,
247
+ "probabilities": [
248
+ 0.9997716546058655,
249
+ 0.00022835074923932552
250
+ ]
251
+ },
252
+ {
253
+ "choice": 1,
254
+ "probabilities": [
255
+ 0.00017402767844032496,
256
+ 0.9998260140419006
257
+ ]
258
+ },
259
+ {
260
+ "choice": 0,
261
+ "probabilities": [
262
+ 0.9996775388717651,
263
+ 0.0003225244290661067
264
+ ]
265
+ },
266
+ {
267
+ "choice": 0,
268
+ "probabilities": [
269
+ 0.9997808337211609,
270
+ 0.00021916748664807528
271
+ ]
272
+ },
273
+ {
274
+ "choice": 0,
275
+ "probabilities": [
276
+ 0.9998308420181274,
277
+ 0.00016914297884795815
278
+ ]
279
+ },
280
+ {
281
+ "choice": 1,
282
+ "probabilities": [
283
+ 0.00016031514678616077,
284
+ 0.9998396635055542
285
+ ]
286
+ }
287
+ ]
288
+ },
289
+ "image-1": {
290
+ "mean_ms": 99.02526999794645,
291
+ "median_ms": 98.12989999045385,
292
+ "answers": [
293
+ {
294
+ "choice": 0,
295
+ "probabilities": [
296
+ 0.9978779554367065,
297
+ 0.0021220268681645393
298
+ ]
299
+ }
300
+ ]
301
+ },
302
+ "image-10": {
303
+ "mean_ms": 236.76687000115635,
304
+ "median_ms": 235.40734999551205,
305
+ "answers": [
306
+ {
307
+ "choice": 0,
308
+ "probabilities": [
309
+ 0.9979866743087769,
310
+ 0.002013334073126316
311
+ ]
312
+ },
313
+ {
314
+ "choice": 1,
315
+ "probabilities": [
316
+ 0.0005104709998704493,
317
+ 0.9994895458221436
318
+ ]
319
+ },
320
+ {
321
+ "choice": 1,
322
+ "probabilities": [
323
+ 0.029700670391321182,
324
+ 0.9702993035316467
325
+ ]
326
+ },
327
+ {
328
+ "choice": 1,
329
+ "probabilities": [
330
+ 0.01697063446044922,
331
+ 0.983029305934906
332
+ ]
333
+ },
334
+ {
335
+ "choice": 1,
336
+ "probabilities": [
337
+ 0.001263170037418604,
338
+ 0.9987367987632751
339
+ ]
340
+ },
341
+ {
342
+ "choice": 1,
343
+ "probabilities": [
344
+ 0.018061287701129913,
345
+ 0.9819387197494507
346
+ ]
347
+ },
348
+ {
349
+ "choice": 1,
350
+ "probabilities": [
351
+ 0.0004473220615182072,
352
+ 0.9995526671409607
353
+ ]
354
+ },
355
+ {
356
+ "choice": 0,
357
+ "probabilities": [
358
+ 0.9970535039901733,
359
+ 0.002946516964584589
360
+ ]
361
+ },
362
+ {
363
+ "choice": 1,
364
+ "probabilities": [
365
+ 0.0018149319803342223,
366
+ 0.9981850981712341
367
+ ]
368
+ },
369
+ {
370
+ "choice": 1,
371
+ "probabilities": [
372
+ 0.0005827727727591991,
373
+ 0.9994171857833862
374
+ ]
375
+ }
376
+ ]
377
+ }
378
+ }
379
+ }
380
+ },
381
+ "merge_seconds": 0.22089949999644887,
382
+ "parity": {
383
+ "changed_answers": 2,
384
+ "max_probability_delta": 0.31059931218624115,
385
+ "active_only_correct": 0,
386
+ "merged_only_correct": 2
387
+ }
388
+ }
release_manifest.json CHANGED
@@ -1,7 +1,11 @@
1
  {
2
  "README.md": {
3
- "bytes": 18391,
4
- "sha256": "6dffb3724e8f3d669cf691c1ebc7bf9aadb401faf69d683f1a09ba3be3159f44"
 
 
 
 
5
  },
6
  "LICENSING.md": {
7
  "bytes": 2469,
@@ -16,8 +20,8 @@
16
  "sha256": "83269f17bab3b0aa418787f9e1ecc458f517693210378dd89fa3aa5cf87062ff"
17
  },
18
  "inference.py": {
19
- "bytes": 7945,
20
- "sha256": "4548693fcf4925fc1cef2ff03070730c817f1b178eebf0c333ab6672259b2952"
21
  },
22
  "adapter_config.json": {
23
  "bytes": 1395,
@@ -40,8 +44,8 @@
40
  "sha256": "b9f2f1bd4788930ab4fe73cfc0e621072615c9256ee0b783ddd72a6ce928a8bf"
41
  },
42
  "validation.json": {
43
- "bytes": 1775,
44
- "sha256": "c71a837998e332a6990ccb2de00643f623edeec35b60489ea5394e339d1f0bde"
45
  },
46
  "dataset_licenses.json": {
47
  "bytes": 17366,
@@ -55,6 +59,22 @@
55
  "bytes": 4378,
56
  "sha256": "915a4d1dbc675dc7914d9de525f8e94df0a9e604ff16ef57fc8a90f744fc340d"
57
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
58
  "NOTICE-XNLI.txt": {
59
  "bytes": 19332,
60
  "sha256": "1d8ca66080a2701508a70be4ddad4be28c509bcc3397a682fb8edf767fdd7a00"
@@ -114,21 +134,5 @@
114
  "NOTICE-CC-BY-SA-4.0.txt": {
115
  "bytes": 20138,
116
  "sha256": "28a9529c7d0bb4dc51f4bf5c116a3d16ef247a052f7591466768ddf563fd1cf5"
117
- },
118
- "standard_benchmark_results.json": {
119
- "bytes": 15995,
120
- "sha256": "74d154a4ba44db04e39b1f727ec623d6793028127a5e4a46c152ced54b4082c9"
121
- },
122
- "domain_results.json": {
123
- "bytes": 15535,
124
- "sha256": "e44559d9185d7c90d0580b196bb1ea899b601c78855c83c5bc8c3da4565010ba"
125
- },
126
- "LICENSE": {
127
- "bytes": 11582,
128
- "sha256": "a8928f06d5568b968f2710597053449e1dc350dc9e0406e23ca83cf33a303a45"
129
- },
130
- "alberich-mini.png": {
131
- "bytes": 1326272,
132
- "sha256": "f8227e1913ec81807ad7899b6adbc96923bd1ce11477709dd89be7f2374170bc"
133
  }
134
  }
 
1
  {
2
  "README.md": {
3
+ "bytes": 21236,
4
+ "sha256": "06089f6d1fb01a1fbb0fdaaa2cd226165435a99ef154efbe81ffac67d2ca1240"
5
+ },
6
+ "LICENSE": {
7
+ "bytes": 11582,
8
+ "sha256": "a8928f06d5568b968f2710597053449e1dc350dc9e0406e23ca83cf33a303a45"
9
  },
10
  "LICENSING.md": {
11
  "bytes": 2469,
 
20
  "sha256": "83269f17bab3b0aa418787f9e1ecc458f517693210378dd89fa3aa5cf87062ff"
21
  },
22
  "inference.py": {
23
+ "bytes": 8330,
24
+ "sha256": "3a700072864f2ac922b8008f70bf4f1c55ddff1fb212afecbf1648ab053212a5"
25
  },
26
  "adapter_config.json": {
27
  "bytes": 1395,
 
44
  "sha256": "b9f2f1bd4788930ab4fe73cfc0e621072615c9256ee0b783ddd72a6ce928a8bf"
45
  },
46
  "validation.json": {
47
+ "bytes": 1805,
48
+ "sha256": "d22ab4d10e03c5cef195a04867fc989bf4017a4bb1e0af92b80fd7ff291550af"
49
  },
50
  "dataset_licenses.json": {
51
  "bytes": 17366,
 
59
  "bytes": 4378,
60
  "sha256": "915a4d1dbc675dc7914d9de525f8e94df0a9e604ff16ef57fc8a90f744fc340d"
61
  },
62
+ "standard_benchmark_results.json": {
63
+ "bytes": 15995,
64
+ "sha256": "74d154a4ba44db04e39b1f727ec623d6793028127a5e4a46c152ced54b4082c9"
65
+ },
66
+ "domain_results.json": {
67
+ "bytes": 15535,
68
+ "sha256": "e44559d9185d7c90d0580b196bb1ea899b601c78855c83c5bc8c3da4565010ba"
69
+ },
70
+ "merged_adapter_results.json": {
71
+ "bytes": 10729,
72
+ "sha256": "52ff993a3b59f4dbba163b0b83fae9e179a2fd020a7b7406de9061a4f01cd8c0"
73
+ },
74
+ "alberich-mini.png": {
75
+ "bytes": 1326272,
76
+ "sha256": "f8227e1913ec81807ad7899b6adbc96923bd1ce11477709dd89be7f2374170bc"
77
+ },
78
  "NOTICE-XNLI.txt": {
79
  "bytes": 19332,
80
  "sha256": "1d8ca66080a2701508a70be4ddad4be28c509bcc3397a682fb8edf767fdd7a00"
 
134
  "NOTICE-CC-BY-SA-4.0.txt": {
135
  "bytes": 20138,
136
  "sha256": "28a9529c7d0bb4dc51f4bf5c116a3d16ef247a052f7591466768ddf563fd1cf5"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
137
  }
138
  }
validation.json CHANGED
@@ -4,6 +4,7 @@
4
  "adapter_dtypes": [
5
  "torch.float32"
6
  ],
 
7
  "gpu": "NVIDIA GeForce RTX 4070 SUPER",
8
  "checks": [
9
  {
@@ -18,14 +19,14 @@
18
  "questions": 3,
19
  "original_code_max_probability_delta": 0.0,
20
  "shared_independent_choices_match": true,
21
- "shared_independent_max_probability_delta": 0.002172231674194336
22
  },
23
  {
24
  "modality": "text",
25
  "questions": 10,
26
  "original_code_max_probability_delta": 0.0,
27
  "shared_independent_choices_match": true,
28
- "shared_independent_max_probability_delta": 0.001797497272491455
29
  },
30
  {
31
  "modality": "image",
@@ -39,14 +40,14 @@
39
  "questions": 3,
40
  "original_code_max_probability_delta": 0.0,
41
  "shared_independent_choices_match": true,
42
- "shared_independent_max_probability_delta": 0.002624034881591797
43
  },
44
  {
45
  "modality": "image",
46
  "questions": 10,
47
  "original_code_max_probability_delta": 0.0,
48
  "shared_independent_choices_match": true,
49
- "shared_independent_max_probability_delta": 0.0009383559226989746
50
  }
51
  ],
52
  "note": "Smoke tests verify packaging and implementation parity, not general accuracy. Original and portable implementations use the same loaded model; weight identity is independently checked by SHA256."
 
4
  "adapter_dtypes": [
5
  "torch.float32"
6
  ],
7
+ "adapter_merged": true,
8
  "gpu": "NVIDIA GeForce RTX 4070 SUPER",
9
  "checks": [
10
  {
 
19
  "questions": 3,
20
  "original_code_max_probability_delta": 0.0,
21
  "shared_independent_choices_match": true,
22
+ "shared_independent_max_probability_delta": 0.0006584310904145241
23
  },
24
  {
25
  "modality": "text",
26
  "questions": 10,
27
  "original_code_max_probability_delta": 0.0,
28
  "shared_independent_choices_match": true,
29
+ "shared_independent_max_probability_delta": 0.0019329637289047241
30
  },
31
  {
32
  "modality": "image",
 
40
  "questions": 3,
41
  "original_code_max_probability_delta": 0.0,
42
  "shared_independent_choices_match": true,
43
+ "shared_independent_max_probability_delta": 0.0008810162544250488
44
  },
45
  {
46
  "modality": "image",
47
  "questions": 10,
48
  "original_code_max_probability_delta": 0.0,
49
  "shared_independent_choices_match": true,
50
+ "shared_independent_max_probability_delta": 9.277090430259705e-05
51
  }
52
  ],
53
  "note": "Smoke tests verify packaging and implementation parity, not general accuracy. Original and portable implementations use the same loaded model; weight identity is independently checked by SHA256."