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 source DecisionModel.scorer head. Questions with 2 or 3 active options set marker_pos=0, marker_mask=0 on 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_sequence with max_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_NE requested) 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 is 0.0 in every run (they are pinned to -10000 and 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's tokenizer/
  • laya_manifest.json — file list with SHA-256 and sizes, IO contract, special token ids, and masking semantics
Downloads last month
-
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support