Instructions to use SargeDev/Solar-Decision-JEV-27B with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use SargeDev/Solar-Decision-JEV-27B with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="SargeDev/Solar-Decision-JEV-27B") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# pip install -U transformers accelerate # Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("SargeDev/Solar-Decision-JEV-27B") model = AutoModelForCausalLM.from_pretrained("SargeDev/Solar-Decision-JEV-27B", device_map="auto") messages = [ {"role": "user", "content": "Who are you?"}, ] inputs = tokenizer.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=256) print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use SargeDev/Solar-Decision-JEV-27B with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "SargeDev/Solar-Decision-JEV-27B" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "SargeDev/Solar-Decision-JEV-27B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/SargeDev/Solar-Decision-JEV-27B
- SGLang
How to use SargeDev/Solar-Decision-JEV-27B with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "SargeDev/Solar-Decision-JEV-27B" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "SargeDev/Solar-Decision-JEV-27B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "SargeDev/Solar-Decision-JEV-27B" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "SargeDev/Solar-Decision-JEV-27B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use SargeDev/Solar-Decision-JEV-27B with Docker Model Runner:
docker model run hf.co/SargeDev/Solar-Decision-JEV-27B
Solar-Decision-JEV-27B
The r32 + solar merge. huihui Qwen3.8-27B-abliterated + the AutoTrust
r32 lm_head LoRA + our solar r16 LoRA, merged by direct LoRA-delta
arithmetic (bit-exact verified: err = 0.000e+00 against a replicated
computation, on sampled weights including lm_head).
The decision readout is trained INTO the model, so a typed decision is a
single prefill with max_tokens=1, constrained to the option tokens, read
back as log-probabilities. No separate head to run.
What this merge is, honestly
Both LoRAs are applied on top of the same base, and they are near-orthogonal (mean cosine 0.003) — so they do not cancel. But they are not additive in accuracy. On the same 27,695 rows, same harness, same head + calibration:
| model | choice top-1 | score top-1 | score KL | noul AUROC |
|---|---|---|---|---|
| AutoTrust (published reference) | 0.9041 | 0.8910 | 0.0210 | 0.9961 |
| r32 + lm_head alone | 0.8693 | 0.8135 | 0.0619 | 0.9919 |
| r32 + lm_head + solar r16 (this repo) | 0.8162 | 0.7192 | 0.1332 | 0.9810 |
| solar r16 alone | 0.5054 | 0.5369 | 0.4699 | 0.9449 |
The combined row lands between its two parents on every metric, not above the better one. Stacking the solar adapter on top of a readout-trained model degraded the readout r32 had learned: choice top-1 fell 5.3 points and score KL roughly doubled.
We publish this anyway, and we publish those numbers, because the result is
the finding. If you want the best decision instrument, use
SargeDev/Solar-JEV-27B-R32 (the r32 merge on its own) or the
already-published SargeDev/JEV-27B-Uncensored. If you want the merge of the
decision readout with our own solar training, that is this repo.
On the chat side, this merge is also not the best
The solar r16 LoRA is what we trained on the JEV System-1 corpus (1,219 steps, KL+RPS decision-head distillation), and on its own it is a good everyday-chat model. Stacked on top of r32, it does not help:
| model | GSM8K (8-shot) | IFEval (prompt-strict) | MMLU subset |
|---|---|---|---|
| huihui base | 97.7 | 76.0 | 81.2 |
| solar r16 alone | 96.0 | 81.5 | 81.2 |
| r32 + lm_head alone | 94.0 | 81.0 | 82.5 |
| r32 + lm_head + solar (this repo) | 91.0 | 72.5 | 80.8 |
The combined model is the weakest of the four on GSM8K and on instruction-following. It is the only row that loses on every axis.
So: this repo is a complete, honestly-measured merge of the two adapters,
and on our measurements it is beaten by each of its parents. We publish it
because the negative result is real and reproducible, and because the
comparison belongs in the open. If you want the best model, use
SargeDev/Solar-JEV-27B-R32 (or the already-published
SargeDev/JEV-27B-Uncensored); if you want the best everyday-chat model, use
SargeDev/Solar-JEV-27B (the solar build).
Quick start (vLLM, one GB10/Spark-class box)
vllm serve SargeDev/Solar-Decision-JEV-27B \
--served-model-name jev-judgment-combined --trust-remote-code \
--max-model-len 8192 --gpu-memory-utilization 0.85 \
--default-chat-template-kwargs '{"enable_thinking": false}'
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_headLoRA 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 r32+solar (ours) | Jev Judgment r32+lm_head | AutoTrust reference (published) |
|---|---|---|---|---|
| noul.AUROC | 9969 | 0.9810 (below bar) | 0.9919 | 0.9961 |
| noul.top-1 | 9969 | 0.9274 | 0.9486 | n/a |
| noul.ECE | 9969 | 0.0057 | 0.0122 | n/a |
| noul.KL | 9969 | 0.0167 | 0.0081 | n/a |
| choice.top-1 | 9199 | 0.8162 (below bar) | 0.8693 | 0.9041 |
| choice.ECE | 9199 | 0.1592 | 0.0051 | n/a |
| choice.KL | 9199 | 0.2208 | 0.0530 | n/a |
| score.top-1 | 8527 | 0.7192 (below bar) | 0.8135 | 0.8910 |
| score.ECE | 8527 | 0.0377 | 0.0367 | n/a |
| score.KL | 8527 | 0.1332 (below bar) | 0.0619 | 0.0210 |
| overall.top-1 | 27695 | 0.8264 | 0.8807 | n/a |
| overall.ECE | 27695 | 0.0625 (below bar) | 0.0090 | 0.0011 |
| overall.KL | 27695 | 0.1203 (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:
The readout has to be trained INTO the model. A separate projection over the final hidden state (the
solar r16row) reaches only 0.5054 choice top-1; the same backbone with anlm_headLoRA 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.Adding a second, readout-free adapter on top makes the typed-decision accuracy WORSE, not better. The
combinedrow 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
r32adapter used here is theirs, unmodified: the backbone LoRA with the decision head re-expressed as anlm_headLoRA, 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, nolm_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 peftmerge_and_unload; merge fidelity verified by re-gating the bare merged model (it reproduced the adapter-mounted numbers).r32(alpha 64, 401 modules, includeslm_head): the backbone LoRA plus the 24-slot decision head re-expressed as anlm_headLoRA (only the 24 verbalizer rows change), so a typed decision is a single prefill step withmax_tokens=1constrained 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…and7f0f3914…) 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 setenable_thinking:falseinchat_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
- 26