Glossary
Terms are grouped: the decision API first, then the model, then training, then serving and jevx.
Decisions
Section titled “Decisions”| Term | Meaning |
|---|---|
| System One | A decision model that answers in well under a second with a number or a key, never prose. 1 |
/v1/systemone |
The OpenJevX decision endpoint, served by the same process as /health, behind an API-key check. 2 3 |
noul |
A yes/no question; its two keys are false and true. 4 |
choice |
A question that picks one option key; the answer carries the winning key as choice. 5 6 7 |
score |
A question whose options are levels, lowest first, such as low|medium|high. 8 |
| state | The facts the decision depends on, as a JSON object or plain text. 9 |
question: type, instructions, criteria |
A training row’s questions are {id:{type: noul|choice|score, instructions, criteria}}. 10 |
probabilities |
One probability per option key, for example {"api":0.0073,"billing":0.0066,"docs":0.0073,"web":0.9788} for a choice. 11 |
confidence / answer_confidence |
For noul, max(p, 1-p); in the routing recipe the pick web has probability 0.9788 and confidence 0.9788. 12 11 |
act_probability |
A field under action in each answer, for example "action":{"act_probability":1}. 11 |
The model
Section titled “The model”| Term | Meaning |
|---|---|
| Laya | The base model, convaiinnovations/laya, built by Nandakishor Mukkunnoth, ConvAI Innovations. 13 |
| ModernBERT | The encoder, answerdotai/ModernBERT-large (395M), plus Laya’s decision head (421M total). 14 |
| RLCD | Reinforcement Learning for Calibrated Decisions, the training method. 15 |
| model folder | One folder holding openjevx.w8.onnx, config.json and tokenizer.json; the server loads it and uses that model’s own temperatures. 16 |
openjevx.w8.onnx |
The graph, 8-bit weight-only, at most 750 MB (model.max_w8_mb). 17 18 |
config.json (model) |
The model’s version, calibration temperatures (choice, score, noul), max_len, special ids and sha256 of the graph. 19 20 |
tokenizer.json |
Optional in a model folder; the built-in ModernBERT tokenizer is used otherwise. 21 |
QDQ weight-only / MatMulNBits |
The graph is QDQ weight-only: int8 DequantizeLinear feed fp32 MatMul, and ORT fuses them into MatMulNBits (8-bit, accuracy level 4 = int8 activations). 22 |
| calibration temperature | temperature in config.json is that model’s own confidence calibration, so each model carries its own. 23 24 |
max_len |
The token length the model was trained at; model 0.5.2’s config.json has 512, so longer inputs are cut at 512 tokens. 25 26 |
head_max |
The token budget shared by the question head and its options; 256 in the model 0.5.2 folder. 27 28 25 |
| marker | The input position of each option; each option’s token ids start with p.MASK, and markers[i] records where option i begins. 29 30 |
[MASK] in text |
Any literal [MASK] in the state, instructions or options is replaced by a space. 31 32 33 |
Training and the gate
Section titled “Training and the gate”| Term | Meaning |
|---|---|
| gold | The target in a training row: full probability distributions, not hard labels. 34 35 |
| gate | The test a model must pass to ship: it is served locally and scored, and ft.py gate exits 1 if it misses the config thresholds. 36 37 |
| basics gate | gate/basics_gate.jsonl and gate/conditions_basics_gate.jsonl, the basics_files the thresholds apply to. 38 |
| jevx 13 fundamentals | 13 checks run through jevx; a model needs at least 12 of 13. 39 |
| right & confident | Right and sure enough to act on: yes ≥ 0.8, no ≤ 0.2, a choice or score ≥ 0.6. 40 |
| confidently wrong | Sure and wrong; the dangerous one. 41 |
| usable | Right AND past jevx’s default thresholds (yes ≥ 0.8, no ≤ 0.2, choice/score ≥ 0.6). 42 |
| leakage check | Removes any training question that also appears in a test or gate file, so the gate measures unseen cases. 43 |
| shard | Built by ft.py package in <data>/work/shards/<version>[-smoke]/; ft.py train runs the shard on the GPU provider. 44 |
| smoke run | The run ft.py all makes before the full run: a ~10-minute smoke job on the GPU provider. 45 46 |
--repeat |
How many times your train file is repeated in the training mix; default 3. 47 |
| trainable checkpoint | The training checkpoint that is kept so the model can be fine-tuned again. 48 |
| fine-tune kit | The v0.5.2 trainable checkpoint (777 MB): model.safetensors, encoder/, tokenizer/, rl_agent_config.json, and no training data. 49 |
| DESTROY-AFTER label | The self-destroy function destroys only openjevx-*-DESTROY-AFTER boxes when given the kill token. 50 |
| private / public R2 bucket | openjevx-train holds shards, runs, checkpoints and gate reports and stays private; only released models go to the public openjevx bucket. 51 |
jev-train |
Trains Jev on your own decisions: it validates your CSV, uploads it to S3 in your AWS account, starts a SageMaker training job and watches it. 52 |
Serving and jevx
Section titled “Serving and jevx”| Term | Meaning |
|---|---|
models/current/ |
The S3 prefix the server loads (model = s3://<bucket>/models/current/). 53 |
| promote / rollback | Promote copies the 3 files of models/<version>/ into models/current/; rollback promotes the previous version again. 54 |
| ETag reload | On a new ETag the server downloads into a new cache folder, verifies it, swaps it in between requests, and keeps the previous folder for rollback. 55 |
model_sha256 pin |
The sha256 of the .tar.gz or the folder’s openjevx.w8.onnx; a mismatch fails loudly. 56 57 |
| fallback model | The folder served while the bucket holds no model yet; by default the model/ lookup next to the executable. 58 |
Server-Timing |
A header on every decision response with encode, wait, run and total in ms. 59 |
usage.server_ms |
The Server-Timing total, repeated as usage.server_ms in the JSON body. 59 |
openjevx.api-key / openjevx.password |
Files the server generates (mode 0600) when the API key or dashboard password is needed but unset: beside openjevx.json, else in $OPENJEVX_DATA, else the working folder; reused on later starts. 60 |
| jevx profile | A named System One endpoint in jevx, added with jevx profile add NAME URL --model MODEL. 61 |
| jevx cache | Answers are cached on your machine, a hash-keyed file each; --fresh asks again. 62 |
See also Fine-tune and Troubleshooting.
Sources
Section titled “Sources”Footnotes
Section titled “Footnotes”-
jevx @ 4a4722d (4a4722d) ·
README.mdL14–16 ↩ -
openjevx @ v0.5.9 (ee2a1f4) ·
cmd/openjevx/main.goL190 ↩ -
openjevx @ v0.5.9 (ee2a1f4) ·
cmd/openjevx/main.goL206–208 ↩ -
openjevx @ v0.5.9 (ee2a1f4) ·
internal/decide/decide.goL98–100 ↩ -
openjevx @ v0.5.9 (ee2a1f4) ·
recipes/README.mdL37 ↩ -
openjevx @ v0.5.9 (ee2a1f4) ·
recipes/README.mdL40 ↩ -
openjevx @ v0.5.9 (ee2a1f4) ·
internal/decide/decide.goL236–237 ↩ -
openjevx @ v0.5.9 (ee2a1f4) ·
finetuning/dataprep/import_csv.pyL11 ↩ -
openjevx @ v0.5.9 (ee2a1f4) ·
finetuning/dataprep/import_csv.pyL7 ↩ -
openjevx @ v0.5.9 (ee2a1f4) ·
README.mdL250 ↩ -
openjevx @ v0.5.9 (ee2a1f4) ·
recipes/02-route-a-ticket-queue.mdL28 ↩ ↩2 ↩3 -
openjevx @ v0.5.9 (ee2a1f4) ·
internal/decide/decide.goL244–246 ↩ -
openjevx @ v0.5.9 (ee2a1f4) ·
docs/adr/0001-base-model.mdL12–16 ↩ -
openjevx @ v0.5.9 (ee2a1f4) ·
docs/adr/0001-base-model.mdL14 ↩ -
openjevx @ v0.5.9 (ee2a1f4) ·
docs/adr/0001-base-model.mdL15 ↩ -
openjevx @ v0.5.9 (ee2a1f4) ·
docs/RELEASE_PROCESS.mdL60–68 ↩ -
openjevx @ v0.5.9 (ee2a1f4) ·
AGENTS.mdL15 ↩ -
openjevx @ v0.5.9 (ee2a1f4) ·
docs/RELEASE_PROCESS.mdL62 ↩ -
openjevx @ v0.5.9 (ee2a1f4) ·
docs/RELEASE_PROCESS.mdL63 ↩ -
openjevx @ v0.5.9 (ee2a1f4) ·
README.mdL69–76 ↩ -
openjevx @ v0.5.9 (ee2a1f4) ·
README.mdL76 ↩ -
openjevx @ v0.5.9 (ee2a1f4) ·
llmresults/14-x86-cpu-latency.mdL15–17 ↩ -
openjevx @ v0.5.9 (ee2a1f4) ·
README.mdL70–71 ↩ -
openjevx @ v0.5.9 (ee2a1f4) ·
README.mdL79 ↩ -
openjevx @ v0.5.9 (ee2a1f4) ·
llmresults/13-v0.5.2-gate-misses.mdL120–121 ↩ -
openjevx @ v0.5.9 (ee2a1f4) ·
internal/decide/decide.goL153 ↩ -
openjevx @ v0.5.9 (ee2a1f4) ·
internal/decide/decide.goL167–168 ↩ -
openjevx @ v0.5.9 (ee2a1f4) ·
internal/decide/decide.goL147 ↩ -
openjevx @ v0.5.9 (ee2a1f4) ·
internal/decide/decide.goL172–176 ↩ -
openjevx @ v0.5.9 (ee2a1f4) ·
internal/decide/decide.goL127 ↩ -
openjevx @ v0.5.9 (ee2a1f4) ·
internal/decide/decide.goL138 ↩ -
openjevx @ v0.5.9 (ee2a1f4) ·
internal/decide/decide.goL142 ↩ -
openjevx @ v0.5.9 (ee2a1f4) ·
docs/adr/0002-training-run.mdL14 ↩ -
openjevx @ v0.5.9 (ee2a1f4) ·
docs/adr/0001-base-model.mdL22 ↩ -
openjevx @ v0.5.9 (ee2a1f4) ·
docs/RELEASE_PROCESS.mdL71 ↩ -
openjevx @ v0.5.9 (ee2a1f4) ·
finetuning/ft.pyL14–15 ↩ -
openjevx @ v0.5.9 (ee2a1f4) ·
finetuning/config.example.jsonL136–142 ↩ -
openjevx @ v0.5.9 (ee2a1f4) ·
docs/RELEASE_PROCESS.mdL77–78 ↩ -
openjevx @ v0.5.9 (ee2a1f4) ·
docs/book/train-your-own-jev.mdL217 ↩ -
openjevx @ v0.5.9 (ee2a1f4) ·
docs/book/train-your-own-jev.mdL219 ↩ -
openjevx @ v0.5.9 (ee2a1f4) ·
llmresults/10-v041-baseline.mdL4–5 ↩ -
openjevx @ v0.5.9 (ee2a1f4) ·
docs/book/train-your-own-jev.mdL155–156 ↩ -
openjevx @ v0.5.9 (ee2a1f4) ·
finetuning/ft.pyL11–13 ↩ -
openjevx @ v0.5.9 (ee2a1f4) ·
finetuning/ft.pyL16 ↩ -
openjevx @ v0.5.9 (ee2a1f4) ·
finetuning/Taskfile.ymlL19–21 ↩ -
openjevx @ v0.5.9 (ee2a1f4) ·
finetuning/dataprep/import_csv.pyL249 ↩ -
openjevx @ v0.5.9 (ee2a1f4) ·
AGENTS.mdL18–19 ↩ -
openjevx @ v0.5.9 (ee2a1f4) ·
README.mdL248 ↩ -
openjevx @ v0.5.9 (ee2a1f4) ·
docs/adr/0009-one-job-gpu-run-via-r2.mdL36–37 ↩ -
openjevx @ v0.5.9 (ee2a1f4) ·
docs/adr/0009-one-job-gpu-run-via-r2.mdL67–68 ↩ -
jev-cloud @ origin/main (10a744c) ·
client/README.mdL3–9 ↩ -
jev-cloud @ origin/main (10a744c) ·
docs/model-s3-contract.mdL8 ↩ -
jev-cloud @ origin/main (10a744c) ·
docs/model-s3-contract.mdL20–21 ↩ -
openjevx @ v0.5.9 (ee2a1f4) ·
README.mdL113–114 ↩ -
openjevx @ v0.5.9 (ee2a1f4) ·
README.mdL97 ↩ -
openjevx @ v0.5.9 (ee2a1f4) ·
README.mdL108 ↩ -
openjevx @ v0.5.9 (ee2a1f4) ·
README.mdL100 ↩ -
openjevx @ v0.5.9 (ee2a1f4) ·
cmd/openjevx/auth.goL25–28 ↩ -
jevx @ 4a4722d (4a4722d) ·
README.mdL63–66 ↩ -
jevx @ 4a4722d (4a4722d) ·
README.mdL29–30 ↩