Laya · licence and weights
What is in the box
"Open weights" is four words standing in for three separate facts: what the licence permits, what the files contain, and what the publisher is still holding. They are worth separating because the answer is different for each — and because the difference decides whether you can ship this, retrain it, or only run it.
In short
- The licence is Apache-2.0, read from the model card's frontmatter, and the card tags the release `commercial-use`.
- Each checkpoint is one file: 843 MB for the English one, 644 MB for multilingual. Encoder and head travel together inside it.
- The training corpus is not published. You can run, modify and ship the weights; you cannot reproduce them.
- The head is two layers on a full ModernBERT-large, and the shipped config says the fine-tune was 7,313 updates in about two hours on one machine.
- The benchmarks in the comparison are other people's datasets — Banking77, AG News, SST-5, DAIR Emotion — each with its own terms, none of them covered by this licence.
The licence line
| Covers | What it means in practice |
|---|---|
| Weights, all three checkpoints | Apache-2.0 permits commercial use, modification and redistribution. Keep the notices and the licence text with anything you ship. |
| The Python package and the server | Same licence, same obligations. `pip install "laya[serve]"` gets you the code; the weights come from the Hub on first load. |
| The TypeScript port and the integrations | In the same repository, under the same licence. |
| The encoder inside each checkpoint | Third-party: `answerdotai/ModernBERT-large` for the English and typed-decisions checkpoints, mmBERT-base for multilingual. Permissive, but they are separate projects with their own names and notices. |
huggingface.co/convaiinnovations/laya Verified 2026-09-24 Frontmatter licence field, plus the file list in the downloaded snapshot.We are not lawyers and this is not advice; the frontmatter is quoted so you can check it. One thing the licence deliberately does not settle: what the model learned. Apache-2.0 attaches to the artifact, not to the corpus it was built from. If the training data contained something with its own terms, this licence does not launder it — which is true of every open weights release and is worth remembering when one of them is used commercially.
What the download contains
Three checkpoints, one file each, downloaded from the Hub on first load. The sizes below are the files themselves rather than a summary of them:
| Checkpoint | Model file | Contains | Context |
|---|---|---|---|
convaiinnovations/laya | 843 MB | ModernBERT-large encoder + the decision head | 512 |
convaiinnovations/laya-multilingual | 644 MB | mmBERT-base encoder + the head | 1,024 |
convaiinnovations/laya-typed-decisions | 843 MB | ModernBERT-large encoder + a head fine-tuned on four workflows | 1,024 |
downloaded snapshot, file sizes read locally Verified 2026-09-24 All three together: 2.3 GB for all three checkpoints; 843 MB for the English one alone, encoder included. The encoder and head are bundled, which is why the numbers are large relative to "a two-layer head on a 421M encoder" — you are downloading the encoder as well, in bf16. The repository's `encoder/` folder holds only a `config.json` naming the upstream encoder; the weights sit inside the checkpoint file next to the head that reads them.
Everything else in the package is small. The Python wheel is 104 KB and depends on torch, transformers and, for the server, FastAPI and uvicorn. If you want the smallest install that answers decisions, it is the checkpoint plus a Python environment — no key, no account, no call home.
How the weights were made, as far as the artifact says
The checkpoint ships its own training configuration, and reading it is more informative than any summary — it is the difference between "trained with reinforcement learning" and knowing what that meant in machine-hours.
| Key | Value |
|---|---|
| Encoder | answerdotai/ModernBERT-large |
| Head layers | 2 |
| Updates | 7,313 |
| Epochs completed | 1 |
| Hours | 1.96 |
| World size | 1 |
rl_agent_config.json inside the checkpoint Verified 2026-09-24 A two-layer head on a frozen-in-place encoder, 7,313 updates over one epoch in about two hours on one machine. The card's own framing agrees with the arithmetic: it calls the base checkpoints near-chance on its hard benchmark and says the 0.766 belongs to the checkpoint fine-tuned on that benchmark's training split. What that means for you is that these weights are a starting point with a strong architecture and a cheap fine-tune loop, not a finished model that knows your domain.
What the four words do not cover
| Not in the box | Why it matters |
|---|---|
| The training corpus | Nothing in the release describes it. You cannot audit what the model learned, and you cannot rebuild the artifact from scratch. |
| The benchmark datasets | Banking77, AG News, DAIR Emotion and SST-5 belong to other people and carry their own terms. The published comparison is a claim about those sets, not a licence to redistribute them. |
| The Jev column in the comparison | Those figures are third-party measurements of a closed model. No licence covers them, and the publisher is explicit that it never reproduced them. |
| The calibration in the shipped config | Of the six fitted temperatures in the artifact, one is outside the range its own library accepts — so the advertised calibration is not the one running for choice questions with eleven or more options. Fit your own; see self-hosting. |
The rest of what ships
- An HTTP server that speaks TypeSafe's wire protocol —
pip install "laya[serve]", thenlaya-serve, which answersPOST /v1/systemone. - A TypeScript package (
laya-ts) for Node and the browser, documented as returning the same answers as the Python one. - An MCP server, and LangChain / LangGraph integrations, as optional extras.
Router(), which detects the script of the incoming state and picks a checkpoint for you.
Repository: github.com/NandhaKishorM/laya · model card: convaiinnovations/laya · package: pypi.org/project/laya.
Licence line quoted from the card: Apache-2.0.
The three checkpoints are not interchangeable, and the differences are licence-relevant only in that they are all the same licence. What changes is the encoder underneath: a 322M multilingual model against two 421M English ones, which is why the multilingual file is the smaller download and the faster one.
What this page cannot tell you
It cannot tell you whether the weights were trained on data you would object to, because the corpus is not described anywhere in the release. It cannot tell you whether the Apache-2.0 grant is clean in your jurisdiction if a dataset inside that corpus had its own terms — that is a question for a lawyer, and the honest version of it is that "open weights" and "clean provenance" are different claims. And it cannot tell you how the model performs after you fine-tune it, which is the only version of it you would ship.
Is Laya really open source?
The licence is: `apache-2.0` in the model card's frontmatter, for all three checkpoints, and the card tags it `commercial-use`. The training data is not published, so 'open weights' rather than 'open model' is the accurate phrase. You can run it, modify it, ship it and sell what it does; you cannot reproduce how it was made.
Can I use Laya commercially?
The weights and the Python package are Apache-2.0, which permits commercial use, modification and redistribution, with the usual notice requirements. The encoder inside each checkpoint comes from a third party (`answerdotai/ModernBERT-large`, and mmBERT-base for the multilingual one) — both are permissively licensed too, but they have their own notices and their own repositories.
What exactly is in the download?
One file per checkpoint: 843 MB for the English one, 644 MB for multilingual, 843 MB for typed-decisions. That single safetensors file carries the encoder weights and the decision head together — the repo's `encoder/` folder contains only a `config.json` that names the upstream encoder. The Python package that runs it is 58 KB.
How was it trained?
The shipped config records the shape: a two-layer head on ModernBERT-large, 7,313 updates, one epoch, about 1.96 hours on a single machine, fine-tuned from a checkpoint. That is the whole of what the artifact says about its own training; the corpus is not described.