License: CC BY-NC 4.0 weights; source helper/serve and base are Apache-2.0.
Source openjev/openjev@5ec9e5fd2f80a6fff386779b1e5ac7e389971889 is a BF16 fine-tune of Qwen/Qwen3.8-27B@1d4bf0f2ff6012fd82039f2fa52739d0dd7c60c0 (Apache-2.0). The frozen Qwen3.8-27B text recipe accepts its Qwen3_5ForConditionalGeneration / text_config shape unchanged: 64 layers, 48 linear-attention and 16 full-attention, width 5120, 248,320-token head. Vision and MTP weights are dropped by that established text recipe. This is a Mac-only text port.
The author provides helper/shim_mlx.py, whose mechanism imports helper/shim.py untouched and replaces only shim.client.chat.completions.create. The zoo oracle follows that mechanism, verifies the full SHA256 81a22f1b1b8912a465059207ef9f60b7c6c16b4de6372305d867efbe38a1987a, and calls the helper’s own answer_choice, answer_score and answer_noul for all 61 requests. Direct mlx_lm.load on the pinned HF snapshot worked: all 851 parameter tensors were BF16, with 26,895,998,464 parameters, no quantized layers and no vision/MTP keys. There was no MLX conversion copy. The pinned releases were mlx-lm 0.31.3, MLX 0.32.2, transformers 5.17.0, openai 3.16.2 and httpx 0.28.1.
The stand-in renders one user message with the checkpoint’s chat template, generation prompt on and thinking off. It computes FP32 full-vocabulary log-softmax of the BF16 model’s last-position logits and returns precisely the requested bare-letter token ids. TARGETED=1 must accompany T=0.85 and NOUL_T=1.829074/bias0; missing candidate scores fail rather than receiving a floor. READOUT_INSTR_STYLE=pyrepr, READOUT_PERMS=1, SHIM_STAGGER=1; PAD/COMPACT/LAYOUT/LOOP_BREAK remain off. The helper’s unrounded internal readout is observed for p_author; actual API answers, rounded to four decimals, are retained separately. Raw log-probabilities are recorded inside the stand-in’s create.
One local validation assertion initially expected the dtype name bfloat16, but MLX 0.32.2 reports mlx.core.bfloat16. Correcting that name check resolved the assertion after a successful model load; it did not alter weights or arithmetic, and was not a failure to load the snapshot. The successful oracle process exited before Torch export. Its peak MLX allocation was 55,033,556,178 bytes; its measured process RSS was 44,046,991,360 bytes. These counters measure different scopes.
The reference is this BF16 author/helper path only. A 27B FP16 export is not a reference for the author’s probabilities, and a Torch FP32 model would require approximately 108 GB of weights before activations. No second oracle or FP16 bundle is claimed.
The card gives the exact State / Question / Options text. Labels are bare A–Z, then a–z, all 52 single-token and unique; null descriptions leave the option line ending in : . Option probabilities equal softmax(gather(logits,label_ids)/0.85). Noul uses yes/no in that order, defaults to “The statement is true.” / “The statement is false.”, clamps p_yes to [1e-4,1−1e-4], then computes sigmoid(logit(p_yes)/1.829074 + 0). Compare calibrated Noul against the fixture’s calibrated value in addition to comparing the pre-calibration option distribution. Scores are zero-based expected levels and append the author’s ordered-level suffix to the question.
Text-only dict states are JSON-serialized whole with ensure_ascii=False; {"text": ...} is not unwrapped. Fixture states are strings, including four already-serialized page/elements/goal documents. The 61 rows contain 51 distinct prompts, include counted de/fr/ja/zh rows and two 1559-token long rows, and have minimum top-two margin 0.988485. This is a high-margin parity set rather than a calibration/task-quality evaluation.
The exporter was copied from zoo main with its SHA recorded, then changed only for optional --name and metadata supplied through _bundle.py’s extra; the graph and quantization are unchanged. Round 3 generalizes that metadata path to --revision <sha> and --extra-metadata <JSON path>, with nil defaults and no source-specific branch. OpenJev passes models/openjev-27b/metadata-extra.json for its license and decision blocks. write_bundle_metadata is checked against the shipped root metadata in a temporary directory, allowing only compilation.date to differ; there is no re-export. Export int8hu --head-sym ran once successfully, taking 234.335828 s and 72,858,877,952 bytes / 67.9 GiB peak RSS. It writes a 29,803,295,665-byte / 27.8 GiB LanguageBundle, context 4096, vocabulary 248320. Main IR SHA256 is 004d52234efd0ac6ef2f7d81c33d72a502ad8a768d5424448049fcf6d3b73cc5. Round2 does not re-export: source weights were removed after round1 verification. The exporter diff and metadata contract stand as reproduction evidence, with no serialization equality claim.
On macOS 27.0 (26A428), Python needs AOT h16c plus SpecializationOptions.default(). AOT took 1533.141062 s in round1. The recurrent/conv/KV buffers start at zero for every row and all tokens are stepped at S=1. Due to runtime allocation accumulation, use at most six prompt evaluations per worker including reset: five distinct ordinary rows plus a repeated first row; long rows run separately. The 61-row plan used 15 worker sessions including the final global reset. The accepted round-1 maximum worker RSS was 111,894,233,088 bytes / 111.9 GB on the 128 GiB M4 Max. That observed round-1 peak is not a general minimum-memory guarantee. The completed round-2 zoo readout separately peaked at 116.1 GB RSS (116,084,408,320 bytes) on the same 128 GiB Mac. These are separate observed process peaks for the two gate runs. Runtime correctness windows may be contended. The S=1 throughput proxy was not measured: there was no quiet GPU window on this shared Mac on 2026-09-23; the owner dropped that requirement in round 3. The blocker receipt remains in RUN only.
| The accepted readout agrees 61/61, max | Δp | 0.000276405406506, mean-of-row-means2.05806795118e-05, max calibrated Noul error0.000306657991264; all full-vocabulary argmaxes are labels and all complete-logit resets are bit-identical. Both Release engine variants match the same bundle’s Python full-vocabulary argmax text on 61/61 each. The letter tools retain APUS and 2B defaults; OpenJev selects bare/chat/T=0.85 plus the 64-layer model and six-evaluation worker cap explicitly. Round2 uses the existing exports/aotc asset for its zoo-form rerun, then deletes that cache at the supervisor’s requested cleanup stage. |
Every source read used HF_HUB_OFFLINE=1, HF_HUB_DISABLE_XET=1, and HF_HOME inside this isolated run. All 12 shards and tokenizer matched the snapshot’s own SHA256SUMS/MANIFEST first. The predownloaded snapshot lacked refs/main; the unchanged HF-id-based exporter therefore failed at cache lookup before reading weights. Writing the verified revision 5ec9e5fd2f80a6fff386779b1e5ac7e389971889 to the RUN-only cache’s refs/main let the second invocation use the complete local snapshot. No source was downloaded again. Shared caches, owner repositories and the frozen loader were never modified.
CC BY-NC 4.0 applies to this converted model. Source LICENSE, LICENSE-APACHE-2.0, NOTICE and config.json are staged verbatim; the base and helper code’s Apache-2.0 license does not supersede the weights’ non-commercial license. Bundle staging uses an APFS clone to avoid duplicating the 29.8 GB payload. Publication and the shared-zoo fold are owner actions; this run writes only its isolated zoo/staging forms.
The supervisor supplied these results from 2026-09-23 11:40–12:17 JST, ~/code/coreai-kit-models-wt, branch decision-models-5, Decision.Format.letterList, with the kit’s own prompt rendering and coreai-sequential at about 28 GB resident. All times are contended, sharing the GPU with this run’s zoo gates. These results were not re-derived by this conversion run; their supplied values and provenance are preserved in measurements-coreai-kit.json.
Fixture parity is 61/61 tokens, slots and argmaxes: 35 Choice rows with 2–52 options, 14 yes/no rows after helper calibration against fixture.noul, and 12 Score rows. Max |
Δp | is 0.0003, mean 0.0001. Median question time is 9.3 s for 90–505 tokens (median 114); the two 1,559-token rows take up to 137 s. The separate README request gives billing 1.000 versus helper BF16 0.9998 at 5,064 ms / 70 tokens; calibrated yes 0.630 versus helper 0.6183 at 4,771 ms / 74 tokens; urgency expected level 2.08, today 0.675, at 6,198 ms / 95 tokens. Those examples are not bounded by the fixture’s maximum error. Tokens reused = 0; the sequential decode-only graph reads about 70 ms per input token in that contended window. |
SemIf authored144 uses 144 English rows, three options, SemIf’s own gold labels and unchanged benchmarks/evaluate.py, each rendered in the helper’s form: 134/144 raw, mean family balanced accuracy 0.907 (evidence_interpretation 0.944, rule_application 0.917, candidate_selection 0.861), median 8.3 s at about 102 tokens. The card records the supplied same-evaluator scale numbers without treating them as a ranking.
The kit’s about 28 GB resident memory is a different measurement from the accepted round-1 AOT Python readout peak of 111.9 GB or the round-2 repeat peak of 116.1 GB. Keep the runtime paths and measurement scopes named. The kit detects decision.readout="letters", temperature and noul from metadata, renders the helper text byte for byte under the chat template, supports 52 options and applies the helper’s yes/no calibration. Catalog id openjev-27b is macOS only, license CC-BY-NC-4.0, pinned to the Hub revision.