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.

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

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.
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. Browse all examples.

Alternative

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.

ChoiceScoreNoul
Project

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 Core ML buckets on the Neural Engine, and a community CoreML port measured 3.7 ms per decision on an M5 Pro, about seven times faster than the upstream GPU figure.

Project

Laya Ultrafast

A local, open-weight port of browser-use's jev-ultrafast agent that swaps Jev's hosted decisions for Laya running on Apple Silicon through MLX, while keeping the original hosted Jev policy as a fallback mode.

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.

Tool

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.

ChoiceScoreNoul
Tool

laya_ex

A native Elixir runtime for Laya built on Nx and Bumblebee, downloading the official checkpoint on first load and answering typed choice and noul questions in-process.

ChristianAlexander13Openlaya_ex on github.com
ChoiceNoul