OpenCodifier E1-E β€” Qwen3.5-2B verdict-slot decision LoRA

A LoRA adapter that turns Qwen/Qwen3.5-2B into a Jev-style decision model: probabilities are read from the log-probs of verdict-slot label tokens at the answer position β€” nothing is generated, nothing is parsed. It is the decision rung of the OpenCodifier ladder, and the first own-trained arm to pass both release-gate legs.

Results

All numbers from the OpenCodifier evaluation records (BENCHMARKS.md, TRAINING.md Β§9.9.1). Public 231-item JevBench split, deterministic readout, fp16, single V100.

metric value
JevBench-231 accuracy 0.6840 (publish bar 0.6494 β€” clear)
Internal holdout suite 0.8083 (gate β‰₯ 0.75 β€” GATE_PASS; seed-replicated 0.8000)
Raw board ECE 0.207
Holdout-fitted temperature (T=3.362, analysis-only on board) ECE 0.207 β†’ 0.127
Auto-decidable @5% risk 0.100 (23/231)
Brier 0.504
p50 latency 0.58 s

Per-family shape: routing / tool-selection / ordinal families at 1.00; relational/compositional families are the weakness (multi_hop 0.389, judge_hard 0.412, long_policy 0.368). The board is lost on compositional families, not on routing β€” the candidate lever is relational-heavy soft-label data, not parameters.

Training

  • Base: Qwen3.5-2B, LoRA verdict-slot readout
  • Corpus: merged-v3 (173,452 records; composition and join rates in TRAINING.md). The corpus itself is not released with this adapter.
  • Schedule: 11,009 steps, single V100 (T5500), fp16
  • Calibration: temperature T=3.362 fitted on a labelled holdout (holdout ECE 0.179 β†’ 0.117); artifact ships in the OpenCodifier repo at calibration/e1e-qwen3.5-2b-holdout.json

Intended use

Typed multiple-choice decisions (routing, tool selection, ordinal grading) where calibrated token-level probabilities β€” not free text β€” are the product. Pairs with the OpenCodifier engine's confidence gate: low-confidence reads abstain or escalate to a stronger rung.

Out of scope

Free-form generation; the base model's general chat ability is not preserved or claimed. Not evaluated for safety of generated content β€” the adapter is a readout head, not a chat model.

How to use

from peft import PeftModel
from transformers import AutoModelForCausalLM, AutoTokenizer

base = AutoModelForCausalLM.from_pretrained("Qwen/Qwen3.5-2B", torch_dtype="float16")
model = PeftModel.from_pretrained(base, "TaskWizerAI/opencodifier-e1e-2b")

Scores come from label-token log-probs at the answer position; see the OpenCodifier repo for the readout harness and the Jev adapter wire shape.

License

Apache-2.0, matching the OpenCodifier project.

Citation

@software{opencodifier_e1e_2026,
  title  = {OpenCodifier E1-E: a gate-passing 2B decision-model LoRA},
  author = {Kinney, Michael},
  year   = {2026},
  url    = {https://github.com/aliasfoxkde/OpenCodifier}
}
Downloads last month
18
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Model tree for TaskWizerAI/opencodifier-e1e-2b

Finetuned
Qwen/Qwen3.5-2B
Adapter
(287)
this model