Code and dense tables are folded away. Open any of them on demand.
What are choice, score and noul questions?
Choice, score and noul are the three question types in the /v1/systemone protocol that Laya uses. A choice question picks one label from options you define, a score question places the input on an ordered scale and returns the expected level, and a noul question returns the probability that a yes/no statement is true.
Look at the decisions a support desk, a moderation queue or an AI agent makes all day and a small number of shapes keep recurring:
- Pick one of several labels. Route to billing, technical or sales. Choose a tool. Assign an intent.
- Place something on an ordered scale. Urgency from low to critical. Severity from none to severe. Frustration from calm to angry.
- Estimate whether a statement holds. Is this phishing? Did the user ask for a refund? Does the message contain personal data?
Statistically these are multi-class classification, ordinal regression and binary probability estimation. The Jev /v1/systemone protocol names them choice, score and noul, and Laya implements the same three. Using one request format for all three matters in practice: a ticket usually needs several of them at once, and they should share one read of the input.
choice: pick one label from a set you define
A choice question has a map of labels to descriptions (or a plain list of labels):
Show technical detailsHide technical details· json sample
Laya renders each option as label: description, places a [MASK] marker before each one, and reads one logit per marker. The softmax over those logits is returned as probabilities, the argmax as choice, and a normalised-entropy confidence:
Show technical detailsHide technical details· text sample
Note that this is stricter than the top probability. A four-way answer with probabilities 0.91 / 0.04 / 0.03 / 0.02 has a top probability of 0.91 but a confidence of about 0.71, because the leftover mass is still entropy. Pick thresholds on the field you actually gate on.
Where choice is weak: high cardinality. All options share one budget of 192 tokens (English) or 256 tokens (multilingual). With dozens of options each label gets only a few tokens, and the model card reports 0.425 on 77-label Banking77, against 0.870 published for Jev on 72 labels. Keep sets under about 20 options, or split coarse-to-fine.
score: an ordinal scale with an expected value
A score question takes an ordered list of level descriptions, index 0 first:
Show technical detailsHide technical details· json sample
Laya scores each level at its own marker, like a choice, and returns three things: the distribution over levels, a legend mapping indices to your descriptions, and score, the expected level:
Show technical detailsHide technical details· text sample
With probabilities 0.05 / 0.22 / 0.58 / 0.14 the score is about 1.82: mostly "clearly annoyed", pulled slightly down by the "concerned" mass. The expected value is useful for sorting and for SLA timers, because it moves smoothly as evidence accumulates. If you need a discrete level, take the argmax of probabilities rather than rounding score, since a bimodal distribution can have an expected value that sits on a level with little mass.
Order matters for training too. For score questions Laya's reward adds a ranked probability score (RPS), which compares cumulative distributions and so penalises a prediction of "severe" more than "clear violation" when the truth is "mild". Plain log loss treats all wrong levels alike. See proper scoring rules.
Where score is weak: the card calls it "the weakest primitive", reporting 0.372 on five-class SST-5 sentiment. Use few, clearly separated levels with concrete descriptions.
noul: a calibrated probability that a statement is true
noul is a binary question whose answer is a probability rather than a boolean:
Show technical detailsHide technical details· json sample
Internally it is always a two-option question in the order false, true. If you omit criteria, Laya uses default descriptions ("no, the statement does not hold" / "yes, the statement holds"). The response carries noul, the probability of true, and a confidence defined for the binary case as:
Show technical detailsHide technical details· text sample
A noul is the natural input to a threshold. Because it is a probability, you can choose the operating point from your own costs: flag for review at 0.5, auto-block at 0.95, and set both after calibrating on your data.
Where noul is weak: the model card documents that noul "can follow its option labels instead of the state, most strongly on the English checkpoint", returning a confident "no" for clearly positive input (issue #156). The recommended workaround is to ask the same question as a two-option choice with neutral keys:
Show technical detailsHide technical details· json sample
Choosing the right primitive
Show technical detailsHide technical details· 4 rows × 4 columns
| You want | Use | Returned value | Gate on |
|---|---|---|---|
| One of N routes, intents or tools | choice | label + distribution | confidence or top probability |
| A priority or severity to sort by | score | expected level + distribution | argmax level, or score bands |
| A risk flag or a yes/no fact | noul | P(true) | noul threshold |
| Several of the above about the same input | all, in one request | one answer per question id | per question |
Some rules of thumb:
- If the answer is naturally yes/no but you have seen
noulstick on your data, use a two-optionchoice. - If the labels have an order that matters for cost (low < medium < high), prefer
scoreso the training signal and the expected value respect it. - If a "none of these" outcome is possible, add it explicitly as a
choiceoption. A softmax must put its mass somewhere. - Do not encode several independent flags as one multi-label choice. Ask separate
noulquestions. They run in the same forward pass.
All three in one request to Laya Studio
The primitives can be mixed freely. Each is answered from the same state in one batched forward pass, and on Laya Studio each is billed the input tokens it reads.
Show technical detailsHide technical details· bash sample
An illustrative response (numbers are examples, not measurements; routing is abbreviated):
Show technical detailsHide technical details· json sample
It is billed its input tokens: each of the three questions reads the state once. Read the docs for validation rules (a score needs a list, a choice needs at least one option), and sign up for a key with 5 free runs.
Frequently asked questions
What does noul stand for?
Why is the score field a decimal and not an integer?
Why is confidence lower than the top probability?
Can a choice question have only two options?
Is there a limit on options per choice?
What is the difference between a choice and a score question?
Can I ask several question types in one request?
Sources
Last updated . Laya Studio is an independent hosted service for the open-source Laya model (Apache-2.0, © Convai Innovations) and is not affiliated with Convai Innovations or TypeSafe.
Next articleProper scoring rules: rewarding a model for honest probabilitiesWhat a proper scoring rule is, why accuracy is not one, and how log, Brier, spherical and RPS scores reward honest probabilities, as in Laya's training.