Text classification with Laya
A Laya `choice` question is a zero-shot classifier. You name the labels, optionally describe each one, and get the top label with a probability for every option in one forward pass. Labels are defined at request time, so there is no training step to get started.
252 projects
laya
NandhaKishorM
Runs multilingual typed-decision models and provides routing, serving, and integration options
laya
convaiinnovations
A multilingual-ready System 1 model that returns calibrated typed decisions over text in one pass
openJev-verdict-2.0
Heman10x-NGU
Develops and benchmarks a non-autoregressive typed-decision model against Jev and Laya
laya-multilingual
convaiinnovations
A multilingual System 1 model that returns calibrated typed decisions over text in one pass
laya-demo
convaiinnovations
A Gradio demo for Laya typed decisions, multilingual routing, moderation, and RAG filtering
laya-typed-decisions
convaiinnovations
A Laya model fine-tuned for agent traces, customer service, invoices, and security incidents
stuntd
bladedevoff
Learns typed decision heads on a frozen Laya encoder and serves them through Jev- and OpenAI-compatible APIs
layaForWeb
vishalmysore
Runs a quantized ONNX version of the Laya decision model entirely in the browser
laya-goish
centillex-labs
Runs Laya GGUF models in a Rust HTTP server for structured text decisions
laya-drift
pythongiant
Monitors opencode sessions for semantic drift using Laya typed-decision probes
WechatVibe
tswawa
Analyzes WeChat conversations for intent, emotion, and participant profiles using Laya models
laya-jev-lab
yibie
Compares Jev and Laya decision models and evaluates a local-first inference cascade
gg-friggin-ez
ItisShikhar
Screens Node.js text for profanity and toxicity using Jev and Laya System 1 models
jevbench
dhruvmehra
A reproducible benchmark compares JEV, Laya, and other classifiers across datasets and metrics
layaForWorkflows
vishalmysore
Runs browser-based Laya decisions to automate branching workflows
laya-typed-decisions-mlx
aac6fef
Runs Laya typed-decision inference natively on Apple silicon with MLX
vgi-laya
lmangani
Runs local Laya inference in DuckDB to filter, classify, and score rows
omp-laya-judge
F0Rextasy
Adds a local Laya-powered decision judge and MCP server for oh-my-pi
headroom
llm-learner
A local-first Codex plugin estimates prompt load using Laya scoring
laya-jev-benchmark
Luni
Benchmarks Laya against Jev and other models on phishing detection and calibration
pastewhat-ranker-v1
mizorewww
Distills a candidate-aware clipboard ranker into Laya multilingual for local inference
laya-vision-demo
thaitea
Demonstrates calibrated image-based yes/no, choice and rubric decisions with Laya Vision
laya-multilingual-demo
abhishekbhakat
Demonstrates multilingual Laya typed decisions and probabilities through a Gradio interface
laya-grounded
Luni
Fine-tunes Laya to improve grounding, contradiction handling, and calibration
Example
From the core README:
from laya import Router
router = Router()
questions = {
"department": {"type": "choice", "instructions": "Which department should handle this?",
"criteria": {"billing": "invoices, payments, refunds",
"technical": "bugs, outages, system errors",
"other": "everything else"}},
}
result = router.predict("La aplicación se cierra cada vez que abro la configuración.", questions)
print(result["answers"]["department"]["choice"]) # technical
Each answer includes probabilities for every label and a confidence value you can gate on.
Label count matters
All options share a token budget (head_max_len: 192 on laya, 256 on the other two checkpoints). The README reports Banking77 (77 labels) at 0.425 for Laya against 0.870 for Jev on 72 labels, because each label gets only 3 to 4 tokens. Keep a question under about 20 options, or raise head_max_len, split into coarse and fine questions, or use predict_shortlist with embeddings.
Accuracy you can expect
- The core README lists AG News 0.947 and DAIR Emotion 0.573 for the English checkpoint.
- sysone-bench ran Laya and Jev on byte-identical inputs: AG News 0.940 vs 0.910, emotion 0.540 vs 0.550, and a 12-intent Banking77 subset 0.802 vs 0.906.
- jevbench (dhruvmehra) compares Jev, Laya, LLMs, fine-tuned DistilBERT and zero-shot NLI on SST-2, AG News and Banking77.
Fine-tune when zero-shot is not enough
The base checkpoints score 0.362 and 0.352 on the README's typed-decisions benchmark. The fine-tuned laya-typed-decisions checkpoint reaches 0.766. The fine-tuning notebook runs on Kaggle's free 2x T4 GPUs.
Projects
ollaya serves Laya alongside zero-shot NLI and GLiClass classifiers behind one API. edgejev reports AG News accuracy for fp32 and INT8 CPU builds.
Caveats
The README warns against boolean-word labels such as yes/no or true/false in choice questions, and it reports failures on negated requests. Use descriptive labels and test on your own data.
More ways to use Laya