--- base_model: Qwen/Qwen3.5-2B library_name: peft license: apache-2.0 pipeline_tag: text-generation tags: - lora - transformers - decision-model - opencodifier --- # OpenCodifier E1-E — Qwen3.5-2B verdict-slot decision LoRA A LoRA adapter that turns [Qwen/Qwen3.5-2B](https://huggingface.co/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](https://github.com/aliasfoxkde/OpenCodifier) ladder, and the first own-trained arm to pass both release-gate legs. ## Results All numbers from the OpenCodifier evaluation records ([BENCHMARKS.md](https://github.com/aliasfoxkde/OpenCodifier/blob/main/docs/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 ```python 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 ```bibtex @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} } ```