Published
Laya, an Apache 2.0 System One stack, publishes where it beats Jev's numbers and where it does not
Louis Grenard pointed at Laya, Convai Innovations' open typed-decision engine. Three checkpoints, a Router that picks among them, Apache 2.0 weights on Hugging Face. The author's table puts routed Laya above published Jev on some English sets and far below on Banking77. Jev was not called. JevBench's independent row is 70.1 against Jev 75.3.
Louis Grenard posted on September 20 that while everyone was talking about Jev, Laya was the open-source version worth a look. Apache 2.0, self-hostable, weights on Hugging Face, and the author had been on this path in 2025. The site is laya.convaiinnovations.com. The repo is NandhaKishorM/laya, by Convai Innovations.
Laya answers the same three primitives Jev does: choice, score, noul. State in, typed answers out, one forward pass. pip install laya. Three checkpoints: laya (ModernBERT-large, 421M, 512 context) for English; laya-multilingual (mmBERT-base, 322M, 1024) for 100+ languages; laya-typed-decisions (ModernBERT-large, 421M, 1024) for the fine-tuned workflow set. A Router detects script and language and picks one. Router(preload=True) keeps checkpoints in memory. Without preload, a language switch rebuilds a model; the README measures 7.4 s median on CPU and 10.3 s on a T4.
Author speed, Tesla T4: English 39.5 ms for one question, multilingual 32.8 ms. At 10 questions batched, multilingual 72.3 ms, 7.2 ms per question. The README compares that to independent Jev p50 figures of 236-276 ms from AbdelStark and nibzard. Those Jev latencies were not measured in this repo.
The README says Jev figures are third-party published, “never measured here (no TypeSafe API access).” On that borrowed column, routed Laya is 0.766 versus 0.727 on 2,000 typed-decisions, 0.950 versus 0.910 on AG News, 0.595 versus 0.480 on DAIR Emotion, and 0.425 versus 0.870 on Banking77 (77 labels versus 72). The 0.766 is the fine-tuned checkpoint. The two base checkpoints score 0.362 and 0.342 on the same set, under the 0.461 majority-class baseline. The README’s instruction is to treat Laya as a fast base to specialise.
Banking77 is the documented miss. Options share a fixed head_max_len (192 on English, 256 on multilingual), so 77 labels get about 3 to 4 tokens each at default settings. Jev’s published 255-option cap does not have that split. The README says to raise head_max_len or split the choice. The English checkpoint on Khmer is 0.000 accuracy at 0.952 confidence, which is why the Router exists: confidence gating cannot save a script the encoder cannot read.
JevBench is the independent row on this desk: Laya 70.1, Jev 1.13.0 75.3. We did not run either system.
This site's reading
Editorial notes evaluating claims against primary sources, contextualizing findings alongside related implementations, and defining technical terms.
Verify
Grenard's September 20 post points at laya.convaiinnovations.com. The GitHub README (NandhaKishorM/laya, Apache 2.0, Convai Innovations) is the spec. Three checkpoints: laya (ModernBERT-large, 421M, 512 context, English), laya-multilingual (mmBERT-base, 322M, 1024), laya-typed-decisions (ModernBERT-large, 421M, 1024). Router(preload=True) picks among them. Author speed on a T4: English 39.5 ms for one question, multilingual 32.8 ms; batched multilingual 7.2 ms/question at 10 questions. Jev p50 236-276 ms is cited from AbdelStark and nibzard, not measured in this repo. Author quality table says Jev figures are third-party published, "never measured here (no TypeSafe API access)." Routed Laya versus those published Jev numbers: typed-decisions 0.766 vs 0.727 (2,000 decisions, fine-tuned checkpoint); AG News 0.950 vs 0.910; DAIR Emotion 0.595 vs 0.480; Banking77 0.425 (77 labels) vs 0.870 (72 labels). Base checkpoints on typed-decisions 0.362 and 0.342 against a 0.461 majority-class baseline. Khmer on the English checkpoint 0.000 accuracy at 0.952 confidence. ECE 0.081 after temperature fitting on the English checkpoint. JevBench v1.2.2 lists Laya at 70.1 against Jev 1.13.0 at 75.3; that row is independent of this README. We did not run Laya or call Jev. TypeSafe's Master Customer Agreement section 2.3(f) forbids publishing benchmarks of the Services; the JevBench row is reported as published.
Compare
SemIf is the closest open row on JevBench (74.6, 0.7 behind Jev) and reads option logits from Qwen3.5-4B. jeff copies POST /v1/systemone on GLiFormer and trails Jev on public labels (AG News 75.5% versus 90.5%, JevBench 66.9). Nimble is a 9B LoRA on 324 synthetic labels. LocalJev prompts JSON probabilities and says that is not a logit read. Laya is the ModernBERT-sized encoder with a published Banking77 miss (0.425 versus a published Jev 0.870) and a documented zero-shot collapse on the typed-decisions set until fine-tuning. Poly's Banking77 run is hosted Jev against open encoders (F1 0.782 versus ModernBERT 0.712), a different comparator. Author Jev numbers in the Laya README were not collected in the same run as the Laya numbers.
Terms
- Laya
- Convai Innovations' Apache 2.0 typed-decision engine. Three checkpoints plus a Router. JevBench v1.2.2 reports 70.1 for the Laya row against Jev 75.3.
- Router
- Laya's entry point that detects script and language, then dispatches to english, multilingual, or typed-decisions. Lazy load without preload can cost 7 to 10 s on a language switch.
- head_max_len
- Laya's option-prompt token budget. At default 256 on the multilingual checkpoint, 77 Banking77 labels get about 3 to 4 tokens each, which the README says is why accuracy falls to 0.425.