Skip to content

Drex

Checkpoints Inputs
nace-ai/drex-v1.5
nace-ai/drex-v2.0
text

Drex is Nace.AI's family of decision models with Kev's pointer readout. drex-v1.5 holds its full weights on a 9B Qwen3.5 backbone, and drex-v2.0 on Qwen3.6-35B-A3B, a mixture of experts with 256 experts and 8 active per token, which Flide runs with its own grouped expert kernels. Flide reads them as their inference.py reads them, with the tokenizer saved next to the weights.

A request has no chat template. The state comes first, after <|fim_prefix|>, and every question is a branch of its own: <|fim_middle|> and its instructions, each option between <|box_start|> and <|box_end|>, then <|fim_suffix|>. Objects in the request are written as key: value lines and lists as - item lines, a choice option is its name and, when it has one, its description, and a noul reads the options "no" and "yes" with the descriptions the request gives them. Special tokens in the request's text become <¦name¦>, so no text makes a delimiter.

The pointer head in head.pt reads each question at <|fim_suffix|> and at every <|box_end|>. An option's logit is the dot product of its key with the question's query, divided by 16 and by the temperature that head.pt carries, and the answer is the softmax over the options. A score also carries a confidence, one minus the expected distance from its most likely level over the number of levels less one, as the release reports it. The state is computed once and forked into the questions.

Speed

On one H200, one request at a time, Flide answers 1.3 to 8.4 times faster than the release's inference.py as its serve.py runs it (bf16, transformers 5.17.0 with flash-linear-attention and causal-conv1d). Each workload is 32 requests, each run once on both sides before timing, and the tables give the median latency of a request. MultiRC requests ask about 49 questions each.

drex-v1.5

Workload Flide Release Speedup
Decision Index 16.8 ms 49.6 ms 2.9×
RACE 11.4 ms 49.0 ms 4.3×
MultiRC 87.3 ms 649.6 ms 7.4×
QuALITY long 102.0 ms 136.6 ms 1.3×

drex-v2.0

Workload Flide Release Speedup
Decision Index 23.2 ms 89.4 ms 3.9×
RACE 19.4 ms 86.3 ms 4.5×
MultiRC 74.3 ms 620.4 ms 8.4×
QuALITY long 80.1 ms 157.6 ms 2.0×

Start a server

flide serve --model nace-ai/drex-v2.0

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 255 levels. The state takes up to 16384 tokens, its first delimiter included, and so does a question's row, the state and its branch; a longer one is refused, as the release refuses it. A request with images is refused.

Option What it does
--format-arg context=N the token limit of the state and of a row, up to 131072, as the release's KEV_CONTEXT sets it
--format-arg temperature=T the temperature of the answers, the one head.pt carries by default