Solar-JEV-27B-GGUF

GGUF ladder for the JEV Judgment merge. MTP/nextn drafter tensors preserved in the f16 export (blk.64.nextn.*) so speculative decoding works in llama.cpp.

Sizes

quant size decode tok/s (prompt/tokens)
IQ4_XS 14.35 GiB 957.69 / 13.80
Q2_K 10.11 GiB 748.74 / 18.44
Q3_K_L 13.55 GiB 797.34 / 14.02
Q3_K_M 12.56 GiB 824.09 / 15.13
Q3_K_S 11.40 GiB 804.86 / 16.42
Q4_K_M 15.65 GiB 861.47 / 12.60
Q4_K_S 14.73 GiB 898.03 / 13.28
Q5_K_M 18.18 GiB 826.64 / 11.16
Q5_K_S 17.66 GiB 842.57 / 11.36
Q6_K 20.88 GiB 734.57 / 9.79
Q8_0 27.04 GiB 804.49 / 8.15

What the quantized builds are derived from

This ladder was quantized from the solar r16 merge (the bf16 repo in this release), because that merge was the one that existed when the quantizer ran. It is not an r32 build.

The chat-benchmark rows for the GGUF sizes therefore describe the solar r16 weights, and are not comparable to the r32 row on the decision gate.

Q4_K_M is the daily-driver pick; Q8_0 for maximum fidelity; Q2_K when it must fit. Every size is in this repo, built from the same f16 export (866 tensors each, MTP/nextn drafter tensors preserved).

Quick start

llama-server -m Jev_Qwen3.8-27B-Judgment-Q4_K_M.gguf -ngl 99 --jinja \
  --chat-template-kwargs '{"enable_thinking": false}'

Typed decisions: use the bf16 repo for those

The typed-decision path needs the model's own lm_head logprobs over the 24 verbalizer token ids, which works in vLLM (the bf16 repo, verified end-to-end). The llama.cpp server in this build does not return token logprobs - we measured /v1/completions, the native /completion endpoint, and echo: true, and each returns a payload with no logprobs field. So read typed decisions from the bf16 repo, and use this ladder for fast everyday chat (MTP/nextn drafter tensors are preserved, so speculative decoding works).

Typed decisions: use the bf16 repo for those

The decision head, calibration and read_decision.py ship in this repo because they are the same files that produced the numbers in the cards, and so a consumer can reproduce them. But note how you run a decision:

  • The typed-decision path needs the model's own lm_head logprobs over the 24 verbalizer token ids. That works on the bf16 repo in vLLM (verified end-to-end).
  • The llama.cpp server in this build does not return token logprobs on /v1/completions, on the native /completion endpoint, or with echo: true — we measured all three and each returns a payload with no logprobs field. So a typed decision cannot be read out of a llama.cpp server as it stands.
  • What the GGUF is good for: fast everyday chat with the same weights (MTP/nextn drafter tensors are preserved, so speculative decoding works), at a fraction of the memory.

If you want typed decisions, use SargeDev/Solar-Decision-JEV-27B in vLLM. If you want a small, fast everyday-chat model, use this repo.

Decision gate (AutoTrust-style, test_set_30k with yuri_v1 D1 placeholders excluded)

Read this table carefully, because it contains two very different comparisons.

  • The sibling merge is our other build, scored on the same 27,695 rows with the same harness and the same head + calibration. It is a sibling model, not a quality bar — but it is the honest apples-to-apples reference for what the lm_head LoRA is worth.
  • AutoTrust reference is the number published by the authors of the original AutoTrust work for their model on this task set. This is the bar.

On the typed-decision kinds (multiple-choice choice, ordinal score) this model is still below the published AutoTrust reference, and the gap is large - not a rounding difference. On the binary noul kind the gap is narrower. Cells marked "(below bar)" differ from the published reference by more than 5 points.

What this means: the fine-tune produces a usable decision instrument and a clearly better everyday-chat model than its base (see the benchmark matrix below), but it is not a reproduction of AutoTrust-level typed-decision accuracy. Treat the choice and score columns as an open result, not a solved one. We are publishing the numbers as measured, including the gap.

Harness validation. These numbers were produced by our own HTTP gate client, so we checked it against a known path: re-gating the r32 merge reproduced the reference's own numbers to within 0.001 on every metric (choice top-1 0.8704 -> 0.8693, score KL 0.0623 -> 0.0619, noul AUROC 0.9920 -> 0.9919). The harness is sound, so the gaps above are real.

metric n Jev Judgment solar r16 (ours) Jev Judgment r32+lm_head AutoTrust reference (published)
noul.AUROC 9969 0.9449 (below bar) 0.9919 0.9961
noul.top-1 9969 0.8657 0.9486 n/a
noul.ECE 9969 0.0143 0.0122 n/a
noul.KL 9969 0.0448 0.0081 n/a
choice.top-1 9199 0.5054 (below bar) 0.8693 0.9041
choice.ECE 9199 0.0338 0.0051 n/a
choice.KL 9199 0.4994 0.0530 n/a
score.top-1 8527 0.5369 (below bar) 0.8135 0.8910
score.ECE 8527 0.0368 0.0367 n/a
score.KL 8527 0.4699 (below bar) 0.0619 0.0210
overall.top-1 27695 0.6448 0.8807 n/a
overall.ECE 27695 0.0211 (below bar) 0.0090 0.0011
overall.KL 27695 0.3267 (below bar) 0.0396 0.0185

Ablation: where the decision readout has to live

All four rows below are scored on the SAME 27,695 rows, with the SAME harness and the SAME decision head + calibration. The only difference is where the decision distribution is produced.

model decision readout choice top-1 score top-1 score KL noul AUROC overall ECE
AutoTrust (published reference) trained into the model (lm_head LoRA) 0.9041 0.8910 0.0210 0.9961 0.0011
r32 + lm_head LoRA (r=32, alpha=64) trained into the model (lm_head LoRA) 0.8693 0.8135 0.0619 0.9919 0.0090
solar r16 (no lm_head LoRA) separate projection at read time 0.5054 0.5369 0.4699 0.9449 0.0211
r32 + lm_head LoRA + solar (combined) trained into the model (lm_head LoRA) 0.8162 0.7192 0.1332 0.9810 0.0625

Two findings, in order of how much they matter:

  1. The readout has to be trained INTO the model. A separate projection over the final hidden state (the solar r16 row) reaches only 0.5054 choice top-1; the same backbone with an lm_head LoRA in the training loop reaches 0.8693 on the identical rows. A separate projection can work, but it needs the backbone to cooperate, and a backbone trained without the readout in the loop does not.

  2. Adding a second, readout-free adapter on top makes the typed-decision accuracy WORSE, not better. The combined row is the r32 merge plus the solar r16 delta applied on top (bit-exact arithmetic, verified). It lands between the two parents on every metric - 0.8162 choice top-1, between r32's 0.8693 and solar's 0.5054 - rather than above r32. The two LoRA deltas are near-orthogonal (mean cosine 0.003), so they do not cancel, but solar's delta still degrades the readout r32 trained.

We publish the combined row because it is a real, reproducible result, but the r32+lm_head merge is the better model and is the one this release recommends. We are not going to present a merge as an improvement when our own numbers say it is a regression.

Benchmark matrix (lm-eval-harness 0.4.13, greedy, same prompts for every row)

model GSM8K (8-shot CoT) IFEval (0-shot, prompt-strict) MMLU subset (5-shot, 8 subjects) refusal rate
huihui Qwen3.8-27B (uncensored base) 97.7 76.0 81.2 0.0% (5/5 probes)
Jev Judgment bf16 (solar r16) 96.0 81.5 81.2 0.0% (5/5 probes)
Jev Judgment bf16 (r32+lm_head + solar) 91.0 72.5 80.8 0.0% (5/5 probes)
Jev Judgment bf16 (r32 + lm_head) 94.0 81.0 82.5 0.0% (5/5 probes)
Jev Judgment NVFP4+FP8 95.3 80.5 80.5 0.0% (5/5 probes)
GGUF Q4_K_M 95.3 79.5 82.0 0.0% (5/5 probes)
GGUF Q8_0 95.7 81.0 81.0 0.0% (5/5 probes)

Questions scored per task:

task questions scored per model
GSM8K (8-shot CoT) 300
IFEval (0-shot, prompt-strict) 200
MMLU subset (5-shot, 8 subjects) 400

Note: GSM8K scored with flexible-extract (the model answers in its own format). MMLU subset subjects: high_school_mathematics, college_biology, professional_psychology, jurisprudence, machine_learning, astronomy, global_facts, logical_fallacies (5-shot, _generative variants). MMLU --limit applies PER SUBJECT, so the subset is 8 x per-subject-limit questions.

Reproducibility: decoding is greedy (do_sample=False, temperature 0, seed 1234), but the server batches concurrent requests, and batch composition changes floating-point reduction order. Repeat runs of the same config can therefore differ by a point or two on the small-n tasks. The error bars in the table are the harness's own stderr over the scored rows.

Lineage & credits

This release is a descendant of the earlier SargeDev/JEV-27B-Uncensored and SargeDev/JEV-27B-VL-Uncensored repos. The credit chain is unchanged and is reproduced here in full:

  • AutoTrust AI — Blocks-of-Experts recipe, the System-1 decision LoRA (r16/r32) + 24-slot decision head, and the serve_decide.py decision harness, from autotrust/JEV-27B and autotrust/JEV-27B-VL (Apache-2.0). The r32 adapter used here is theirs, unmodified: the backbone LoRA with the decision head re-expressed as an lm_head LoRA, so only the 24 verbalizer rows of the output projection change.
  • huihui-ai — the abliterated (uncensored) Qwen3.8-27B backbone used here (Huihui-Qwen3.8-27B-abliterated, Apache-2.0; layers 18-51 ablated, vision tower untouched).
  • SargeDev — jev-distill-corpus-v3, the 740,957-row calibrated typed-decision corpus AutoTrust's JEV models were trained on (Apache-2.0), and the solar r16 adapter trained here on jev-distill-corpus-v4 (the 1,219-step JEV System-1 run, 17-domain tokenized mix).
  • Qwen — Qwen3.8-27B base (Apache-2.0).
  • TypeSafe AI — Jev 1.13, the original closed teacher behind the System-1 typed-decisions framing (referenced; not redistributed).

Base: huihui-ai/Qwen3.8-27B-abliterated (bf16; the text-only builds strip the vision tower and serve as a plain qwen3_5_text causal LM, the VL build keeps the tower and serves as qwen3_5 / Qwen3_5ForConditionalGeneration).

  • Adapters — this release ships two, and they are NOT interchangeable:
    • solar r16 (alpha 32, 400 modules, no lm_head): trained 1,219 steps on the JEV System-1 corpus (jev-distill-corpus-v4 tokenized mix: T1 gold domains + memory_relevance + 17-domain fill), KL+RPS decision-head distillation objective (AutoTrust-style), cosine LR 2e-4, KL_W 1.0, RPS_W 0.3. Merged with peft merge_and_unload; merge fidelity verified by re-gating the bare merged model (it reproduced the adapter-mounted numbers).
    • r32 (alpha 64, 401 modules, includes lm_head): the backbone LoRA plus the 24-slot decision head re-expressed as an lm_head LoRA (only the 24 verbalizer rows change), so a typed decision is a single prefill step with max_tokens=1 constrained to the option tokens.
  • Decision head + calibration.json (shipped in this repo root): the instrument-panel piece agents call for numeric confidence — the 24-slot verbalizer id list, the per-slot bias, and the per-kind temperature. This is the SAME head and the SAME calibration file (verified byte-identical, md5 11359173… and 7f0f3914…) that produced every gate number in this card, so a consumer reproducing our numbers reproduces them exactly. For everyday natural-language judgment, chat with the model directly and set enable_thinking:false in chat_template_kwargs.
  • Everything measured on one NVIDIA GB10 (DGX Spark-class); quantized with llmcompressor 0.14.0 (NVFP4) and llama.cpp (GGUF ladder).
Downloads last month
463
GGUF
Model size
27B params
Architecture
qwen35
Hardware compatibility
Log In to add your hardware

2-bit

3-bit

4-bit

5-bit

6-bit

8-bit

Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for SargeDev/Solar-JEV-27B-GGUF

Base model

Qwen/Qwen3.8-27B
Quantized
(3)
this model

Dataset used to train SargeDev/Solar-JEV-27B-GGUF