Ruiruiz30 commited on
Commit
1eb9ccc
·
verified ·
1 Parent(s): 2ffc677

refresh calibrated classifier and benchmark card

Browse files
Files changed (2) hide show
  1. README.md +1 -1
  2. omni_mlx/classifier.py +6 -0
README.md CHANGED
@@ -49,7 +49,7 @@ The published Jev-Omni H200 numbers are not transferable to this Mac mini. This
49
  - Maximum absolute probability difference on the four upstream text cases: 0.244 in this small check.
50
  - Public JevBench v1.2 public items (easy + original + hard, 231 decisions) were re-run locally. Raw accuracy was **87.88%**; state-macro and micro are identical because each public item is one state/question. Raw ECE-10 was **0.04497**.
51
  - A single global temperature was fit on even source rows (116 items) and checked on odd rows (115 items): `T=1.11517`. On all 231 items, ECE-10 was **0.03069** after scaling; the held-out ECE was **0.06774** versus raw **0.06261**, so this is a published post-hoc calibration artifact, not a universal confidence guarantee.
52
- - DecisionBench is being evaluated with the original full states; its long 16GB-Mac run is checkpointed under `artifacts/benchmarks/runs/` in the source project. It is not included in the model-card score until the complete run finishes.
53
  - The runtime supports the published temperature file through `--calibration calibration.json`. Accuracy/argmax is unchanged by temperature scaling; only the returned probability distribution changes.
54
 
55
  ## Installation
 
49
  - Maximum absolute probability difference on the four upstream text cases: 0.244 in this small check.
50
  - Public JevBench v1.2 public items (easy + original + hard, 231 decisions) were re-run locally. Raw accuracy was **87.88%**; state-macro and micro are identical because each public item is one state/question. Raw ECE-10 was **0.04497**.
51
  - A single global temperature was fit on even source rows (116 items) and checked on odd rows (115 items): `T=1.11517`. On all 231 items, ECE-10 was **0.03069** after scaling; the held-out ECE was **0.06774** versus raw **0.06261**, so this is a published post-hoc calibration artifact, not a universal confidence guarantee.
52
+ - DecisionBench medium was started with the original full states; an exact checkpoint (68/293 questions, 0 errors) is under `artifacts/benchmarks/runs/` in the source project. The partial aggregate is deliberately not presented as the official complete score because long states take tens of seconds to minutes on a 16GB Mac.
53
  - The runtime supports the published temperature file through `--calibration calibration.json`. Accuracy/argmax is unchanged by temperature scaling; only the returned probability distribution changes.
54
 
55
  ## Installation
omni_mlx/classifier.py CHANGED
@@ -160,6 +160,12 @@ class Classifier:
160
  prefix_kwargs["per_layer_inputs"] = first_embedded.per_layer_inputs[:, :prefix_len]
161
  prefix_hidden = self.model.language_model.model(**prefix_kwargs)
162
  mx.eval(prefix_hidden)
 
 
 
 
 
 
163
  snapshots = [cache.prefix_cache_snapshot() for cache in prefix_cache]
164
  prefix_ms = (time.perf_counter() - started) * 1000
165
  output = []
 
160
  prefix_kwargs["per_layer_inputs"] = first_embedded.per_layer_inputs[:, :prefix_len]
161
  prefix_hidden = self.model.language_model.model(**prefix_kwargs)
162
  mx.eval(prefix_hidden)
163
+ # KV updates use lazy MLX assignment; materialise the cache before
164
+ # taking snapshots so later suffix requests see the exact prefix.
165
+ for cache in prefix_cache:
166
+ state = cache.state
167
+ if state and state[0] is not None:
168
+ mx.eval(*state)
169
  snapshots = [cache.prefix_cache_snapshot() for cache in prefix_cache]
170
  prefix_ms = (time.perf_counter() - started) * 1000
171
  output = []