cmzy’s AJev runs Jev-style decisions locally using Gemma and LoRA, a small set of learned changes to a base model. Its code supports yes/no, single-choice, and ordered-score questions, with a local /v1/systemone endpoint.
Read the probability calculation
- Each question becomes a prompt containing the shared state and labelled answer options.
- The direct path reads the model’s next-token scores for those labels and converts them into probabilities.
- The Transformers backend can reuse a shared prompt prefix; the vLLM server batches concurrent requests.
- The inspected implementation handles text and JSON; it has no Jev image or Box interface.
This is a separate model implementation, unaffiliated with TypeSafe. Matching the request format gives callers a familiar interface; typed output is not a correct decision.
Check which adapter was calibrated
The README broadly promises calibrated probabilities, meaning confidence should match how often answers are right. The adapter files make a narrower distinction:
- 12B lora7: its configuration contains separate fitted temperature corrections for yes/no, choice, and score questions.
- 31B lm6q: its configuration contains no calibration temperatures. The model card explicitly says its probabilities use temperature 1 and recommends recalibration on your own data.
- Thinking modes: the project warns that its adapters and fitted corrections were trained for direct answers. Generating reasoning first changes the setting that needs validation.
A probability correction fitted on the author’s examples still needs checking on your workload.
Keep benchmark editions and timings separate
The author reports a 65.08 chance-corrected public Decision Index 0.3 score, answering 140,620 requests, for the 31B adapter. Its card reports 56.27 for the unadapted base with the same prompt and readout. These are author-run results; neither was reproduced here.
The results archive distinguishes two timing settings:
- One request at a time: author-reported median 138.8 ms on an RTX PRO 6000, from a 506-request sample.
- Concurrent benchmark runs: author-reported median 1,040.8 ms, including queueing behind other runners.
- The README’s 12B and 26B scores use Decision Index 0.2.1, so they should stay separate from the 31B result on 0.3.
Choose the serving path deliberately
The HTTP implementation rejects prompts over its configured context limit. The ordinary Python predictor instead truncates long state text by default; the benchmark engine explicitly disables that truncation.
The project estimates about 62 GB for the 31B base in BF16, a reduced-precision weight format. Actual serving needs additional memory for the adapter and working state. Its Apache-2.0 code licence also leaves the base-model and training-data terms to check; the cards warn that some data has non-commercial restrictions.
Caveat: source and adapter configurations inspected; 10 locally written offline plumbing tests passed. Model inference, benchmark scores, timing, and calibration were not reproduced; this was not a security audit.