Every week another model drops with a leaderboard number and a sleek landing page. The useful artifact is usually quieter: the model card. It is the structured document that says what the model is, how it was built, what it is for, and where it fails — so you can decide whether to use it without reverse-engineering the repo.
Mitchell et al. coined the format in 2019. Hugging Face made it ambient by putting the card in every model README. Closed labs publish “system cards” or “model reports” that cover the same ground under different names. The skeleton is shared even when the depth is not.
What a model card is for
A model card is not marketing copy and not a paper. It sits between them.
For a product person, it answers: Should I put this in a user-facing path? For an engineer: What do I need to host, fine-tune, or monitor? For a researcher: What was measured, on what data, and what was left out? For anyone shipping agents: Can I trust the confidence numbers, and when should a human still be in the loop?
If a card only lists wins, treat it as incomplete. The useful ones spend real space on limits.
How it is usually structured
Names vary by org, but most cards cover some version of these sections:
- Model details — name, version, developers, architecture family, parameter count, license, where the weights live.
- Intended use — primary jobs, intended users, and out-of-scope uses you should not stretch it into.
- Factors — demographic, language, domain, or environmental variables that change performance.
- Metrics — what was measured and why those measures were chosen (accuracy, F1, ECE, latency, toxicity, preference win rate).
- Evaluation data — which benchmarks or held-out sets, how they were chosen, known gaps vs. deployment.
- Training data — sources, filtering, labeling, known biases. Often the thinnest section for frontier models.
- Quantitative results — headline numbers, ideally disaggregated by the factors above, not a single average.
- Ethical considerations — misuse risks, sensitive domains, fairness findings, privacy, mitigations.
- Caveats and recommendations — failure modes, fragile inputs, when not to trust outputs, practical deploy guidance.
Optional extras show up more often now: inference hardware, quantization notes, carbon/compute for training, changelogs, and links to sibling checkpoints in a model family.
A worked example: Laya
I picked a random open card that is not another chat LLM, because those tend to blur into each other: convaiinnovations/laya on Hugging Face.
Laya is a non-autoregressive “System 1” decision model. You pass it a state (email, ticket, JSON) and typed questions — choice, score, yes/no-style noul — and it returns typed answers with probabilities in a single forward pass, roughly 33–40 ms on a T4. It does not generate free text, so there is nothing to parse and nothing to hallucinate into prose.
Model details
Apache 2.0. About 0.4B parameters. The hub page is a family of three checkpoints:
- laya (repo root) — ModernBERT-large, 421M, 512 context, English.
- laya-multilingual — mmBERT-base, 322M, 1024 context (up to 8k), 100+ languages.
- laya-typed-decisions — same English backbone, fine-tuned for four decision workflows.
Architecture-wise it is a bidirectional encoder plus a decision head: two transformer layers, an option-marker scorer, and an act/escalate head. Options are scored at their own [MASK] tokens and softmaxed per question, so the answer schema is defined at request time without retraining.
Intended use
Routing, triage, guardrails, moderation-shaped decisions. The card leans hard into production plumbing: a Router that picks the right checkpoint by language/script, a Jev-compatible HTTP server, LangChain/LangGraph hooks, ONNX, MCP. Commercial use is explicit under Apache 2.0.
This is a specialist tool, not a general assistant. That clarity alone makes the card more useful than many frontier READMEs.
Factors that matter
Language and script dominate. The English checkpoint collapses on non-Latin text — they cite Khmer scoring 0.000 accuracy at 0.952 confidence. Confidence gating cannot save you when the model is confidently wrong. That is why the Router exists: detect script/language in under a millisecond before the forward pass.
Document length is the other factor. Multilingual supports long context only if you raise max_len; leave the default and long tickets get truncated.
Training and metrics
Training uses RLCD — reinforcement learning against strictly proper scoring rules, so honest probabilities maximize expected reward. Updates look like REINFORCE with a group-mean baseline.
They report more than accuracy: latency by batch size, ECE, Brier, soft accuracy, and a head-to-head with TypeSafe Jev on several benches. Base English is weak zero-shot on their typed-decisions suite (0.362). The fine-tuned checkpoint hits 0.766. That framing — base as a fast substrate to specialize, not a magic zero-shot brain — is the product insight buried in the numbers.
Honest Limits (the section to steal)
Most cards bury caveats. Laya puts them in a section titled exactly that:
- Base checkpoints sit near chance on typed-decisions without fine-tuning.
- High-cardinality choices (>~20–50 options) starve the token budget per label.
scoreis the weakest question type.noulcan latch onto true/false labels instead of the state.act_probabilityis currently useless; gate onconfidenceinstead.- The model ships over-confident until you refit temperatures on your own data.
- The root checkpoint is English-only.
That is what a good caveats section looks like: specific enough that a deployer can write monitoring rules from it.
What is still thin
Relative to a classic Mitchell card, training-data provenance is light: little on source mix, labeling process, or privacy filtering. Competitive Jev numbers are partly third-party and not fully re-run under identical conditions — which they disclose. Ethical considerations beyond calibration and misuse-via-overconfidence are shorter than you would want for a moderation-adjacent tool.
None of that makes the card bad. It makes clear what you still have to validate yourself.
How I read cards now
When a new model ships, I skim in this order:
- Intended use and out-of-scope — does this job match mine?
- Caveats / limitations — will any of these bite in production?
- Eval + disaggregation — was it measured on anything like my distribution?
- Architecture and serving knobs — cost, latency, context, quantization.
- Training data — last, because it is often vague, but still note the gaps.
Leaderboard rank is a single number. A model card is the decision brief. Laya’s card is a good template for specialist models: clear job, concrete architecture, real latency, and limits written like engineering notes instead of legal filler.
If you build or fine-tune models for agents, write the Honest Limits section first. Everything else is easier once you know what you are willing to admit.