Skip to content
Laya AI

Unofficial community documentation

Laya AI - Open Source System-1 Decision Model

Laya system one model, compared with Jev. Multilingual, non-autoregressive System 1 decision engine: typed decisions over 100+ languages in a single forward pass.

Jev is a closed API that works out of the box. Laya is open source, runs locally, and is low latency, and it is weak when one choice question has many labels.

Laya vs Jev

Two sources sit in separate tables on purpose. The first is the project's own README. The second is a Hugging Face community dataset that remeasured Laya. Jev cells in both places are published quotes unless a caption says otherwise. The write-up of why the figures disagree is the Laya vs Jev benchmark explained page.

On the official typed-decisions run, the base checkpoints score 0.362 and 0.342, under the 0.461 majority-class baseline. The 0.766 figure belongs to laya-typed-decisions, fine-tuned on that benchmark's training split. Installing the package does not give you that score.

Official self-test

README table “Laya (with routing) vs Jev”. Laya figures are what Router().predict returns. Jev figures are third-party published and were not measured in the Laya repository.
Jev 1.13.0Laya (routed)
typed-decisions, 2,000 decisions0.7270.766+0.039
AG News, 4 labels0.9100.950+0.040
DAIR Emotion, 6 labels0.4800.595+0.115
Banking77 (72 vs 77 labels)0.8700.425Jev leads on >20 options
ECE (lower better)0.2460.0813× better (post-temperature)
p50 latency, 1 question236–276 ms32.8 ms7.8× faster
Languages usableno published benchmark45 of 51
Weightsclosed APIApache 2.0
Cost$0.042 / 1M tokens$0 self-hosted

Third-party independent test

Third-party independent test. Luni/laya-jev-benchmark, typed-decisions, 400 cases. Laya was remeasured. The Jev row is marked published in that card.
ModelAccuracyECEms per case
Laya, no fine-tuning0.3600.17515.9
Laya fine-tuned on this task0.7670.21216.4
Jev 1.13.0 (published)0.7270.144710
Teacher self-agreement0.735
Third-party independent test. Hugging Face dataset Luni/laya-jev-benchmark, PhishNChips, 2,000 emails, RTX 5090. Laya rows were measured there. Rows marked published are quotes, not a Jev API rerun.
ModelAccuracyECEAUROCRecallp50
Laya, raw0.5050.4410.6780.0129 ms
Laya, Platt-calibrated0.6110.6799 ms
Jev (published)0.6260.1540.6890.432239 ms
Claude Haiku 4.5 (published)0.8130.0970.8370.764687 ms
Third-party fine-tune, not a Laya vs Jev run. Cahol/laya-banking77-v1 on the official 3,080-example BANKING77 test, all 77 labels. That card says the result does not show Laya is better than Jev.
ModelAccuracyMacro F1Top-3 accuracy
Laya English base, same 77-label protocol45.91%42.90%69.42%
Cahol fine-tune85.55%85.53%96.43%

Videos

Community YouTube explainers about Laya and Laya vs Jev. These creators are not affiliated with Convai Innovations or with this site. Prefer the README and BENCHMARKS.md for numbers.

Features

Fast Inference

Official T4 table: 32.8 ms for one question on laya-multilingual, 39.5 ms on laya. Batched multilingual throughput there is 7.2 ms/question at 10 questions.

Apache 2.0 Open Source

Weights and the pip package are Apache 2.0. Jev, in the same README comparison, is a closed API at a published $0.042 / 1M tokens.

100+ Languages

The README describes laya-multilingual as the 100+ language checkpoint. On the published 51-language MASSIVE sweep it clears 3× random on 45 of 51 languages.

No LLM Hallucinations

The project says there is no text generation, so there is nothing to parse. Outputs are choice, score, and noul. Wrong labels still show up in the tables below.

Run Laya locally

Shortened slice of the README Router quickstart. Hardware, preload pitfalls, and the full script are on Get Started. This site does not run the model.

bash
pip install laya
python
import laya
from laya import Router

router = Router(preload=True)

state = {
    "from": "user@acme.com",
    "subject": "Duplicate charge on invoice #4411",
    "body": "Hi, we were billed twice for March. Please refund the duplicate today or we will cancel our plan."
}

questions = {
    "department": {
        "type": "choice",
        "instructions": "Which department should handle this request?",
        "criteria": {
            "billing": "invoices, payments, refunds",
            "technical": "bugs, outages, system errors",
            "sales": "pricing, new contracts",
            "other": "everything else"
        }
    }
}

res_en = router.predict(state, questions)
print("Department :", res_en["answers"]["department"]["choice"])

Use cases