cerno¶
| Checkpoints | Inputs |
|---|---|
| apertixai/cerno-4b, apertixai/cerno-9b, apertixai/cerno-27b | text |
cerno models are decision models on Qwen3.5 stored in FP8 (compressed-tensors W8A8). Flide reads the float8 weights and
their scales as stored when it runs with --quantize fp8.
Flide asks them with the release's own prompt, a plain text prompt with no chat template. It holds "Context:" with the state, then "Question:" with the question, "Options:" with one line per option, lettered (A), (B) and so on, and ends with "Answer: (". A state that is not a string is written as JSON, and an array of 8 or more items writes each item's index into it; the state keeps its first 16384 tokens. A choice shows each option's name and, when it has one, its description, and an option that reads as "none of the above" is shown as "not listed here". A noul shows "no" and then "yes", each with the request's description when there is one. A score shows its levels as "0: …", "1: …" and so on. Past 10 options each label is its own token, A to Z and then two-letter labels.
The answer is the softmax over the option letters at the last position of the prompt, at the temperature of
decider_config.json. The state comes first in every prompt, so Flide computes it once and forks it into the questions.
Speed¶
On one H200, one request at a time, Flide answers 1.1 to 9.1 times faster than cerno's own VllmEngine on vLLM 0.31 with the FP8 weights. Each workload is 32 requests, each run once on both sides before timing, and the table gives the median latency of a request. MultiRC requests ask about 49 questions each. The release keeps a prefix cache across requests, so it is emptied after that first run and the timed requests are read afresh on both sides.
cerno-4b
| Workload | Flide | Release | Speedup |
|---|---|---|---|
| Decision Index | 11.0 ms | 52.0 ms | 4.7× |
| RACE | 8.8 ms | 24.2 ms | 2.8× |
| MultiRC | 40.7 ms | 368.6 ms | 9.1× |
| QuALITY long | 59.6 ms | 67.5 ms | 1.1× |
cerno-9b
| Workload | Flide | Release | Speedup |
|---|---|---|---|
| Decision Index | 15.3 ms | 52.5 ms | 3.4× |
| RACE | 11.1 ms | 24.9 ms | 2.2× |
| MultiRC | 58.4 ms | 472.0 ms | 8.1× |
| QuALITY long | 84.9 ms | 93.9 ms | 1.1× |
Start a server¶
flide serve --model apertixai/cerno-4b --quantize fp8
Send a request¶
curl http://localhost:8000/v1/systemone -H "Content-Type: application/json" -d '{
"state": "Order #1182 arrived with a cracked screen. The customer asks for a refund and attached two photos.",
"questions": {
"action": {"type": "choice", "instructions": "What should support do next?",
"criteria": {"refund": "refund the order", "replace": "send a replacement", "escalate": "ask a human"}},
"urgent": {"type": "noul", "instructions": "Does this need a reply within the hour?"}
}
}'
Limits and options¶
A request takes choice, noul and score questions. A choice takes up to 255 options and a score up to 10 levels. The longest prompt is 20479 tokens. A request with images is refused.
The template also refuses a question without instructions and a question with fewer than two options.
| Option | What it does |
|---|---|
--quantize fp8 |
reads the float8 weights as stored, which these checkpoints need |
--format template --format-arg spec=apertixai__cerno |
reads a copy of the checkpoint kept in a directory Flide does not recognize |