Skip to content
System One

Laya

Laya is an open-weights System One model from Convai Innovations. It answers typed Choice, Score and Noul questions about text you supply, returns probabilities instead of prose, and runs on your own GPU or CPU under Apache 2.0.

Updated

Open source, self-hosted. There is no hosted API. You download the weights and run them on your own hardware. How open-source models are listed.

What Laya is

Laya is a System One model from Convai Innovations, an Indian company led by CEO Nandakishor M, who publishes the code. It reads a state, which can be text, an email, a ticket or a JSON document, and answers typed questions about it: Choice, Score and Noul, the same three shapes Jev uses. Every question in a call is answered in one forward pass, and nothing is generated, so there is no output to parse.

Unlike Jev, Laya is not a hosted API. It ships as Apache 2.0 weights on Hugging Face and a Python package, pip install laya, and runs on your own GPU or CPU.

How it is built

Laya is an encoder with a decision head on top. The English checkpoint fully fine-tunes ModernBERT-large (395M parameters) and adds a head trained from scratch: two transformer layers, a scorer that reads one [MASK] token per option, and an act-or-escalate output. That comes to 421M parameters. The multilingual checkpoint uses mmBERT-base and comes to 322M. Options are defined per request, so a new question schema needs no retraining.

Training uses what Convai also calls RLCD. The reward is a strictly proper scoring rule, so reporting honest probabilities earns the most reward, and updates use REINFORCE with a group-mean baseline. TypeSafe has not published its recipe. Convai has, along with a fine-tuning notebook that takes 4 to 5 hours on Kaggle’s free pair of T4 GPUs.

A Router picks between the checkpoints by detecting the script and language before the forward pass. The English checkpoint fails on other scripts without losing confidence: on Khmer it scored 0.000 at 0.952 confidence.

What it is good at

Its strengths are speed and ownership. Convai measures 32.8ms for one question on a T4, and you can keep, inspect and retrain the weights. After fitting a temperature per question type on held-out data, its calibration error falls from 0.466 to 0.081. The package ships ready-made question sets for model routing, prompt guardrails, moderation and ticket triage.

The Jev Decision Index by multimodalart tests Laya zero-shot across a broad suite. Its edition 0.4.1, in the file generated on 22 October 2026, ranks entries by a Full score built only from private tests, 60% on the same skills and 40% in new domains, on a scale where 0 is random guessing and 100 is perfect. Laya scores 9.21 against Jev 1.14’s 60.24, close to random guessing, and 6.19 against Jev 1.14’s 60.7 on the public benchmarks alone. The headline changed in 0.3 and again in 0.4, so these numbers do not compare with the 0.2.1 figures this page gave before, or with the 0.3.1 Full score of 4.43. That fits Convai’s own advice to specialise it on your task rather than use it zero-shot.

What it is not for

The base checkpoints are close to chance on the typed-decisions benchmark without fine-tuning: 0.362 against a 0.318 random baseline. Convai’s own README calls Laya “a fast base to specialise, not a zero-shot decision engine.” Score questions are its weakest type, and large label sets need extra configuration. Probabilities are over-confident until you fit temperatures on your own data.

Convai’s comparisons with Jev set its own numbers against Jev figures published by third parties, not measured in the same run, so treat the head-to-head as indicative.

Specifications

System One Score25.5 from 2 of 3 boardsJev Decision Index 12.9, JevBench 38.1. How the score works
Question typesChoiceScoreNoul
Max Choice optionsNot documented
Score levelsNot documented
Questions per callNot documented
Total context512 tokens
State budget320 tokens
Rate limitNone. It runs on your own hardware.
LicenceApache-2.0
SDKsPython: laya

The English checkpoint defaults to 512 tokens, 192 of them reserved for the question and its options, leaving about 320 for the state. laya-multilingual and laya-typed-decisions default to 1,024 tokens with 256 for options. The mmBERT encoder under the multilingual checkpoint accepts up to 8,192 if you raise max_len. There is no hard cap on Choice options, but they share the option budget: 77 labels get about 3 to 4 tokens each, and Banking77 accuracy falls to 0.425. Raise head_max_len or shortlist with predict_shortlist for large label sets.

Versions

  • convaiinnovations/laya, 18 Sep 2026, English checkpoint at the repo root. ModernBERT-large encoder, 421M parameters, 512-token context. Release notes
  • convaiinnovations/laya-typed-decisions, 18 Sep 2026, The same 421M English model fine-tuned on the typed-decisions benchmark's training split, with a 1,024-token context. Release notes
  • convaiinnovations/laya-multilingual, 19 Sep 2026, mmBERT-base encoder, 322M parameters, 1,024-token context, for text outside English. Release notes

Use cases

What people use Laya for, one page per pattern.

Workflow controlStarter

Support inbox triage with System One models

Send a support ticket to Jev once with every question attached. Category comes back as a selected label, severity and frustration as numbers on scales you wrote, refund intent as a probability. Your code reads those values and decides what happens to the ticket.

ChoiceScoreNoul
Workflow controlIntermediate

Intent and model routing with System One models

One Jev call reads an incoming request and returns its intent as a label plus a difficulty rating on a scale you wrote. Your router reads both numbers and picks the handler: deterministic code, a cheap model, an expensive one, or a human queue.

ChoiceScore
Safety and qualityIntermediate

LLM guardrails with System One models

Put one Jev request in front of an LLM and one behind it. Yes/no questions return the probability that each hazard holds, a Score rates how much harm complying would do, and your thresholds turn those numbers into pass, review, block, or a crisis path.

NoulScore
Workflow controlIntermediate

Confidence-gated actions with System One models

Jev returns a confidence value from 0 to 1 alongside every Choice and Score answer. Your code treats it as a separate axis: act automatically when it's high, confirm or flag when it's middling, hand the decision to a person when it's low. Riskier actions get higher bars.

ChoiceScore

Examples built with Laya

The most-starred and most-viewed entries in the directory. All 106 Laya examples.

Introducing Clef: our open-source decision models, and new RL fine-tuning platform

Cloudflare's launch post for Clef and Clef-flash, two decision models on Workers AI that accept the Jev request format and open weights under Apache 2.0. It covers the architecture, Cloudflare's own benchmark tables against Jev, Kev and Laya, and a new reinforcement learning service.

NandhaKishorM/laya

Decision model from Convai Innovations that fully fine-tunes an encoder and adds a typed-decision head: a 421M English checkpoint on ModernBERT-large and a 322M multilingual one on mmBERT-base, with a router picking between them by detected language. Returns choice, score and noul answers, and reports expected calibration error of 0.081 after temperature fitting, down from 0.466 as shipped.

Alternative

@receptron/laya

Node.js and TypeScript package that runs the Laya decision model through ONNX Runtime, so JavaScript projects can call it without Python.

374 stars3-question call ~140 msModel size ~1.7 GB

Tool

FluidUse

A Swift package for local computer use on Apple Silicon that reads a form through the Accessibility API and asks a small on-device model what belongs in each field. Its Laya integration runs FluidInference's Core ML port of Laya on the Neural Engine at 3.7 ms per decision on an M5 Pro, about seven times faster than the upstream GPU figure.

152 starsPer decision 3.7msSpeedup ~7x faster

laya.cpp

Standalone C++ inference for Laya's typed decisions using ggml, with CUDA and Vulkan backends, a Jev-compatible /v1/systemone HTTP server, and automatic request batching.

85 starsCUDA BF16 speedup 1.11-2.71x

Tool

jevals

A Python evals and guardrails library for agent traces that uses Jev-style decision models instead of an LLM judge, running Jev through TypeSafe or Vercel, or Kev or Laya locally on a Mac. All checks for a trace go out as one request in a few hundred milliseconds.

81 starsVariance vs LLM 92-913x

Benchmarks

Published scores, each linked to its source. A row marked vendor-run was measured by the vendor itself, so read it as one side's result. The compare hub sets these beside the other models.

BenchmarkMetricScoreRun byDate
Jev Decision Index 0.4.1Full score9.21 scoreIndependent22 Oct 2026
Jev Decision Index 0.4.1Public score6.19 scoreIndependent22 Oct 2026
Jev Decision Index 0.4.1Expected calibration error0.1402 ECEIndependent22 Oct 2026
JevBench 1.7.46Capability Score32.5 scoreIndependent12 Oct 2026
Jev Decision Index 0.3.1Full score4.43 scoreIndependent10 Oct 2026
Jev Decision Index 0.3.1Public score6.19 scoreIndependent10 Oct 2026
Jev Decision Index 0.3.1Expected calibration error0.1402 ECEIndependent10 Oct 2026
Convai README benchmarksECE after temperature fitting0.081 ECEvendor-run18 Sep 2026
  • Jev Decision Index, Full score: Row: Laya. Counts 60% private same-skill tests and 40% private new-domain tests; public benchmarks no longer count. 0 is random guessing, 100 is perfect.
  • Jev Decision Index, Public score: Row: Laya.
  • Jev Decision Index, Expected calibration error: Row: Laya. Lower is better.
  • JevBench, Capability Score: Row: Laya. Intelligence 1.8, Calibration 63.2. Benchmark Heaven also lists Laya typed-decisions (44.2) and Laya multilingual (17.0). The board re-measures rows, so this can differ from earlier editions.
  • Jev Decision Index, Full score: Row: Laya. Counts 20% public benchmarks and 80% private tests; 0 is random guessing, 100 is perfect.
  • Jev Decision Index, Public score: Row: Laya.
  • Jev Decision Index, Expected calibration error: Row: Laya. Lower is better.
  • Convai README benchmarks, ECE after temperature fitting: Convai measured it; calibration error was 0.466 before fitting a temperature per question type on held-out data.

Comparisons

Head-to-head pages that put Laya against other models. Every model sits in one table on the compare hub.