Signal live · Base

Laya Research

An open, non-autoregressive decision engine that returns calibrated probabilities in about 33 milliseconds, and the Base coin that carries the same name.

The engine

Reflex decisions, not a chatbot.

Drawn from the September 2026 research note by Nandakishor Mukkunnoth, ConvAI Innovations. Read the source.

Most pipelines still call a generative model for a label. Laya answers typed questions in one forward pass and never writes a sentence.

System 1 32.8 ms · Apache 2.0
2025

The first papers

March 2025 brought arXiv:2503.23303, PPO over sequence representations, turn-by-turn conversion probabilities, the Hugging Face weights sales-conversion-model-reinf-learning, and the open saas-sales-conversations set. September 2025 formalized schema decisions in arXiv:2510.01237. Reinforcement learning stayed the guide, not a plain embedding model.

2026

Then Jev arrived

TypeSafe AI, founded by Diogo Almeida, shipped Jev as a non-autoregressive decision product: RLCD, horizontal confidence distributions, about $0.042 per million input tokens, and responses near 150 ms. No papers, no open weights, no open training set. Laya is the open reply: bidirectional encoders, 32.8 ms on one GPU, 7.2 ms per question when batched, 100+ languages, no API meter.

S1

System 1 versus System 2

Routing a ticket, flagging phishing, scoring urgency from 0 to 3, or spotting a jailbreak does not need an 8B or 70B model to stream tokens for half a second to two seconds. A quoted confidence from an LLM is just more tokens. Laya’s probabilities are the output, so they can be calibrated.

Primitives

Three questions. One pass.

Any state works: raw text, an email, a ticket, or a JSON document. The output is only numbers, so a malformed schema cannot appear.

choice

Pick one key from a dictionary of criteria. You get the winner, the full distribution, and a calibrated confidence.

score

Place the state on an ordinal rubric. You get the expected level, the mass on each rank, and a confidence.

noul

A yes-or-no question. P(true) sits between 0 and 1, and P(false) is one minus that value by construction.

Checkpoints

Three models, one hub.

No single encoder is best at every language and task. All three live under convaiinnovations/laya. The SDK pulls only the subfolder you name, so you skip the full 2.5 GB bundle.

Checkpoint Encoder Params Context Where it leads
laya ModernBERT-large 421M 512 English classification, guardrails, email triage
laya-multilingual mmBERT-base, 256k vocab 322M 1024, up to 8k 100+ languages, about 2.2× faster, cross-lingual NLI
laya-typed-decisions ModernBERT-large 421M 1024 Agents, support, invoices, security alerts, 0.766 accuracy
agent_en = laya.load("convaiinnovations/laya")          # English, ~808 MB
agent_ml = laya.load("convaiinnovations/laya", subfolder="multilingual")  # ~647 MB

Routing

Confidence will not warn you.

On MASSIVE, 20 options, chance is 0.050. ModernBERT-large’s 50k English vocabulary shreds other scripts, and the model stays sure of itself anyway. Across 51 languages its mean confidence never fell below 0.885, whether accuracy was 82% or zero. Pick the checkpoint before the forward pass.

ScriptAccuracyMean confidence
Khmer0.0000.952
Armenian0.0500.885
Hebrew0.0600.964
Bengali0.0800.945
Hindi0.1000.941
0.09 ms

English

Unicode script scan plus Latin stopwords. Overhead stays under 2% of a 33 ms pass.

0.54 ms

Indic

Devanagari and the other 21 alphabets the router knows, including CJK, Cyrillic, Arabic, Hebrew, Tamil, and Thai.

0.73 ms

Nested JSON

A 200-row document. Router(preload=True) keeps the checkpoints resident and skips a 7–10 second cold swap.

Head to head

Routed Laya against Jev 1.13.0.

Laya figures are measured. Jev figures come from TypeSafe and from independent write-ups by AbdelStark and nibzard.

MeasureJev 1.13.0Laya, routedDelta
typed-decisions, 2,0000.7270.766+3.9%, above a 0.735 teacher
AG News, 4 labels0.9100.950+4.0% accuracy
DAIR Emotion, 6 labels0.480, Brier 0.8460.595+11.5%; Jev put 16% at zero probability
Calibration error (ECE)0.2460.081About 3× tighter
Latency p50, 1 question236–276 ms32.8 ms7.8× faster
Latency p50, 10 questions~1,500 ms serial72.3 ms, 7.2 ms eachAbout 20× on a batch
Languages above 3× chanceUnpublished45 of 51Coverage, not a single script
Cost per 1M tokens$0.042 API$0 self-hostedApache 2.0 weights
Weights and codeClosed APIOpen safetensorsRuns on-prem and air-gapped
0.993

Enron spam

Accuracy and F1 both 0.993. ECE 0.013.

0.980

Phishing

Accuracy 0.980, F1 0.979, ECE 0.012.

0.931

ToxicChat guardrail

Held-out accuracy 0.755–0.762. At 50% coverage it reaches 0.931.

0.657

RAG relevance

Passage filtering in a single forward pass.

0.522

10-way queues

Support ticket routing across ten destinations.

Ceilings

Where the score stops climbing.

01

More than 20 choices

Banking77 has 77 labels. Laya scored 0.425 there; Jev scored 0.870. Options share a 192–256 token head budget, so each candidate gets only a few tokens. Keep schemas under 20 options, or split them coarse-to-fine.

02

Zero-shot is not the 0.766

Untuned base weights land near 0.35 on typed-decisions, close to chance. The 0.766 number is after fine-tuning on that benchmark’s train split. Treat the release as a fast base to specialize.

03

One temperature per question

Shipped weights use raw temperature logits. A single scalar per question type, fit on your own distribution, moved expected calibration error from 0.466 to 0.081.

Quickstart

Installed in one line.

pip install "laya>=0.3.3"

from laya import Router
router = Router(preload=True)

state = {"subject": "API down since 6 AM", "body": "We lost transactions. Refund the SLA."}
questions = {
    "queue": {"type": "choice", "instructions": "Which queue owns this?",
              "criteria": {"infrastructure": "outages", "billing": "refunds"}},
    "urgency": {"type": "score", "instructions": "How urgent?",
                "criteria": ["low", "medium", "high", "critical"]},
    "churn": {"type": "noul", "instructions": "Is the customer about to leave?"},
}
res = router.predict(state, questions)

English text routes to ModernBERT-large. Hindi and other non-Latin scripts route to mmBERT-base. Pass model="typed-decisions" when you already know the domain.

Supply

One billion samples.

Total supply 1,000,000,000 $LAYA
  • Buy / sell tax 0% / 0%
  • Chain Base
  • Liquidity Burned at launch
  • Presale None

How to buy

Four steps into the pool.

  1. 01

    Open a wallet

    Use a wallet that speaks Base. MetaMask, Coinbase Wallet, or Rainbow all qualify.

  2. 02

    Fund Base ETH

    Bridge or withdraw a little ETH onto Base. Gas here is a whisper, not a toll.

  3. 03

    Swap for $LAYA

    Open Uniswap, select Base, and trade ETH for Laya once the contract is live.

    Buy
  4. 04

    Watch the orbit

    Pin the chart. The spiral is easier to read when you can see every sample.

    Chart

Join us

The lab door is glass.

Charts, chat, and the buy button. Pull up a stool. The orbit has room.

Buy Chart