01 / WHAT LAYA DOESWhat Laya actually does
Laya is an open-source System 1 decision-model family from Convai Innovations. Give it a business state and typed questions; it returns a choice, an ordinal score or a probability. It does not generate a reply token by token, write explanations or execute tools. “System 1” is a product metaphor for fast judgments, not evidence that the model reproduces human cognition.
A generative LLM can analyze a request and draft a response. Laya is closer to a dispatcher: which queue owns the request, whether it asks for a refund, how urgent it is. It can sit before an LLM as a router or after it as a checking component. Business rules, retrieval, a generative model or a person still complete the task. S01S02
| Desired result | Fit | Reason |
|---|---|---|
| Choose billing, technical or sales | Fits the interface | A bounded answer space works with choice |
| Detect an explicit refund request | Fits the interface | noul returns the probability of a true proposition |
| Rate urgency from 0 to 3 | Worth evaluating | score supports ordered levels; published ordinal results are weaker |
| Write a refund explanation or justify a risk flag | Not directly supported | No free-text output or validated reasoning explanation |
| Extract arbitrary names, amounts and dates | Not general extraction | Fixed candidates can be selected; open fields need a parser, extractor or LLM |
| Browse, call a payment API or repair code | Outside the model | It returns judgments, not a complete agent runtime |
| Establish whether a news claim is true | Scores alone cannot establish truth | Trusted evidence is needed; the model can assess supplied material against a proposition |
The practical assessment, as of September 23, 2026: Laya is worth evaluating as a small, locally deployable decision component. Its usefulness depends on the task, language, option count, fine-tuning data and calibration. The “33 ms” headline does not settle those questions. Performance figures throughout this guide are attributed to their published experiments; they are not new Coachix inference measurements.
Other projects called Laya
This guide covers NandhaKishorM/laya and convaiinnovations/laya. The aayushch/laya desktop notification assistant, the LAYA layer-attention paper at arXiv:2511.12723, and the EEG representation model at arXiv:2603.16281 are different projects. Their results do not belong to this decision model. S36S37S38
02 / OFFICIAL LINKS & TIMELINEOfficial links, versions and timeline
| Resource | What to use it for |
|---|---|
| Official project website | The author's positioning, research history and model family |
| Official GitHub repository | SDK, Router, presets, license and changes |
| Hugging Face model hub | Model cards, weights and configuration; the root and two subfolders contain three checkpoints |
| Interactive demo | Try the interface; shared-demo cold starts are not warm inference latency |
| PyPI package | Install the official Python library; old search snippets may show older versions |
| Author's DEV article | Early technical explanation, read alongside current code |
The observed PyPI release is 0.3.6, requiring Python ≥3.10, uploaded on September 22, 2026 at 20:43 UTC (September 23 at 04:43 in Beijing). Dependencies include PyTorch, Transformers, safetensors, huggingface_hub and NumPy. Code-level explanations use GitHub commit c7527708f9f5220c669d8aa385077cd28d04708a. A Git commit and a package version are different identifiers; they are not assumed to contain identical code. S08S09
| Date | Event | Relationship to today's model |
|---|---|---|
| December 18, 2024 | ModernBERT paper submitted | Background for the English and typed-decisions backbones |
| March 30, 2025 | SalesRLAgent preprint submitted | Earlier sales-conversion research, not the current Laya model report |
| September 8, 2025 | mmBERT paper submitted | Background for the multilingual backbone |
| September 23, 2025 | Confidence-Aware Routing preprint submitted | Earlier reliability-routing research, different from the current SDK Router |
| September 18, 2026 | PyPI 0.1.0 and DEV article | Early Laya release; some material still uses “RL Agent” |
| September 19, 2026 | PyPI 0.2 and 0.3 series | Rapid package changes make tutorial versions matter |
| September 21, 2026 | Independent sysone-bench v2 | Same-input comparison with Jev; routed Laya added afterward |
| September 23, 2026, Beijing | PyPI 0.3.6 observed | Version reference for this guide |
The website links the author's earlier research to Jev. That is the author's account of provenance and priority. Public material does not establish that Jev borrowed this project's code, weights or methods. Similar terminology is not proof of derivation. S01S10S22
03 / CHOOSE A CHECKPOINTChoosing among the three checkpoints
| Checkpoint | Encoder | Total parameters, per model card | SDK length configuration | Starting point |
|---|---|---|---|---|
convaiinnovations/laya |
ModernBERT-large | 421M | 512 tokens | English classification, email and routing |
convaiinnovations/laya-multilingual |
mmBERT-base | 322M | 1024 tokens | Chinese, other non-English text and multilingual traffic |
convaiinnovations/laya-typed-decisions |
ModernBERT-large | 421M | 1024 tokens | A specialist fine-tuned on four typed-decisions workflows |
The same checkpoints can be loaded from the main hub's root, multilingual and typed-decisions subfolders. Downloading one model does not load all three into memory. The model card's approximately 808 MB / 647 MB weight-size figures are not runtime memory promises. FP32, activations, intermediate tensors and request batches add memory use. S03S04S05
The context-length trap
A backbone's longer positional range does not mean Laya feeds an entire 8192-token document into its default model. The actual max_len values are 512 or 1024. Instructions, options and state share that budget. The corresponding head_max_len values are 192 / 256 / 256. The sequence constructor calculates remaining space from the actual question-head length; “about 320 / 768 tokens for state” is only an estimate. Special tokens and the question length change the remaining space. S11S14S15S16
By default, an overlong state keeps its beginning and loses its tail. A customer's final correction—“I already resolved this” or “the previous description was wrong”—may disappear. Raising the configured length requires fresh memory, latency and accuracy measurements. The backbone's maximum length is not a guarantee of useful performance.
An English specialist is still an English specialist
The typed-decisions checkpoint still uses English ModernBERT. Its English workflow advantage does not establish an advantage on Chinese tickets or alerts. Start a Chinese baseline with multilingual, compare it with suitable Chinese models, and evaluate any domain fine-tuning on samples in the target language.
04 / INSIDE A DECISIONInside a single decision
Follow one decision
Serialize state
Text, JSON and conversation lists become text. No tools or transactions execute.
Each question gets its own input sequence, approximately:
[CLS] question type + instructions [SEP]
[MASK] option A [MASK] option B … [SEP]
business state [SEP]
- Serialize the state. Text, JSON objects and conversation lists become textual representations. JSON describes the situation; it is not a database transaction and triggers no tool automatically.
- Render the question and options. The three question types have token budgets. The SDK handles literal
[MASK]text to prevent interference with option markers. - Encode in both directions. Tokens provide context to one another. The encoder does not repeat a next-token decoding loop.
- Apply type and decision heads. A question-type embedding is added to the encoded representation, followed by a two-layer Transformer decision head. A scorer reads each option marker's representation and produces its logit.
- Apply temperature and softmax. Temperature is selected by question type and option count, then logits are scaled and normalized into probabilities.
- Return typed values.
choiceselects the highest-probability option,scorecalculates an expected ordinal level, andnoulreturns the probability of truth. A separate act/escalate auxiliary head does not execute an action. S11S12
One forward pass still has a batch cost
Agent.system_one() builds one state-containing sequence per question, batches those sequences, then calls the model once. It avoids token-by-token generation, but repeats the state across question sequences. Work still depends on question count, length and padding. The official T4 measurements distinguish one question from fifty.
This also explains why usage.input_tokens can exceed the original state's token count: it counts valid input tokens across the batch. output_tokens = 0 means there is no generative output. Many questions or long text still require batch limits, request limits and memory monitoring.
Dynamic options versus a conventional classifier
A conventional classifier usually has a fixed label head established during training. Laya includes the option text in the input, so a request defines its answer space. This is flexible, but it does not make every new task accurate without training. New label meanings, industry vocabulary, rare events and fine distinctions can still exceed the model's ability.
05 / CHOICE, SCORE & NOULChoice, score and noul
| Type | Input definition | Main output | Interpretation |
|---|---|---|---|
choice |
A criteria dictionary of label keys and descriptions; label lists are also accepted |
choice and option probabilities |
Distribution across mutually exclusive options, usually summing to approximately one |
score |
An ordered criteria list, low to high |
score, legend and level probabilities |
Expected zero-based level; not necessarily an integer |
noul |
A proposition that can be true or false | noul |
P(true), a number from zero to one, not a Boolean |
For levels [Routine, Time-sensitive, Urgent] with probabilities [0.1, 0.3, 0.6], score = 0×0.1 + 1×0.3 + 2×0.6 = 1.5. The text does not literally belong to “level 1.5”; the number compresses an ordinal distribution. If an application needs an integer, choose and evaluate argmax, a ceiling rule or separate thresholds. Rounding is not automatically the correct policy.
A mutually exclusive choice loses information when a request is both a refund request and a complaint. Two noul questions can preserve those flags; alternatively, route the main intent and identify risk flags separately. Ambiguous questions, overlapping labels and an incomplete “other” category can force a confident but misleading choice.
Confidence is not always the largest probability
In the inspected implementation:
- For
choiceandscore,confidence = 1 − H(p) / log(K): normalized concentration of the distribution. - For
noul,confidence = max(P(true), 1 − P(true)). action.act_probabilitycomes from a separate auxiliary head. It is neither the selected option probability nor permission to act. S11S12
For [0.8, 0.2], the maximum probability is 0.8, but normalized-entropy confidence is approximately 0.278. A noul question with the same truth probability has confidence 0.8. Copying a “confidence ≥0.85 means automate” rule across types therefore creates very different behavior. Different types and option counts should not share an unevaluated threshold.
Returned probabilities are commonly rounded to four decimal places, so small sum errors are possible. Account for this precision in calibration calculations and logs. Do not take the logarithm of a rounded zero without an explicit numerical policy.
06 / RLCD & TRAINING DATARLCD, the training objective and data
RLCD means Reinforcement Learning for Calibrated Decisions. Laya's explanation describes a model reporting a probability distribution, exploring with noise on its logits, and receiving rewards from proper scoring rules rather than only from whether the winning class is correct. S03S10
In proper_reward(), targets may be one-hot labels or soft distributions. The reward combines log and spherical scores; ordinal score questions also subtract a Ranked Probability Score based on cumulative distributions. Omitting masks:
log score = Σ targetᵢ · log(qᵢ)
spherical score = Σ targetᵢ · qᵢ / ||q||₂
RPS = Σ (CDF(q)ᵢ − CDF(target)ᵢ)² / (K−1)
reward = log score + wₛ · spherical score − wᵣ · RPS (ordinal)
Proper scoring rules provide an incentive in expectation: under their mathematical assumptions, reporting the true conditional probabilities is optimal. Finite data, incorrect labels, distribution shift, optimization error and implementation clipping break the shortcut from that theory to guaranteed calibration. The code also floors the log score for numerical stability. Every individual output is not thereby mathematically guaranteed to be calibrated. S11S27
What the public fine-tuning notebook actually does
The 2×T4 notebook synchronizes gradients with DDP. It adds zero-mean-projected Gaussian noise to logits to produce groups of candidate distributions, uses the group's mean reward as a baseline, standardizes advantages and computes a policy-gradient term. It also adds soft cross-entropy with weight 1.0: loss_rl + 1.0 * loss_ce. The executable recipe is not an RL-only loss. S17
This detail explains more than the word “reinforcement”: label distributions provide supervision while sampling and rewards shape probability behavior. The notebook is a domain fine-tuning route. It is not automatically a complete, step-by-step reproduction of all three released models from initialization onward.
Keep the generations of data claims separate
| Material | What it describes | What that establishes |
|---|---|---|
| SalesRLAgent 2025 paper | GPT-4o-generated sales dialogues and Azure OpenAI embeddings | An earlier project's data and representations, not today's Laya |
| Laya author's announcement | A claimed corpus of 25,000+ human-annotated examples S50 | An author statement; independent reproduction needs source, version and split records |
| LocalLLaMA/typed-decisions card | Synthetic states and soft labels from repeated teacher-endpoint sampling | Later specialization/evaluation data, not entirely human gold labels |
| Public fine-tuning notebook | Samples constructed from the typed-decisions training split, followed by test evaluation | A specialization procedure, not general zero-shot ability |
A dataset's presence in a training mixture does not prove test-instance leakage. Different splits do not rule out every form of contamination either. Separate source overlap, duplicate examples, template overlap and learning a teacher's style. S17S18S23
07 / PROBABILITY CALIBRATIONCan the probabilities support a decision?
Change the temperature. Keep the winning option.
- Largest probability
- 0.665
- Entropy confidence
- 0.242
- Expected score
- 0.425
If a model reports 90% confidence on one hundred questions but gets only sixty right, it is overconfident. Accuracy measures selection correctness; calibration concerns the relationship between reported probabilities and long-run frequencies. Low ECE can also accompany uninformative probabilities, so inspect accuracy, Brier score, log loss and coverage together. S26
| Metric | What it measures | Common trap |
|---|---|---|
| Accuracy / Macro-F1 | Correct classifications and balanced class performance | A large majority class can hide minority failures |
| Brier score | Squared error between probabilities and labels | Sums, means and soft-label definitions are not interchangeable |
| Log loss / NLL | Probability assigned to the correct outcome | Zero probability is heavily penalized; implementations often use a floor |
| ECE | Binned confidence versus correctness | Binning, confidence definition and sample size change the value |
| Coverage / selective risk | How much is automated and how often those decisions fail | Post-threshold accuracy can hide a large rejected fraction |
| Score MAE | Distance between ordinal values | Different level scales cannot be compared directly |
Temperature scaling and its limits
Temperature scaling computes p = softmax(z/T). A positive scalar T for one question preserves the largest logit's identity; it changes the distribution's sharpness. T above one generally flattens it; T below one sharpens it. It cannot restore truncated evidence or repair a misunderstood label.
Upstream reports English ECE falling from 0.466 to 0.081 and multilingual ECE from 0.314 to 0.106 after fitting temperatures in a particular experiment. These are experiment-specific recalibration results, not promises for unseen production traffic. S06
The English configuration still contains an approximately 0.10058 temperature for choice:11+. The inspected SDK clamps temperatures to [0.5, 5.0] and warns about out-of-range values. Identical weights can therefore yield different probability behavior with different SDK code. Record package version, source commit and calibration file together. S11S12S14
A reproducibility detail that matters
The notebook fits temperature using all_items[::15][:400], where all_items contains training-process data. It does not read a fully independent calibration split for that step. For deployment, split training, calibration and final testing explicitly; do not treat the tutorial's sampling method as independent calibration evidence. S17
Plot threshold against coverage and error rate on the target distribution, choose thresholds from the cost of mistakes, and retain an abstention path. A threshold such as 0.85 is an example, not an industry standard.
08 / ROUTING LOGICHow the Router chooses a model
Router is a Python dispatcher, not another trained large model. The inspected priority is: explicit model → explicit task → opt-in workflow detection → explicit lang → script/language detection → default checkpoint. S13
Version-sensitive detail: auto_task_detection=False by default. Business-looking JSON does not automatically select typed-decisions. Use model="typed-decisions" or task="typed_decisions" explicitly. When automatic workflow detection is enabled, it matches known sets of question IDs; it does not understand which checkpoint is best for an arbitrary new business.
from laya import Router
router = Router()
router.preload(["english", "multilingual"])
# Inspect routing without running the neural network.
print(router.route({"body": "Please investigate a duplicate charge."}).reason)
# If the input language is already known, declare it explicitly.
result = router.predict(state, questions, lang="zh")
The default lazy-loading mode, max_loaded=1, limits resident memory. Alternating English and Chinese traffic can trigger eviction and rebuilding. Upstream measured median reloads around 7.4 seconds on CPU and 10.3 seconds on T4 in some scenarios. Preloading reduces this variability but uses more memory. Loading time and warm inference time are separate measurements. S02S13S21
Language detection can fail on short abbreviations, numbers, code, or English JSON keys mixed with Chinese values. Use lang when the language is known, and log the actual selection and reason from routing metadata. High confidence does not prove the language route was correct.
09 / OFFICIAL BENCHMARKSOfficial benchmarks, with their conditions
The following results come from BENCHMARKS.md and associated public result files. The project states that Laya checkpoints within one experiment are comparable, while quoted Jev numbers come from external runs with different samples and prompts. S06S19S20
Three checkpoints on typed-decisions
This test contains 400 cases and 2,000 decisions. Values below follow BENCHMARKS.md; small README differences such as 0.361/0.362 or 0.061/0.062 are not averaged together.
| Model or baseline | Accuracy | Soft accuracy | Brier | ECE | Score MAE |
|---|---|---|---|---|---|
| Laya typed-decisions | 0.766 | 0.471 | 0.061 | 0.213 | 0.242 |
| Laya English | 0.361 | 0.332 | 0.316 | 0.175 | 0.694 |
| Laya multilingual | 0.342 | 0.326 | 0.439 | 0.285 | 0.687 |
| Jev 1.13.0, externally quoted | 0.727 | 0.580 | 0.148 | 0.144 | 0.391 |
| Test-split majority baseline | 0.461 | — | — | — | — |
| Random baseline | 0.318 | — | — | — | — |
The specialist's workflow accuracies are approximately 0.804 for invoices, 0.766 for security incidents, 0.764 for customer service and 0.730 for agent traces. The base English and multilingual checkpoints fall below this test's majority baseline. That matters when choosing a checkpoint.
Teacher agreement is not a truth ceiling
The dataset card describes labels as the mean of three distribution samples from a teacher endpoint of roughly 4B-class capability. Scores measure agreement with that teacher. Its 0.735 self-agreement is a reference statistic, not a mathematical accuracy ceiling. Learning the teacher's preferences can exceed that number without proving better real-world decisions. The majority baseline of 0.520 over all 1,600 cases also differs from the 0.461 baseline of the 400-case test split. S18
Application tasks
| Task | English | Multilingual | Typed-decisions | Relationship to training |
|---|---|---|---|---|
| Spam | 0.993 | 0.993 | 0.958 | Source included in training mixture |
| Phishing | 0.980 | 0.993 | 0.940 | Source included in training mixture |
| Jailbreak / guardrails | 0.708 | 0.755 | 0.762 | Held-out source |
| Toxicity moderation | 0.530 | 0.525 | 0.530 | Held-out source |
| RAG passage relevance | 0.625 | 0.657 | 0.625 | Source included in training mixture |
| Support routing, 10 classes | 0.502 | 0.522 | 0.505 | Source included in training mixture |
| Model-routing domain classification | 0.639 | 0.123 | 0.659 | Held-out source |
Strong email results do not establish reliable general content safety. Toxicity accuracy is about 0.53 and Macro-F1 about 0.40, which does not support using the model as the sole safety layer. Domain classification also does not directly identify the cheapest sufficiently capable LLM for any request.
Speed needs a device and a timing boundary
| Questions per call | English / T4 | Multilingual / T4 | Interpretation |
|---|---|---|---|
| 1 | 39.5 ms | 32.8 ms | One warm question |
| 5 | 84.5 ms | 40.1 ms | Total batch latency |
| 10 | 158.6 ms | 72.3 ms | Multilingual averages about 7.2 ms/question; the whole batch is not 7.2 ms |
| 50 | 771.3 ms | 337.4 ms | More total latency, better per-question throughput |
These are Tesla T4 measurements, not a universal “33 ms” for every CPU, phone or server. A local process and a remote API include different network, queue, sequence-length and batching overhead. Speed ratios are scenario-dependent.
Large option sets and option order
The official Banking77 application experiment reports 0.425 for English, 0.425 for multilingual and 0.492 for typed-decisions. Many options share a small question-head token budget, shortening label descriptions and removing distinguishing information. The SDK does not have a hard 20-option interface limit; “roughly twenty or fewer” is practical advice for current defaults.
Possible approaches include a larger head/total budget, coarse-to-fine classification, or candidate retrieval. predict_shortlist uses caller-supplied embeddings to retrieve top-k candidates before deciding. That adds retrieval error and computation; it is no longer an all-options, end-to-end single forward pass. Test shuffled option order too: the official 20-option MASSIVE English experiment reports answer-flip rates of 0.15 / 0.23. S24
10 / INDEPENDENT COMPARISONSIndependent comparisons using the same inputs
instax-dutta/sysone-bench fixes states, questions, seeds and model versions, checking question SHA values for matching inputs. Its September 21, 2026 README v2 table covers 751 states across nine suites. Laya uses the English checkpoint on a local M2 CPU; Jev uses the remote jev-1.13.0 API. S34
| Suite | n, as reported in that table | Laya | Jev |
|---|---|---|---|
| Hand-curated support triage | 160 | 0.800 | 0.888 |
| Hand-curated guardrails | 60 | 0.883 | 0.967 |
| Hand-curated moderation | 90 | 0.833 | 0.989 |
| AG News, four labels | 100 | 0.940 | 0.910 |
| Emotion, six labels | 100 | 0.540 | 0.550 |
| Banking77, twelve-intent subset | 96 | 0.802 | 0.906 |
| MNLI, three classes | 60 | 0.983 | 0.867 |
| SST-5, five ordinal levels | 60 | 0.367 | 0.617 |
| Multilingual intent, five languages | 25 | 0.360 | 1.000 |
In the repository's v3 update, using the then-current Router raised Laya's multilingual intent score to 0.840. That test has only 25 samples. It suggests a direction; neither 0.840 nor 1.000 establishes broad language quality. Those English/Router runs also predate the code revision inspected here.
The results support neither “Laya beats Jev everywhere” nor “Laya has no value.” Laya performs strongly on AG News and MNLI, and its deployment and cost structure differ. The repository's REPORT.md still describes an earlier three-suite run with different figures. This guide keeps the named v2 table separate from that earlier report. S35
Reading a cross-vendor comparison
Control inputs, label counts, prompt lengths, calibration procedures, domain fine-tuning and model versions. Separate hardware execution from remote API latency: identical inputs improve accuracy comparisons but do not remove network or hardware differences. Small public tests still need a target-domain evaluation. The Coachix Jev guide covers the other model's interface and published limits.
11 / CHINESE & MULTILINGUALChinese and multilingual performance
“100+ languages” describes product and backbone coverage. The detailed public MASSIVE sweep covers 51 languages. “45 usable languages” means exceeding three times random accuracy: with twenty choices, random is 0.05 and three times that is only 0.15. This experimental threshold is not a production-quality standard. S04S06
| Language in the 51-language CPU sweep | English accuracy | Multilingual accuracy | Multilingual ECE |
|---|---|---|---|
| Simplified Chinese, zh-CN | 0.620 | 0.630 | 0.212 |
| Traditional Chinese, zh-TW | 0.460 | 0.540 | 0.327 |
| Japanese | 0.530 | 0.640 | 0.228 |
| Korean | 0.110 | 0.450 | 0.329 |
| Arabic | 0.110 | 0.400 | 0.341 |
| English | 0.820 | 0.680 | 0.209 |
| Macro average over 51 languages | 0.2269 | 0.3661 | 0.3869 |
This table and the fourteen-language T4 experiment are different sweeps. Combining their best per-language values would misrepresent the experiments. Above-random English-checkpoint performance on some Chinese examples does not make it the more reliable starting point; the model card recommends multilingual outside English.
For Chinese deployment, start with five sample groups: mixed simplified/traditional script, Chinese with English product names, colloquial support language and typos, domain abbreviations/numbers, and corrections at the end of long messages. Evaluate the language combination of state and instructions/criteria. Chinese state with English questions is not automatically equivalent to Chinese throughout. Preserve original text: translation can alter sentiment, negation and technical terms.
12 / RESEARCH PAPERSPapers: direct history, backbones and theory
As of September 23, 2026, official resources chiefly point to two earlier author preprints, current code, model cards and blogs. No clearly identified standalone technical paper fully documenting the training and evaluation of all three current Laya checkpoints was located in those materials. This is a boundary on the identifiable public material, not proof that no later paper exists.
A. SalesRLAgent: the earlier sales direction
SalesRLAgent: A Reinforcement Learning Approach for Real-Time Sales Conversion Prediction and Optimization. Nandakishor M, March 30, 2025, arXiv:2503.23303. Abstract · Full text · PDF.
The paper treats sales dialogue as a sequence for conversion prediction. It describes about 1.2 million synthetic conversations and 3072-dimensional Azure OpenAI embeddings, and reports results on that sales task. It helps explain the author's interest in probability trajectories and real-time decisions. It does not validate today's ModernBERT-plus-dynamic-option-head architecture. Its reported accuracy or conversion lift must not be relabeled as Laya performance. This interpretation uses the full text; preprint status does not establish peer review. S23
B. Confidence-Aware Routing: the earlier reliability direction
Confidence-Aware Routing for Large Language Model Reliability Enhancement: A Multi-Signal Approach to Pre-Generation Hallucination Mitigation. Nandakishor M, September 23, 2025, arXiv:2510.01237. Abstract · Full text · PDF.
This paper combines semantic alignment, layer convergence and learned confidence estimates to route requests toward local generation, RAG, a larger model or human review. That is a different design layer from choosing a Laya checkpoint by language. Its place in the author's research history does not make it a full training report for current RLCD models. Metrics belong to that paper's own experiments, not an independent reproduction in this guide. This interpretation uses the full text. S25
C. ModernBERT: the English backbone
Smarter, Better, Faster, Longer: A Modern Bidirectional Encoder for Fast, Memory Efficient, and Long Context Finetuning and Inference. Benjamin Warner and colleagues, 2024, arXiv:2412.13663. Paper.
The encoder-only model targets classification and retrieval, reporting 2T pretraining tokens and native 8192-token sequences. It explains why a classifier need not use a large decoder and the speed/memory choices of modern bidirectional encoders. Laya adds its own head and length constraints; backbone results are not Laya results. This account uses the abstract and official model material. S28
D. mmBERT: the multilingual backbone
mmBERT: A Modern Multilingual Encoder with Annealed Language Learning. September 8, 2025, arXiv:2509.06888. Paper · Model card.
The paper studies multilingual encoders and language-learning schedules. Its abstract describes 3T tokens and pretraining coverage exceeding 1,800 languages. That is a corpus-coverage statement, not evidence that Laya passed business evaluations in 1,800 languages. Laya multilingual uses mmBERT-base with additional decision components. This account uses the abstract and model card. S29S49
E. Calibration and reward theory
| Paper | Why read it | Boundary for Laya |
|---|---|---|
| Gneiting & Raftery, 2007, Strictly Proper Scoring Rules, Prediction, and Estimation | Why probability forecasts need proper scoring rules | Mathematical properties do not guarantee every finite-data neural prediction is calibrated S27 |
| Guo and colleagues, 2017, On Calibration of Modern Neural Networks | Temperature scaling and modern-network overconfidence | Fit on independent calibration data; scaling cannot repair semantic blind spots S26 |
| Schulman and colleagues, 2017, Proximal Policy Optimization Algorithms | PPO background for the earlier sales-RL account | The current notebook's policy-gradient procedure should not automatically be called a complete PPO implementation S31 |
| Devlin and colleagues, 2018, BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding | Bidirectional encoding and masked language modeling | Laya reads option positions marked by [MASK]; it is not filling in an entire article during inference S30 |
Also read MASSIVE (arXiv:2204.08582) and XNLI (EMNLP 2018) to understand what intent classification and cross-lingual inference measure. These are benchmark-background papers, not papers authored for Laya. S32S33
13 / BLOGS & ANNOUNCEMENTSReading the blogs and announcements
The official project website brings the checkpoints, performance, routing and deployment motivation together. It contains promotional claims and cannot replace the experimental methods or data. The author's DEV article provides more detail on the early architecture and reward function, but some naming still says “RL Agent.” Use current source code for API and probability-field semantics. S01S10
The article describes ordinary cross-entropy training as prone to overconfidence. That is a practical concern, but “cross-entropy cannot learn calibrated probabilities” is not a general mathematical result: the log score is itself proper. RLCD is this project's training design, not proof that it must be better calibrated than every supervised classifier. S27
TypeSafe's Jev launch post explains the industry context around choice, score, noul, System One and RLCD. Separate interface concepts, implementation and empirical comparison. Shared vocabulary does not establish identical internals. S22
The author's Hugging Face announcement helps identify the model and demo. Dataset sizes and training hardware described in release material and the Reddit post remain author statements, not independent verification. S44S50
Community runtime READMEs can be more useful than reposted summaries. MLX describes its timing boundary, C++ describes GPU backends, and Node documents ONNX weights and memory. The Chinese translation repository is an additional reading aid; resolve conflicts against the corresponding upstream revision. S39S40S41S43
14 / PYTHON QUICKSTARTA complete Python starting example
This example follows the public SDK interface for a local experiment. It prints actual returned values rather than supplying an invented prediction. Installation, weight downloads and inference were not run to produce the figures in this guide.
python3 -m venv .venv
source .venv/bin/activate
python -m pip install 'laya==0.3.6'
USE_TF=0 python demo.py
USE_TF=0 is an upstream compatibility recommendation. In some environments with TensorFlow installed, Transformers' framework detection can interfere with model construction. It is not an acceleration algorithm or a required fix on every machine.
# demo.py
import json
import laya
agent = laya.load("convaiinnovations/laya", subfolder="multilingual")
state = {
"subject": "Duplicate charge",
"body": "The same order was charged twice. Please investigate. "
"I have not requested a refund yet."
}
questions = {
"department": {
"type": "choice",
"instructions": "Which team should handle this message?",
"criteria": {
"billing": "Charges, invoices and payment issues",
"technical": "Application failures and bugs",
"other": "Requests unrelated to billing or technical support"
}
},
"refund_requested": {
"type": "noul",
"instructions": "Does the user explicitly request a refund now?"
},
"urgency": {
"type": "score",
"instructions": "How urgent is the request based only on stated facts?",
"criteria": [
"Routine", "Time-sensitive",
"Blocking or explicit immediate deadline"
]
}
}
result = agent.predict(state, questions)
print(json.dumps(result, ensure_ascii=False, indent=2))
print("actual_device:", agent.device)
The example deliberately contains negation: “I have not requested a refund yet.” Check whether the model incorrectly turns a duplicate charge into an explicit refund request. All example text is in English here; to evaluate Chinese, replace the state with original Chinese customer text and compare the instruction-language combinations described above. The example only prints results. It issues no refund, sends no email and changes no account. The first run normally downloads weights; a downloaded local model directory can be used afterward.
Consuming the result
For choice, read answer["choice"] and the matching probabilities[label]; for noul, read answer["noul"]. Read confidence separately when using distribution concentration for routing. Provide explicit handling for missing state, unknown labels, unreliable predictions and exceptions.
Built-in router_questions(), guard_questions(), moderation_questions() and triage_questions() are reusable schemas. They simplify integration but do not establish task quality in your language or data. S48
A similar interface is not an OpenAI chat API
Python predict and system_one are library calls, not Chat Completions or Responses API endpoints. Some community servers expose a Jev-style /v1/systemone; deployment and behavior follow that implementation's documentation. The official Python package is not a ready-made OpenAI-compatible chat service.
15 / DEPLOYMENT & COSTDeployment, hardware, cost and privacy
| Runtime | What it offers | What to check |
|---|---|---|
| Official PyTorch SDK | CPU and available CUDA / MPS devices; closest to upstream | Actual device, precision, length, switching and memory |
| Community MLX | Local Apple Silicon inference | Numerical parity with a named upstream version, device and question length |
| Community C++ / ggml | Native inference and CUDA/Vulkan paths | Converted weights, quantization, checkpoint and backend support |
| Node / TypeScript ONNX | Integration without Python | Export version, sequence limit, batches and memory |
| AXERA NPU package | Compiled graphs and examples for specified hardware | Fixed graph shapes; not general support for every desktop NPU |
The official SDK prefers available devices and can fall back to CPU when CUDA/MPS is unavailable or in some memory-error cases. The inspected version uses FP32 on CPU/MPS; CUDA precision also depends on device capabilities. Log the actual device: a cuda startup argument does not prove every request ran on a GPU. S12
CPU support does not mean every throughput requirement suits a CPU. Under concurrency, batching, queue latency, maximum text length and timeouts often matter more than a 33 ms example. Load the intended weights and warm the service before declaring it ready. A running process is not yet a model reliably serving requests.
Free weights do not mean zero total cost
Apache-2.0 code and weights reduce per-call API fees, but hardware, power, memory, operations, monitoring and evaluation remain costs. Compare deployment options using a task-specific estimate:
Monthly total ≈ compute + storage/network + operations time
+ labeling/evaluation + mistakes and human handoffs
Cost per useful decision = monthly total / decisions meeting the quality target
Low traffic and expensive GPU maintenance may favor an API. High volume, internal-only data or existing idle hardware may favor self-hosting. These are deployment trade-offs, not current price promises for a commercial service.
Local inference and network boundaries
Local inference can keep business inputs away from a model-cloud API. Initial weight downloads still use the network, and application logs, monitoring, error reports or subsequent LLM calls may send data elsewhere. An offline environment needs weights, dependencies and tokenizer prepared ahead of time, followed by observation of actual network behavior. Open source alone does not make the whole application offline.
16 / FINE-TUNING & EVALUATIONFine-tuning and designing your own evaluation
The official 2×T4 Kaggle notebook specializes the English model on typed-decisions. It includes mixed precision, gradient accumulation, gradient checkpointing, different encoder/head learning rates, distributed training and post-training temperature fitting. The website's approximately four-hour estimate belongs to a particular setup; it guarantees neither free GPU availability nor completion time for every account. S17
- Define a specific question, such as whether a ticket explicitly requests a refund, rather than “understand the customer.”
- Fix label descriptions and an abstention path. Handle multiple intents, missing evidence and contradictory state.
- Build representative samples. Split by user, time or incident so paraphrases of one event do not cross training and testing.
- Compare simple rules, a conventional classifier, base Laya and an appropriate generative model using the same inputs.
- Fine-tune only if needed, checking whether gains extend beyond the training source.
- Fit temperature and operational thresholds on an independent calibration split. Report final results on a frozen test set.
- Initially log recommendations beside human outcomes. Observe drift and failure types before expanding automation.
| Slice | Why inspect it separately? |
|---|---|
| Language, script variants and mixed-language text | Routing and tokenizer capabilities differ |
| Option count and description length | The head budget changes effective input |
| State length and location of key evidence | Truncation can remove the decisive information |
| Negation, quotations, reported speech and history | “Requested last time” is different from “requests now” |
| Minority classes and risky events | Overall accuracy can hide misses |
| Contradictions across questions | Individual accuracy does not guarantee a consistent overall decision |
| New businesses, products and time drift | The original calibration curve may stop applying |
The four typed-decisions workflows each have 300 training and 100 test cases: 1,200 / 400 total, with five questions per case. Two thousand decisions are not two thousand independent user events. Questions sharing a state are correlated. S18
17 / APPLICATIONS & POOR FITSUseful application patterns—and poor fits
Support triage. Supply the message, relevant order state and allowed queues; identify the main intent and urgency before a person or LLM writes a response. Invoice and charge facts should come from the business database. A classification probability is not an accounting lookup.
RAG. Provide a query and candidate passage to judge whether the passage supports a proposition. Evaluate the complete retrieval/reranking system. If a long passage is truncated, “irrelevant” may mean the model never saw the evidence near its end.
Model routing. Classify into bounded categories such as coding, translation and ordinary questions, then use predefined handling paths. Selecting by quality and cost requires task-specific outcome and pricing data; identifying the subject alone is insufficient.
Agent traces. Provide organized tool results and state to flag review needs or stalled work. Aggregate long traces deterministically and locate evidence before inference, instead of burying critical errors at the end of the context.
Security-alert assistance. Prioritize queues or suggest review to analysts alongside deterministic rules, dedicated detectors and human action. Published guardrail/moderation figures do not establish a comprehensive autonomous safety system.
Documents and invoices. A fixed approve/hold/reject recommendation can be one component. OCR, amount calculations, field matching and permission checks still need separate handling. A model score does not authorize a payment.
Poor direct replacements: complex multi-step planning, free writing, open-ended factual question answering, detailed legal interpretation of long documents, live-market fact checking, tool execution and cross-system transactions. Wrapping these jobs in several choice questions does not supply the missing reasoning or execution system.
18 / COMMUNITY RUNTIMESCommunity runtimes and projects
These are third-party implementations, not official performance guarantees. Their original READMEs explain platform constraints, setup, licenses and numerical compatibility.
| Project | Direction | Details worth checking |
|---|---|---|
| mizorewww/laya-mlx | Native MLX on Apple Silicon | Reports short-question M3 Max P50 of 13.42 ms English / 7.39 ms multilingual; inspect timing boundaries and small-sample parity, not a promise for every Mac S39 |
| lkarlslund/laya.cpp | Native ggml C++, CUDA/Vulkan | Its own tokenizer, computation and JSON output; several similarly named ports exist, so check the owner S40 |
| receptron/laya | Node.js / TypeScript, ONNX Runtime | Node ≥20; approximately 1.7 GB FP32 weights plus runtime memory, not the same as an instant browser demo S41 |
| AXERA-TECH/Laya | AX650 / AX8850 NPU3 | Fixed batch 1, sequence 256 and up to four options; different from the general SDK's 512/1024 configuration S42 |
| yangshun2005/laya-cn | Chinese translation | Follow the upstream revision the translation corresponds to S43 |
| instax-dutta/sysone-bench | Independent same-input evaluation | Read questions, versions, raw results and statistical definitions, not just the ranking S34 |
For a port, check both selected-label agreement and probability-distribution agreement. FP16, quantization, tokenizer differences and temperature handling can alter confidence-based routing even when most argmax labels stay the same. Interface compatibility is not identical behavior.
19 / LIMITS & OPEN QUESTIONSMisconceptions and remaining unknowns
| Claim | More accurate interpretation |
|---|---|
| It does not generate text, so it cannot be wrong | It avoids invented free-text passages but can misclassify, mis-score and be overconfident |
| 33 ms is a fixed response time | A specific warm T4 multilingual single-question measurement; service loading, network and queue time remain |
| High accuracy was verified in 100+ languages | Coverage claims differ from the 51-language experiment, whose “usable” threshold is not a production standard |
| 76.6% is the out-of-box default | It belongs to a specialized fine-tuned checkpoint; base checkpoints score much lower on that task |
| Dynamic options let it solve any task | An open schema does not guarantee domain generalization; option count and text budgets still matter |
| RLCD guarantees trustworthy probabilities mathematically | Ideal scoring-rule properties differ from actual training and calibration performance |
| Confidence 0.9 means a 90% chance of being right | Choice/score confidence is normalized entropy; noul uses another definition |
| Router automatically chooses the best model for every task | Current defaults mainly route language; typed-workflow detection is opt-in |
| Free weights mean free deployment | Compute, operations, labeling and error handling still cost resources |
| The author's two papers are today's Laya technical report | They describe research history with different tasks and implementations |
Three documentation boundaries deserve attention. First, BENCHMARKS.md references research/results/app_benchmark.json, which was missing from the inspected main tree and returned 404. The application table is traceable to the summary and script, not a claimed re-computation of every raw result. Second, the historical sales model and dataset are under DeepMostInnovations. Their model-card training-size descriptions differ from the 2025 paper; read each version separately rather than merging them into current Laya facts. Third, rapid repository updates mean old scoreboards do not automatically cover today's temperature clamps, routing and compatibility fixes. S06S20
Open questions include the complete base-training data inventory and splits, independent cross-domain calibration, real Chinese business evaluations, long-context and large-label stability, probability parity across ports, and a full training report for the current family. Missing public information should remain an open question.
20 / FAQ & READING PATHSQuestions and reading paths
Is Laya an LLM?
It uses pretrained language encoders and belongs to the language-model ecosystem. “Chat-style generative large language model” does not accurately describe its interface. A non-autoregressive typed-decision model is more precise.
Can it replace Jev directly?
Some input/output concepts overlap, and compatible community services exist. Behavior, option budgets, latency, deployment and support differ. Replay the same states/questions through both and compare correctness, probability quality and total cost before deciding to migrate.
Does it run on a Mac?
The official code includes MPS/CPU paths, and an MLX port exists. Check the device actually loaded and measure your samples. This guide does not present a benchmark of the reader's or author's computer.
Does it browse, remember or call tools?
Those are application functions. The surrounding system supplies state, retrieval and execution. Laya contributes a judgment within that workflow.
Can it read long chat histories?
Default total budgets are 512/1024 tokens, shared with the question head. Define the relevant time window and evidence, or design chunking and aggregation. Pasting an entire log does not mean every line was processed.
Where should I start reading?
Concept path: sections 1, 3, 5 and 19 → official website → model cards. Learn the input/output contract and the conditions behind the promises.
Engineering path: sections 4, 7, 8, 14 and 15 → agent.py, common.py, router.py → a small integration → your evaluation.
Research path: sections 6, 9, 10, 12 and 16 → the two earlier author papers → ModernBERT/mmBERT → calibration and proper scoring → raw official T4 results and independent sysone-bench.
All three paths lead to one practical question: is Laya better suited than your current system under your labels, languages, latency budget and cost of mistakes? For the larger assistant design, continue with Coachix's model-selection module, knowledge layer and tool connections. Open the Coachix console to work on your assistant; the console link is not a hosted Laya inference endpoint.
21 / GLOSSARYGlossary
| Term | Meaning in this guide |
|---|---|
| Checkpoint | A saved weight version; one SDK can load checkpoints with different abilities |
| Encoder-only | An architecture focused on input representations, useful for classification and retrieval |
| Non-autoregressive | No repeated decoding in output-token order; still involves computation and errors |
| Logit | An unnormalized option score before softmax, not yet a probability |
| Calibration | Agreement between probabilities and long-run correctness frequencies |
| Confidence | An SDK-defined output field whose exact formula matters |
| Temperature | A logit-scaling parameter that changes distribution concentration |
| Proper scoring rule | A scoring criterion that incentivizes reporting the true probability distribution |
| RLCD | Reinforcement-learning training framed around probabilistic decisions and calibration |
| Zero-shot | Applying a model without additional task-specific training |
| Held-out | Data excluded from a particular training process; specify whether instances or sources were held out |
| Teacher soft labels | Probability-distribution labels from a teacher, potentially including the teacher's biases |
| Argmax | The largest-probability option; distinct from the quality of the whole distribution |
| Preload / cold start | Keeping a model resident ahead of time / the first loading and construction cost |
| Shortlist | Retrieving a small candidate set first, adding a candidate-recall stage |
22 / SOURCESSources and further reading
The fifty references below distinguish official material, implementation, papers, independent experiments and community ports. Each entry explains its relevance and reading scope. Citation numbers in the article jump to the matching entry. Ten papers provide research history or technical background; two other same-name papers are included only for disambiguation.
50 of 50 references
No references match. Try a shorter term or select all types.
- Official Laya website
Project positioning, checkpoint family and deployment motivation. Read performance claims with the experimental conditions.
- Official Laya GitHub repository
SDK, routing, presets, license and limits. The main branch changes over time.
- Laya English and family model card
Three checkpoints, weights, architecture, training summary and limitations.
- Laya Multilingual model card
mmBERT-based checkpoint, language sweep and configuration.
- Laya Typed Decisions model card
Domain specialization; its scores must not be attributed to the base checkpoint.
- Official BENCHMARKS.md
Language, application, latency, calibration and limitation tables from several experiments.
- Laya demo Space
Online interface; shared-resource waits and cold starts differ from warm inference.
- PyPI laya
Official package; observed release 0.3.6 and Python requirement of at least 3.10.
- PyPI release and dependency JSON
Upload times, Python compatibility, dependencies and release history.
- Author's DEV article: I Built Non-Autoregressive Decision Models…
September 18, 2026 article on the early architecture and RLCD. Compare naming and marketing claims with current code.
- common.py: sequences, decision heads, rewards and confidence
Computation path, truncation, entropy confidence and temperature limits.
- agent.py: loading and typed output
Device fallback, batching, choice/score/noul fields and usage accounting.
- router.py: selection priority
Workflow detection is disabled by default; language routing, preloading and eviction.
- English rl_agent_config.json
512/192 token budgets and temperatures, interpreted with the SDK's current clamps.
- Multilingual rl_agent_config.json
1024/256 budgets; type temperatures initially one, without fitted option-count buckets.
- Typed-decisions rl_agent_config.json
Specialist length limits, temperature and training metadata.
- 2×T4 Kaggle fine-tuning notebook
DDP, noisy policy gradients, soft cross-entropy, calibration and testing. Code was read, not executed for this guide.
- LocalLLaMA/typed-decisions dataset card
Four workflows, splits, soft teacher labels, baselines and metric definitions.
- Official raw T4 results
JSON for the 17,416-question experiment, including samples and metrics.
- bench_apps.py: application benchmark
Dataset sources and task construction. The cited app_benchmark.json was missing from the inspected tree.
- bench_latency.py: latency and loading
Separates language detection, warm calls, cold switching and model residency.
- TypeSafe: Introducing System One Models and Jev
First-party explanation of a related product, not evidence of Laya implementation or priority.
- SalesRLAgent, 2025
Earlier sales-conversion RL work; the full HTML was read. Not the current Laya technical report.
- shortlist.py: candidate retrieval
Caller-provided embeddings narrow candidates before classification; consider recall loss and added computation.
- Confidence-Aware Routing, 2025
Earlier multi-signal reliability routing; different from today's language-checkpoint Router.
- Guo et al.: On Calibration of Modern Neural Networks
ICML 2017 background on temperature scaling, calibration and overconfidence.
- Gneiting and Raftery: Strictly Proper Scoring Rules
JASA 2007 mathematical foundations for probabilistic prediction and proper scores.
- ModernBERT: Smarter, Better, Faster, Longer
English backbone paper; encoder context length is not Laya's default total length.
- mmBERT: A Modern Multilingual Encoder with Annealed Language Learning
Multilingual backbone; pretraining language counts are not business-task coverage.
- BERT: Pre-training of Deep Bidirectional Transformers
Bidirectional encoding and MLM background; option-marker inference is described in Laya code.
- Proximal Policy Optimization Algorithms
PPO background; do not equate the current notebook's entire training recipe with PPO.
- MASSIVE: A 1M-Example Multilingual NLU Dataset
Background for the 51-language intent task and its evaluation scope.
- XNLI: Evaluating Cross-lingual Sentence Representations
Cross-lingual natural-language inference, not open-ended question answering.
- sysone-bench README: independent same-input comparison
Nine-suite v2 table and v3 Router update; local and API latency still include different overhead.
- sysone-bench REPORT: earlier three-suite run
An older run than README v2; preserve its sample and uncertainty boundaries.
- The other Laya desktop assistant
Notification management and action cards, not the decision model covered here.
- LAYA: Layer-wise Attention Aggregation
Gennaro Vessio's output-head aggregation research; a different model identity.
- Laya: A LeJEPA Approach to EEG
An EEG representation model with different authors and tasks.
- mizorewww/laya-mlx
Apple Silicon runtime; inspect M3 Max setup, timing boundaries, versions and probability parity.
- lkarlslund/laya.cpp
Native ggml inference with CUDA/Vulkan; distinguish this repository from similarly named ports.
- receptron/laya
Node/TypeScript ONNX implementation with its own weight and memory requirements.
- AXERA-TECH/Laya
NPU3 package: batch one, sequence 256, up to four options and dedicated hardware.
- yangshun2005/laya-cn
Chinese reading aid; its revision can lag upstream.
- Author's Hugging Face Laya announcement
First-party model description and demo links; training-size claims remain author statements.
- Historical SalesRLAgent model card
DeepMostInnovations' earlier PPO sales model has different interfaces, licensing and data claims.
- Historical SaaS sales-conversations dataset
Earlier project data, not a complete training inventory for today's three checkpoints.
- Laya research README
Experiment scripts, raw results and explicit limits of non-simultaneous Jev comparisons.
- presets.py: built-in question sets
Model routing, guardrail, moderation and triage schemas; presets do not guarantee task quality.
- jhu-clsp/mmBERT-base model card
Multilingual backbone configuration, pretraining background and usage.
- Author's r/LocalLLaMA Laya announcement
Author statement of 25,000+ human-annotated examples, not independent verification of complete training data. The original research used the announcement excerpt; the post was reopened for this English edition.