Model reference cards

September 20, 2026 · View on GitHub

One card per model this project has served or scored. Each card records the exact serving configuration used, the eval settings, the measured results with their source run, and an honest strengths / weaknesses / when-to-use section. Cards are living documents: append to the Changelog at the bottom of a card whenever a new run lands, and keep the summary table here in step.

Summary (SEC 10-K extraction, 121 questions, scoring_version 2026-09-13.1)

CardClassWhere runAccuracy95% CIDecodeWhole runRole today
gpt-oss-120bMoE 117B / 5.1B active, MXFP4Spark CUDA98.3%0.96–1.0030 t/s26 minOn-prem default for extraction
↳ same, via LM StudioHalo Vulkan96.7%0.93–0.9929 t/s77 minHalo reference
↳ same, via LM StudioHalo ROCm95.0%0.91–0.9819 t/s72 minNot recommended on Windows
qwen3.8-27bDense 27B, UD-Q4_K_XLSpark CUDA95.9%0.92–0.999.8 t/s125 minCareful reader, slow; candidate for reasoning tasks
↳ same, native 262K + q8_0 KVRTX 5090 CUDA (Windows)98.3%0.96–1.0055 t/s24 minMatches 120b's 119/121 on a 32 GB consumer card; GS recovered at 262K
↳ same, 131K (Spark config)RTX 5090 CUDA (Windows)94.2%0.89–0.9860 t/s23 minSpark result replicated, 5x faster; GS still chunked 3/8
bonsai-2-27bDense 27B, ternary 1.72 bpw (PrismML), PQ2_0 7.2 GBRTX 5090 CUDA (Windows), PrismML fork, 262K f16 KV96.7%0.93–0.9993 t/s20 minQwen3.8 at 2.4x less weight memory; 2 Qs behind the Q4 Qwen; more thinking overruns
↳ same, 131KRTX 5090 CUDA (Windows), PrismML fork92.6%0.88–0.9798 t/s21 minGS chunked 2/8; 5 truncations
gpt-oss-20bMoE 21B / 3.6B active, MXFP4Spark CUDA87.6%0.81–0.9345 t/s19 minLatency/memory option, human review required
nemotron-3-superHybrid Mamba/MoE 120B / 12.7B active, Q4_KSpark CUDA, capped 131K93.4%0.88–0.9820 t/s148 minOver-thinks at 4096 (6 truncations); thinking cap + unconstrained run pending
glm-4.7-flashMoE 30B / 3.6B active, UD-Q4_K_XLSpark CUDA94.2%0.90–0.9828 t/s102 minSmall/fast candidate; 4 truncations; thinking-off run pending
qwen3.5-122b-a10bMoE 122B / 10B active, UD-Q4_K_XLSpark CUDA, 262K90.9%0.85–0.9617 t/s250 minBehind the dense 27B; 10 truncations; thinking-off run pending
gemma-4-31bDense 30.7B, Google QAT q4_0Spark CUDA, thinking on96.7%0.93–0.997.9 t/s130 minPerfect on every filing that fits (104/104); loses only GS chunks; slowest dense model here
↳ same, thinking off (-nothink)Spark CUDA95.0%0.91–0.987.8 t/s61 minThinking bought 2 questions for 69 min; 0 truncations either way
gemma-4-26b-a4bMoE 25.2B / 3.8B active, Google QAT q4_0planned (Spark first)Fast-decode candidate against gpt-oss-20b / GLM; runs pending
deepseek-v4-flashMoE ~13B active, UD-Q2_K_XL 96.8 GB, 1M ctxSpark CUDA, thinking off (-nothink)98.3%0.96–1.0016 t/s51 minTies 120b on accuracy at 2 bits; half the decode; 88% cache reuse, so the pin risk is closed; thinking twin pending
laguna-s-2.1MoE 118B / 8B active, UD-Q4_K_XL 73.4 GBSpark CUDA, thinking off (vendor default)95.0%0.91–0.9817 t/s29 minFirst coding-specialist here; fastest wall clock after 120b; misses are GS chunks + two wrong-line picks; -thinking twin and SWE suite pending
gpt-5.6-terraHosted frontierOpenAI API99.2%0.98–1.0020 min, ~$25Ceiling reference

Intervals are percentile bootstraps over per-item verdicts from a single run; overlapping intervals mean the models are not distinguishable at this sample size. The machine-generated source is state/evals/report-sec.md.

How to update a card

  1. Land the run (commit state/evals/...) and regenerate report-sec.md.
  2. Copy the new numbers into the card's Results table with the run directory as the source.
  3. Revise Strengths / Weaknesses / When to use if the evidence changed them.
  4. Append a dated line to the card's Changelog, and update the summary table above.
  5. New model: copy TEMPLATE.md, fill every field you can, mark the rest unknown rather than deleting them.

Rules: every number cites a run directory or a report; no number lives only in a card. Strengths and weaknesses describe what we measured, not the model card's claims.