Xor¶
| Checkpoints | Inputs |
|---|---|
| juspay/Xor-26B-A4B | text, images, video |
Xor 26B-A4B is a decision model on Gemma 4 26B-A4B, a mixture of experts with 128 experts and 8 active per token. Flide reads it as the release's own serving bundle does, serving/xn_base_server.py with two-order scoring on and its temperatures.
Every question is its own chat prompt with thinking off. The user turn holds "Context:" and the state, a string as it is and anything else as compact JSON, then "Question:" with the instructions and the options, one "(A) option" line each. The reply opens with "Answer: (" and the answer is the softmax over the option labels there. After Z the labels continue as two-letter codes, up to 255. A choice is read a second time with its options reversed, the two orders' probabilities are averaged option by option, and the result is taken at temperature 1.95; a noul and a score are read once at temperature 1. The state comes first in every prompt, so Flide computes it once and forks it into the questions and both orders.
Images and video go in front of the text as the release's SGLang takes them. A JPEG is decoded on the GPU, and the images run through the checkpoint's processor on the GPU. A video is decoded and up to 32 of its frames, evenly spaced, are read.
Speed¶
On one H200, one request at a time, Flide answers 2.5 to 6.2 times faster than the release's serving bundle, its xn_base_server.py in front of SGLang in its pinned image. Each workload is 32 requests, except for 10 short videos, 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.
| Workload | Flide | Release | Speedup |
|---|---|---|---|
| Decision Index | 20.8 ms | 51.8 ms | 2.5× |
| RACE | 17.2 ms | 47.4 ms | 2.8× |
| MultiRC | 64.1 ms | 395.4 ms | 6.2× |
| QuALITY long | 78.0 ms | 216.4 ms | 2.8× |
| GQA, images | 48.3 ms | 290.2 ms | 6.0× |
| Video | 214.2 ms | 918.2 ms | 4.3× |
Start a server¶
flide serve --model juspay/Xor-26B-A4B
Video needs torchcodec and FFmpeg's shared libraries, which Flide does not install. Add them when you send video.
uv pip install torchcodec
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?"}
}
}'
A request with images adds "images", a list of 1 to 8 base64 data URLs, and a request with a video adds "video",
one base64 data URL.
Limits and options¶
A request takes choice, noul and score questions. A choice takes 2 to 255 options and needs instructions, and a score takes 2 to 10 levels. The longest prompt is 131072 tokens, and a longer prompt is refused. A request carries images or a video, not both. A grayscale JPEG is read as RGB.
| Option | What it does |
|---|---|
--format-arg two_order=0 |
every choice read once, in its own order |
--format-arg max_context=N |
the longest prompt, 131072 by default |