Actual training
- Base: Qwen/Qwen3.5-2B
- Pinned base revision:
15852e8c16360a2fea060d615a32b45270f8a8fc
- GPU: Tesla T4
- Completed: 2026-10-11T16:41:31.241041+00:00
- Method: rank 16 LoRA, alpha 16, two epochs,
learning rate 0.0001, seed 894.
- Training duration: 985.71 seconds.
- Validation loss: 0.11376229673624039.
- Adapter SHA-256:
53bf107ba041bc131421f01e478913ba647c6c0b354b5cec5d348e99c4171861
- Adapter tensors: 192; saved dtypes: F32.
- Trainable parameters: 10911744.
- Optimizer steps: 52.
The T4 trainer disabled fp16 training and Torch compilation. Unsloth retained
float16 frozen base weights and float32 adapters. Observed parameter dtype
counts are recorded separately; this was not a full float32 checkpoint.
Source and question tokens are masked from the loss. The validation loss selects
the best epoch checkpoint. Training loss is not an accuracy or neutrality score.
See training_manifest.json and trainer_history.json for observed settings,
package versions, and recorded losses.
Data and isolation
104 Codex-authored training examples cover Propositions 3, 4, 5, 6, and 33.
31 validation examples cover 34 and 35. The 15 held-out pilot cases cover 2, 32,
and 36. Training and validation packets contain no references to those held-out
measures. The examples include grounded answers, partial answers, missing facts,
recommendation requests, and instruction attacks.
Independent human review of these synthetic labels is pending. Training
packets sometimes include a manually selected supporting passage when retrieval
misses it. Pilot packets use unmodified BM25 retrieval and receive no expected
answers. See data_manifest.json for hashes and split counts.
The sole corpus is the California Secretary of State's 2024 Official Voter
Information Guide.
PDF SHA-256: 4f7fef63bddb5c60aaabda673b57ae4375105ce941d2ff9dc9d7136aee7e4ef4.
The original source retains its own rights; the adapter's model license does not
relicense the guide.
Held-out evaluation
Three conditions answer the same 15 cases: the untuned naive prompt, untuned
source-only prompt, and fine-tuned source-only prompt. The two source-only
conditions share retrieval, instructions, greedy decoding, and application
checks. Neither uses JSON grammar. Scores concern the voter-visible answer;
raw failures are retained separately. A fresh GenAI judge uses a written rubric
and shuffled labels. A team member supplies the independent second rating.
Table with columns: System, Scorer, n, Accuracy, Completeness, Clarity, Neutrality, Passes, Unsupported claims| System | Scorer | n | Accuracy | Completeness | Clarity | Neutrality | Passes | Unsupported claims |
|---|
| finetuned_prototype | independent_judge | 15 | 1.4 | 1.2 | 1.933 | 2 | 7 | 1 |
| untuned_baseline | independent_judge |
Human second ratings remain pending; this is not a completed two-rater evaluation.
These are 15 selected cases, not a population accuracy estimate. A format or
exact-quote pass does not establish semantic correctness.
Loading
Use the accompanying project notebook and the pinned package versions on a
CUDA GPU. The project supplies training/run_saved_adapter.py:
python training/run_saved_adapter.py --adapter /path/to/this/model-repository \ --proposition 2 --question "How much would Proposition 2 authorize the state to borrow?"
The runner loads the pinned base with Unsloth and this adapter with PEFT. It
supplies only official-guide evidence, disables thinking and applies the same
quote and citation checks. The public adapter config pins the base revision;
its saved weights are unchanged. A fresh GPU reload reproduced one recorded
held-out raw answer exactly; see adapter_reload_check.json. That check does
not establish accuracy on other questions. The separate local CPU demo uses
an untuned 4B GGUF. No quantized trained export or hosted inference endpoint
has been verified.
Limits
Only three historical statewide measures are exposed in the pilot. PDF column
extraction can mix reading order. Retrieval may miss a relevant passage; exact
quotes may be real while the paraphrase is wrong. Advocacy statements must be
attributed. Employer size, dates, amounts, and fiscal uncertainty require care.
No individual tax estimates, election results, candidates, or recommendations
are supplied from outside the guide. Small synthetic datasets can overfit.
Attribution
Base weights: Qwen, Apache-2.0. Training tooling: Unsloth, Transformers, TRL,
and PEFT. Project development and synthetic labels: Codex-assisted. Independent
GenAI scoring is disclosed in the evaluation provenance. Code has a separate
MIT license in the project package. No private team audio or course attachments
are included.