Skip to page content
SAVRN
Search Plan a project

Open-weight model · Image and text to text

span-02

by He Li lihe07/span-02

span-02 is an open-weight model for image and text to text from He Li, released under Apache License 2.0. It has 15.8B parameters and a 262,144-token context. At 16-bit it needs about 38 GB of GPU memory, which fits on 1x MI300X from $1.85 an hour, at the lowest prices in the SAVRN Index.

span-02 is a decision model: it answers typed questions about a state (JSON or text, plus up to 4 images) with a full probability distribution over the options, in the Decision Index /v1/systemone wire format.

Parameters15.8B
Context262,144
Weights16.4 GB
Licenseapache-2.0
AccessOpen weights
Monthly Downloads—

Runs On

What it takes to serve span-02 (15.8B parameters): the memory its weights need at each precision, and the cheapest way to rent enough data-center GPUs to hold them.

PrecisionWeightsMemory neededCheapest setupPer hourAlso fits
16-bit 31.6 GB 38.0 GB 1x MI300X (192 GB)
Vultr
$1.85 1x H100 $1.99 · 1x MI325X $2.00
8-bit 15.8 GB 19.0 GB 1x MI300X (192 GB)
Vultr
$1.85 1x H100 $1.99 · 1x MI325X $2.00
4-bit 7.9 GB 9.5 GB 1x MI300X (192 GB)
Vultr
$1.85 1x H100 $1.99 · 1x MI325X $2.00

Memory is the weights at that precision plus 20% for the runtime and a short context; a long context needs more. Prices are the lowest on-demand hourly rates in the SAVRN Index, read Oct 18, 2026.

span-02 on every accelerator the SAVRN Index prices, at every precision

Model Card

By He Li, published under apache-2.0, revision 80e7e3a0d4ce.

span-02 is a decision model: it answers typed questions about a state (JSON or text, plus up to 4 images) with a full probability distribution over the options, in the Decision Index /v1/systemone wire format. It is a fine-tune of Gemma 4 26B-A4B (mixture of experts, about 4B active parameters per token), quantized (NVFP4 experts, FP8 dense layers) and served by a custom Rust/CUDA engine for Blackwell GPUs (sm120: RTX 5090, RTX PRO 6000) that is included in this repo (engine/). Before answering it may think. If the top probability of the no-think answer is below 0.8, the model writes a greedy thought. Its length limit comes from a deterministic thought budget: a fixed cost model…

Read He Li's full model card

span-02 is a decision model: it answers typed questions about a state (JSON or text, plus up to 4 images) with a full probability distribution over the options, in the Decision Index /v1/systemone wire format. It is a fine-tune of Gemma 4 26B-A4B (mixture of experts, about 4B active parameters per token), quantized (NVFP4 experts, FP8 dense layers) and served by a custom Rust/CUDA engine for Blackwell GPUs (sm_120: RTX 5090, RTX PRO 6000) that is included in this repo (engine/).

Before answering it may think. If the top probability of the no-think answer is below 0.8, the model writes a greedy thought. Its length limit comes from a deterministic thought budget: a fixed cost model (think_cost.json) turns a 750 ms target into a per-question token cap that depends only on the request (prompt length, images, number of questions and of thinking questions), so the same request always gets the same thought. After a thought the answer is read out again, and the final distribution is the average of the two: 0.5 x the no-think distribution + 0.5 x the post-thought distribution, for every question type. A choice answer is the option with the highest final probability. Thoughts are decoded with speculative decoding (Gemma's public MTP draft). The verification is greedy, so the thought is token-identical to plain greedy decoding.

Outputs are typed: choice, noul (yes/no probability), score (ordinal levels) and number (a free-form number). The model never returns free text as an answer.

Quantization

This checkpoint is engine-native. It cannot be loaded by transformers or vLLM.

part format
MoE experts NVFP4 W4A4 (e2m1 weights, FP8-e4m3 scale per 16 elements, FP32 global scale; activations NVFP4 with static per-layer global scales)
attention and dense MLP linears FP8 e4m3 W8A8 (per-output-row weight scale, dynamic per-token activation scale)
tied embedding / LM head FP8 e4m3 per row
vision tower, router, norms, KV cache bf16

model.safetensors is 16.4 GB. GPU memory in use at serving time is about 26 GB.

Hardware

  • An NVIDIA Blackwell GPU with compute capability 12.0 (sm_120a). Tested on an RTX PRO 6000 Blackwell (96 GB), where the latency below was measured, and on an RTX 5090 (32 GB).
  • NVIDIA driver with CUDA 12.9 support (R575 or newer).
  • To build: CUDA toolkit 12.8+ (nvcc) and Rust. No GPU is needed at build time.

Other GPU architectures are not supported, because the kernels use the sm_120a block-scaled FP4/FP8 tensor-core instructions.

Files

file what
model.safetensors, config.json quantized weights and the Gemma-4 config
tokenizer.json, tokenizer_config.json, chat_template.jinja, generation_config.json tokenizer and chat template
processor_config.json Gemma-4 image processor at the served budget: max_soft_tokens 560 (about 1.3 MP)
draft_vocab_16384.json pruned 16384-token vocabulary for the MTP draft head
think_cost.json fixed cost model of the deterministic thought budget (--think-cost; calibrated on an RTX PRO 6000)
engine/ source of dllm-server (Rust + CUDA; see engine/README.md)
launch.sh finds or downloads the weights and the draft, then starts the server with the settings below
Dockerfile, .dockerignore two-stage image: CUDA devel build, then CUDA base runtime
NOTICE licenses and attributions

The MTP draft model is not in this repo. launch.sh downloads the public google/gemma-4-26B-A4B-it-assistant.

Quickstart

Docker:

hf download lihe07/span-02 --local-dir span-02 && cd span-02
docker build -t span-02 .
docker run --gpus all -p 8000:8000 -v "$PWD":/model:ro -e DLLM_MODEL_DIR=/model -v span02-data:/data span-02

Without -v "$PWD":/model ... DLLM_MODEL_DIR, the container downloads this repo itself. Pass -e HF_TOKEN for that while the repo is private.

Without Docker (CUDA 12.8+ toolkit and Rust installed):

hf download lihe07/span-02 --local-dir span-02 && cd span-02
(cd engine && NVCC=/usr/local/cuda/bin/nvcc cargo build --release -p dllm-server)
bash launch.sh          # serves on 0.0.0.0:8000; PORT / HOST / AR_API_KEY are optional

Startup takes about 10 s plus about 7 s of warmup. GET /health returns {"ok":true,...} when the server is ready.

API

POST /v1/systemone (POST /v1/decisions is an alias with the same body and response). The state field accepts any JSON value. images (optional) is a list of up to 4 images as data URIs or bare base64.

Question types: * choice: criteria maps each option key to its description (1 to 679 options). The answer is the argmax, its confidence = (p_max - 1/n) / (1 - 1/n), and the probabilities in criteria order. * noul: the probability that the statement is true. criteria is optional: {"true": ..., "false": ...}. * score: criteria is an ordered array of 2 to 10 level descriptions, from low to high. The answer is score = sum_i i x p_i, with the per-level probabilities, a legend and a confidence. * number (our extension of the format): a free-form number, no criteria. The model writes the number greedily after its (optional) thought, as it was trained (the plain decimal, e.g. 391 or 2.5, at most 32 tokens). The answer is {"type": "number", "number": 391.0, "text": "391", "confidence": 0.98}: number is the parsed value (null if the text is not a number), confidence = exp(mean log-probability of the generated answer tokens). The think gate is trained for option questions only, so number questions think only with "think": "on".

Request:

curl -s localhost:8000/v1/systemone -H 'content-type: application/json' -d '{
  "model": "span-02",
  "state": {"customer": "My package arrived damaged and nobody answers my emails. I want a refund now.",
            "order": {"id": 123, "days_late": 4}},
  "questions": {
    "dept":   {"type": "choice", "instructions": "Which team should handle this?",
               "criteria": {"returns": "Exchanges, wrong or damaged items",
                            "shipping": "Delivery status, delays, lost packages",
                            "billing": "Charges, invoices, payment problems"}},
    "refund": {"type": "noul", "instructions": "Does the customer ask for a refund?"},
    "anger":  {"type": "score", "instructions": "How frustrated is the customer?",
               "criteria": ["Not frustrated: calm or positive", "Somewhat frustrated: mild annoyance",
                            "Very frustrated: angry, hostile or threatening to leave"]}}}'

Response:

{"model": "span-02",
 "answers": {
   "dept":   {"type": "choice", "choice": "returns", "confidence": 0.945,
              "probabilities": {"returns": 0.963, "shipping": 0.024, "billing": 0.013}},
   "refund": {"type": "noul", "noul": 0.99999},
   "anger":  {"type": "score", "score": 1.9999,
              "legend": {"0": "Not frustrated: calm or positive", "1": "Somewhat frustrated: mild annoyance",
                         "2": "Very frustrated: angry, hostile or threatening to leave"},
              "probabilities": {"0": 0.000008, "1": 0.00012, "2": 0.99987}, "confidence": 0.9998}},
 "usage": {"input_tokens": 412, "output_tokens": 3,
           "think": {"dept": false, "refund": false, "anger": false},
           "trace_tokens": {"dept": 0, "refund": 0, "anger": 0}, "latency_ms": 41.7}}

(The token counts and latency in this response are illustrative.)

Extensions to the Decision Index format (clients that follow the official schema can ignore them): * "think": "auto" | "on" | "off" in the request overrides the gate for that request. auto (the default) uses the tau 0.8 gate; on thinks for every question, off never thinks. * "budget_ms": <number> (0 to 600000) sets the wall-clock thinking budget of that request in milliseconds; 0 means no wall-clock budget (a thought ends at the end-of-thought token, EOS or the cap). Without it, a request with "think": "on" thinks to completion (up to the cap) and other requests use the server's --budget-ms. The deterministic --think-ms cap of the submission settings applies regardless; budget_ms only adds or removes a wall-clock deadline (the submission server has none), so requests without it stay deterministic. * "return_trace": true adds usage.traces = {question id: thought text} for the questions that thought. * With images, the response also has a top-level image_tokens field (the total image soft tokens). * usage.think and usage.trace_tokens report which questions thought and how long the thoughts were.

Errors are {"error": {"message": ...}}: 400 for invalid JSON or a context that is too long, 413 for a body over 64 MB, and 422 for schema errors, more than 4 images, an image that cannot be decoded, or too many options. The capacity errors carry the Decision Index capacity markers, so the DI client records unsupported.

Serving settings (Decision Index submission)

--max-len 16384 --budget-ms 0 --tau 0.8 --cap 1024 --think-ms 750 --think-cost think_cost.json
--image-soft-tokens 560 --serial --no-prefix-cache --spec-max-branches 16 --pages 12000 --kv-gb 24
  • --budget-ms 0: there is no wall-clock limit; the clock is never read for thinking decisions.
  • --think-ms 750 --think-cost think_cost.json: deterministic thought budget. Each request's per-question thought cap = floor((750 - fixed) / per_token(n)), where fixed is the modelled prompt, image and readout time of that request and per_token(n) the modelled time per thought token with n of its questions thinking together. It is a pure function of the request, so answers do not depend on the machine or its load. A thought ends at the end-of-thought token, at EOS, or at that cap (at most --cap 1024). A short single question gets about 330 thought tokens, a request with many thinking questions or a long prompt fewer.
  • --tau 0.8: think when the no-think top probability is below 0.8. The final distribution is then 0.5 x no-think + 0.5 x post-thought (choice, score and noul alike).
  • --spec-draft (passed by launch.sh): MTP speculative decoding of the thought with an adaptive draft depth and a pruned 16384-token draft vocabulary. It is lossless (token-identical to greedy decoding).
  • --image-soft-tokens 560: the Gemma-4 image budget (about 1.3 MP; aspect ratio kept).
  • --serial --no-prefix-cache --spec-max-branches 16: each answer is a deterministic function of its request. It does not depend on load or on earlier requests (for up to 16 questions of one request thinking at once). --serial runs one request at a time; concurrent clients queue.
  • --pages 12000 --kv-gb 24: KV cache pools (full-attention layers 12000 x 16 = 192K tokens, 3.9 GB; sliding-window layers get the rest of --kv-gb 24, ~20 GB), sized so that every Decision Index request fits on its own under --serial (the largest needs about 3.7K full pages: many questions with long tails). The pool size does not change any answer. The server uses about 41 GB of GPU memory.

Latency

Measured with the submission settings on one RTX PRO 6000 Blackwell, one request at a time, as client wall time per request including HTTP (ms). The Decision Index rule requires the median, mean and p80 each to be at most 1000 ms.

request mix n median mean p80 accuracy (choice questions)
DI public text 0.3, stratified sample (42 benchmarks), DI kit 400 71 308 712 0.923 (2725 questions)
DI public vision: CV-Bench, BLINK, RealWorldQA, DI kit 150 186 291 642 0.747
image rows of 6 DI vision benchmarks (incl. MMMU-Pro vision), DI kit 210 292 389 699 0.652
think-heavy question set (78 % of questions think) 150 616 514 770 0.562

The rule is met on every mix measured, with margin. Against a plain 256-token cap on the same machine and requests, accuracy is the same within noise (pooled paired difference -0.03 points, 95 % CI [-0.39, +0.34]) and the tail is much shorter (DI text requests over 1 s: 34 -> 4 of 400; slowest 2.8 s -> 1.07 s). Against a blend that puts the post-thought half on the post-thought top option only (one-hot), the averaged distributions have the same accuracy within noise (+0.13 points, 95 % CI [-0.06, +0.35], 3,707 choice questions, same thoughts) and are better calibrated (log-loss 0.409 -> 0.397, Brier score 0.200 -> 0.193; on the questions that thought 1.368 -> 1.290 and 0.734 -> 0.689). Speculative decoding runs at about 480 thought tokens/s at batch 1 on real thoughts on this GPU (2.1 ms per token).

Capacity limits

Requests over these limits are rejected with the DI capacity markers. Nothing is truncated. * Choice questions: 1 to 679 options. * Images: at most 4 per request (PNG, JPEG, GIF, BMP, TIFF or WebP). Each image uses at most 560 soft tokens. * Context: the prompt tokens + 562 per image + the reserved thought tokens + 3 must fit in 16384 tokens. The reservation is the deterministic cap of a lone thinking question of that size (about 330 tokens for a short prompt, about 145 at 16k prompt tokens). That allows up to about 16240 prompt tokens without images. * KV cache: a request whose prompt pages (shared prefix + every question's own tail) exceed the whole KV pool is rejected with 422 "maximum context length"; none of the DI 0.3 public requests does with the pools above. * Request body: at most 64 MB.

License

The weights are a derivative of Google's Gemma 4 (google/gemma-4-26B-A4B-it) and are distributed under the Gemma 4 license terms, which are Apache 2.0: ai.google.dev/gemma/docs/gemma_4_license. The serving engine in engine/ is Apache-2.0. It ports algorithms from vLLM, SGLang, FlashInfer and other projects, which are credited in NOTICE and in the source file headers.

Configuration

Architecture
Gemma4ForConditionalGeneration
Context length (tokens)
262,144
Layers
30
Hidden size
2,816
Feed-forward size
2,112
Attention heads
16
Key/value heads
8
Head dimension
256
Vocabulary size
262,144
Experts
128
Sliding window (tokens)
1,024
Model type
gemma4

Identity and Version

Repository
lihe07/span-02
Publisher
He Li
Task
Image and text to text
Modality
Image and text
Library
Not stated by the source
Parameters
15.8B parameters
Languages
moe
Revision
80e7e3a0d4ce26549b91b361908d5df9cfe3aeb0
First published
2026-10-13
Last updated
2026-10-14

Files and Weights

101 files, 16.4 GB in total. The weights are 1 file totalling 16.4 GB in safetensors.

Weights1 file · 16.4 GB
Configuration8 files · 135.6 KB
Tokenizer3 files · 32.2 MB
Documentation3 files · 21.0 KB
Other83 files · 734.6 KB
Repository3 files · 1.6 KB
Every file
FileTypeSizeSHA-256
model.safetensorsWeights16.4 GB 5105d39df626
config.jsonConfiguration4.2 KB —
draft_vocab_16384.jsonConfiguration112.8 KB —
engine/crates/core/tests/data/draft_config.jsonConfiguration2.3 KB —
engine/crates/core/tests/data/prompts.jsonConfiguration5.9 KB —
engine/crates/server/tests/golden/expected.jsonConfiguration8.2 KB —
generation_config.jsonConfiguration208 B —
processor_config.jsonConfiguration1.7 KB —
think_cost.jsonConfiguration298 B —
NOTICEDocumentation3.4 KB —
README.mdDocumentation14.3 KB —
engine/README.mdDocumentation3.4 KB —
DockerfileOther1.9 KB —
chat_template.jinjaOther18.7 KB —
engine/Cargo.lockOther45.0 KB —
engine/Cargo.tomlOther1.0 KB —
engine/crates/core/Cargo.tomlOther270 B —
engine/crates/core/src/config.rsOther14.6 KB —
engine/crates/core/src/lib.rsOther406 B —
engine/crates/core/src/loader.rsOther7.9 KB —
engine/crates/core/src/policy.rsOther14.9 KB —
engine/crates/core/src/quant.rsOther4.0 KB —
engine/crates/core/src/serving.rsOther1.9 KB —
engine/crates/core/src/tensor.rsOther869 B —
engine/crates/kernels/Cargo.tomlOther171 B —
engine/crates/kernels/build.rsOther2.5 KB —
engine/crates/kernels/cuda/attn_decode.cuOther13.9 KB —
engine/crates/kernels/cuda/attn_prefill.cuOther10.4 KB —
engine/crates/kernels/cuda/common.cuhOther2.4 KB —
engine/crates/kernels/cuda/embed.cuOther1.5 KB —
engine/crates/kernels/cuda/fp4.cuhOther4.7 KB —
engine/crates/kernels/cuda/head.cuOther11.7 KB —
engine/crates/kernels/cuda/letter_readout.cuOther1.3 KB —
engine/crates/kernels/cuda/lin_common.cuhOther4.0 KB —
engine/crates/kernels/cuda/linear.cuOther25.4 KB —
engine/crates/kernels/cuda/lm_head.cuOther2.8 KB —
engine/crates/kernels/cuda/moe.cuOther15.9 KB —
engine/crates/kernels/cuda/moe_prefill.cuOther13.7 KB —
engine/crates/kernels/cuda/moe_route.cuOther1.5 KB —
engine/crates/kernels/cuda/norm.cuOther8.6 KB —
engine/crates/kernels/cuda/pdl.cuhOther1.1 KB —
engine/crates/kernels/cuda/qkv_prep.cuOther5.9 KB —
engine/crates/kernels/cuda/rmsnorm.cuOther3.5 KB —
engine/crates/kernels/cuda/rope_kv_write.cuOther3.5 KB —
engine/crates/kernels/cuda/spec.cuOther6.9 KB —
engine/crates/kernels/cuda/vision_attn.cuOther13.7 KB —
engine/crates/kernels/cuda/vision_gemm.cuOther7.6 KB —
engine/crates/kernels/cuda/vision_inject.cuOther686 B —
engine/crates/kernels/cuda/vision_misc.cuOther8.2 KB —
engine/crates/kernels/src/attn.rsOther6.3 KB —
engine/crates/kernels/src/backend.rsOther3.8 KB —
engine/crates/kernels/src/gpu.rsOther6.5 KB —
engine/crates/kernels/src/head.rsOther1.9 KB —
engine/crates/kernels/src/lib.rsOther1.4 KB —
engine/crates/kernels/src/linear.rsOther4.8 KB —
engine/crates/kernels/src/moe.rsOther5.8 KB —
engine/crates/kernels/src/norm.rsOther1.7 KB —
engine/crates/kernels/src/ops.rsOther5.5 KB —
engine/crates/kernels/src/spec.rsOther2.9 KB —
engine/crates/kernels/src/vision.rsOther6.0 KB —
engine/crates/kernels/tests/gpu.rsOther12.7 KB —
engine/crates/model/Cargo.tomlOther252 B —
engine/crates/model/src/draft.rsOther12.5 KB —
engine/crates/model/src/gpu_model.rsOther26.1 KB —
engine/crates/model/src/gpu_model/forward.rsOther8.3 KB —
engine/crates/model/src/gpu_model/graphs.rsOther4.7 KB —
engine/crates/model/src/lib.rsOther225 B —
engine/crates/model/src/rope.rsOther1.4 KB —
engine/crates/model/src/spec.rsOther14.5 KB —
engine/crates/model/src/vision.rsOther10.4 KB —
engine/crates/model/tests/gpu.rsOther5.4 KB —
engine/crates/runtime/Cargo.tomlOther261 B —
engine/crates/runtime/src/engine.rsOther85.8 KB —
engine/crates/runtime/src/fake.rsOther13.4 KB —
engine/crates/runtime/src/lib.rsOther584 B —
engine/crates/runtime/src/model.rsOther9.2 KB —
engine/crates/runtime/src/radix.rsOther17.0 KB —
engine/crates/runtime/src/tests/engine.rsOther18.4 KB —
engine/crates/runtime/src/tests/mod.rsOther1.8 KB —
engine/crates/runtime/src/tests/swa.rsOther5.6 KB —
engine/crates/runtime/src/think.rsOther3.3 KB —
engine/crates/server/Cargo.tomlOther523 B —
engine/crates/server/src/lib.rsOther49.9 KB —
engine/crates/server/src/main.rsOther133 B —
engine/crates/server/src/wire.rsOther3.6 KB —
engine/crates/server/tests/golden.rsOther2.8 KB —
engine/crates/server/tests/golden/requests.jsonlOther19.4 KB —
engine/crates/vision/Cargo.tomlOther453 B —
engine/crates/vision/src/decode.rsOther11.4 KB —
engine/crates/vision/src/lib.rsOther10.7 KB —
engine/crates/vision/src/png_fast.rsOther22.9 KB —
engine/crates/vision/src/pool.rsOther1.3 KB —
engine/crates/vision/src/resize.rsOther18.6 KB —
engine/crates/vision/tests/robust_test.rsOther8.4 KB —
launch.shOther3.6 KB —
.dockerignoreRepository35 B —
.gitattributesRepository1.6 KB —
engine/.gitignoreRepository8 B —
engine/crates/core/src/tokenizer.rsTokenizer12.3 KB —
tokenizer.jsonTokenizer32.2 MB cc8d3a0ce364
tokenizer_config.jsonTokenizer3.1 KB —

License and Download

License
apache-2.0
Access
Open weights, no gate
Download size
16.4 GB
Download from He Li

Released by He Li through its official repository on Hugging Face. Read the license.

Built From

Memory Requirements

PrecisionWeights in memory
As published16.4 GB
16-bit31.6 GB
8-bit15.8 GB
4-bit7.9 GB

Weights only, from the published parameter count; the key-value cache and runtime add to this.

Questions About span-02

How much GPU memory does span-02 need?

About 38 GB at 16-bit and 9.5 GB at 4-bit: the weights (15.8B parameters) plus a working margin. A long context needs more.

What is the cheapest GPU to run span-02 on?

At 16-bit, 1x MI300X from $1.85 an hour; at 4-bit, 1x MI300X from $1.85 an hour, at the lowest on-demand prices the SAVRN Index lists.

Can I use span-02 commercially?

Yes. span-02 is released under Apache License 2.0. The Apache License 2.0 is a permissive open-source license. It permits commercial use, modification and redistribution. It requires keeping the license and copyright notices and any NOTICE file, stating significant changes, and it includes an express patent grant from contributors.

What is span-02's context length?

262,144 tokens, from the maximum position embeddings in its published configuration.

Similar Models

Model · Image and text to text

Swift-1.5-Qwen3.8-27b-Quark-RTN-MXFP4

Ethan Todd

quantized to OCP MXFP4 4-bit weights in the same Quark checkpoint container as The weights are plain RTN, not AWQ: see the note below. The 15 MTP tensors are kept in BF16; the radiance runtime loads them with RADIANCEQUARKBF16MTP=1. Why RTN instead of AWQ. The first build of this checkpoint used AWQ with the same smoothing recipe as AMD's release. The AWQ fold itself was mathematically consistent, but on this model a few layers converged to weights to 32-element MXFP4 blocks then destroyed those layers on real, outlier-carrying inputs (layer 7 output relative error ~324), and repairing the worst layers individually was not enough; the remaining smoothed layers still accumulated too much…

Open weights other 15.6B parameters 262,144 tokens transformers

Model · Image and text to text

GLM-5.3-Flash-NestQuant-1.5-4bit

Jarrel Seah

Run one of these commands on a separate scorer workstation with SSH access to an idle native ARM64 DGX Spark. The launcher securely prompts for the serving API key, downloads and prepares the pinned model and ARM64 Docker image on the Spark, launches the exact accepted 2,630-slot configuration, opens an authenticated SSH tunnel, installs the pinned official scorer, and runs all 80 tasks twice. Reasoning on — reproduces the canonical 89.2151 run configuration: Reasoning off — reproduces the 86.6870 run configuration: Both options were live-tested against the published Spark service: SSH and host-key validation, authenticated tunnel, endpoint/model check, pinned scorer checkout, 73/73…

Open weights mit 16.9B parameters 1,048,576 tokens

Model · Image and text to text

Qwen3.8-27B-NVFP4-RTX5090

Gittensor Model Hub

Runs on SparkInfer, SGLang and vLLM unmodified — configs for all three are below. Serving many users at once? See concurrency. SparkInfer × this NVFP4 build × the DSpark v2 drafter — an engine, a checkpoint, and a speculative drafter optimized against each other, compounding to 4.3×. The drafter never changes what the model says: the target verifies every drafted token. GeForce RTX 5090–specific NVFP4 checkpoint of Qwen/Qwen3.8-27B, quantized with NVIDIA Model Optimizer. Serves the full native 262,144-token context on 32 GB. With the DSpark v2 drafter: 264.8 tok/s overall — up to 420 on code — on SparkInfer (its bench harness; the HTTP server is autoregressive-only today) and 161.7 tok/s on…

Open weights apache-2.0 14.6B parameters 262,144 tokens transformers

Model · Image and text to text

Qwen3.8-27B-NVFP4

RadixArk

The RadixArk Qwen3.8-27B-NVFP4 model is the quantized version of Qwen/Qwen3.8-27B. The quantization was produced at RadixArk using NVIDIA Model Optimizer, following a mixed NVFP4 W4A4 recipe. Run on SGLang: launch command and per-platform recipes in the Qwen3.8-27B cookbook. This model is not owned or developed by RadixArk. It is a quantized derivative of Qwen's model; see the upstream Qwen3.8-27B model card for the source model's capabilities, training information, limitations, and license. Global Developers looking to deploy an off-the-shelf, pre-quantized model in AI agent systems, chatbots, RAG systems, and other AI-powered applications. Hugging Face 08/14/2026 via…

Open weights apache-2.0 18.2B parameters 262,144 tokens Model Optimizer

Model · Image and text to text

Swift-Qwen3.8-27B-Uncensored-NVFP4

AJ Gazin

NVFP4 checkpoint of an abliterated Swift-Qwen3.8-27B (UkisAI's reasoning-efficient fine-tune of Qwen3.8-27B). For vLLM and SGLang. GGUFs for llama.cpp: The Swift 1.5 version is source). - Swift's own NVFP4 recipe, unmodified, from ukisai/Swift-Qwen3.8-27B-NVFP4, calibrated with NVIDIA ModelOpt. - MTP head and vision tower in BF16, bit-identical to the source. 21.9 GB, NVIDIA ModelOpt mixed-precision format. Needs a vLLM with ModelOpt mixed-precision support (tested on 0.29.0). No --quantization flag. Sampling, as for Swift and Qwen: temperature 1.0, topp 0.95, topk 20, minp 0. The model thinks before answering by default. Tested on an RTX 5090 (32 GB) with vLLM 0.29.0: NVFP4 layers on…

Open weights other 18.2B parameters 262,144 tokens vllm