laya-priority-coreml (English, priority + scheduling, up to 4 choices)
Core ML conversion of convaiinnovations/laya (English checkpoint, revision
55cf4c4ebb4ebe31b2550e8bdf3bd21b99753851), generalized from a fixed
binary choice question to a fixed 2–4 option choice graph. Used for
two purposes in the consuming app: deciding whether a to-do item should be
acted on now versus deferred, and picking a free processing day/time slot
among up to four candidates. This is not a general-purpose export of Laya —
only the masked-choice decision graph is included, and only logits
(pre-temperature) is returned.
Weights © Convai Innovations, Apache-2.0. Conversion graph and Core ML export by this repository's owner.
Known limitation — do not treat as validated for general use
Zero-shot measurement on the original 48-item balanced English/Korean-translated priority fixture (this checkpoint, binary priority question) scored 17/24 (70.8%) on English and 15/24 (62.5%) on Korean text machine-translated to English, both below an 80%-accuracy / 70%-recall gate. This artifact is shipped anyway at the consuming application's explicit request, with rule-based fallback preserved for degraded cases. Do not present its output as high-confidence, and treat the added multi-option scheduling question the same way — it has not been separately accuracy-gated, only numerically parity-checked against the source model below.
Static IO contract
- Inputs (
int32):input_ids [1,512],attention_mask [1,512],marker_pos [1,4],marker_mask [1,4],qtype [1] - Output (
float32):logits [1,4]— raw, pre-temperature logits from the sourceDecisionModel.scorerhead. Questions with 2 or 3 active options setmarker_pos=0, marker_mask=0on the unused trailing slot(s); the model forces those logits to-10000, so only active options can win argmax. - Special token ids:
pad=50283 cls=50281 sep=50282 mask=50284 - Sequence format follows upstream
laya.common.build_sequencewithmax_len=512, head_max_len=192; instruction/option text is supplied by the caller (fixed priority question, or a dynamic day/slot question), not fixed in the graph.
Parity evidence (from the exporter that produced this package)
- Source PyTorch vs traced PyTorch: max abs error
0.0(exact) across the fixture cases, including a synthetic 4-option scheduling case. - Widening the graph from 2 to 4 marker slots does not change the active-slot
source logits: re-running the original 2-option English/Korean fixtures
through the 4-slot graph (inactive slots masked out) reproduced the exact
same active logits (
max_abs_error 0.0). - Native Core ML (
CPU_AND_NErequested) vs source, 49 cases (24 English + 24 real Korean→English machine translations + 1 synthetic 4-option scheduling case): argmax agreement 49/49 in the recorded run; a repeated run showed 48/49 because one English case (en-18) has a near-zero source margin and is numerically borderline — this is disclosed, not hidden. Max abs logit error over active options ≈0.23–0.36 depending on run; max abs error over masked/inactive options is0.0in every run (they are pinned to-10000and never move). - An FP32 variant reproduces the source almost exactly but the compiler prefers CPU for all ops in that variant, so it is not an ANE artifact; it is not published here.
Files
laya_english.mlpackage/— compiled-at-load Core ML package (FP16,logits-only output, 4 marker slots)tokenizer.json,tokenizer_config.json— copied unmodified from the source checkpoint'stokenizer/laya_manifest.json— file list with SHA-256 and sizes, IO contract, special token ids, and masking semantics
- Downloads last month
- -