JEVANY / DOCUMENTATION
Data
Training and inference share one JSON structure. Training rows add label and may add target. Store one object per line in UTF-8 JSONL.
For a dataset you can use immediately, run jevany data init --out data/starter.
It copies 24 original synthetic training records and 8 development records from
the installed package, with all three question types and provenance. This starter
is for learning the workflow. Validate it with
jevany data validate data/starter/train.jsonl.
For larger data, jevany data build-sft and jevany data build-rlcr expose the
public-source builders from an installed package. See TRAINING.md
for a text-only build and recipe commands.
Question Types
Choice
{
"type": "choice",
"instructions": "Which team should handle this?",
"criteria": {
"billing": "Charges and payment problems",
"shipping": "Delivery delays"
},
"label": "billing"
}
The label is one key from criteria.
Noul
{
"type": "noul",
"instructions": "Is manual review required?",
"label": true
}
noul is a binary probability. Its label is true or false.
Score
{
"type": "score",
"instructions": "How urgent is this?",
"criteria": ["low", "normal", "high"],
"label": 2
}
The label is the zero-based level index.
Soft Targets
Use a soft target when the evidence does not support one certain answer:
{
"type": "noul",
"instructions": "Is the parcel late under the promised service level?",
"label": false,
"target": {"false": 0.5, "true": 0.5}
}
The label remains required for evaluation compatibility. Training uses target when present. Values are normalized after loading. Targets may omit zero-weight options; unknown keys, negative or nonfinite weights, and zero total mass are rejected, along with labels outside the question's options.
Native Media
Attach native image or video evidence at the request level. A multimodal request currently contains exactly one isolated question.
{
"state": {"study": "Inspect the diagram before answering."},
"media": [{"type": "image", "uri": "cases/diagram.png"}],
"questions": {
"answer": {
"type": "choice",
"instructions": "Which component is connected to the battery?",
"criteria": {"a": "Motor", "b": "Lamp"},
"label": "b"
}
}
}
Training and frozen suites resolve relative paths against the JSONL directory. The HTTP server requires JEVANY_MEDIA_ROOT to enable media and accepts only local files inside that directory. Network URLs are rejected. File bytes, total request bytes, pixels, and declared video frames have configurable caps; videos without a declared frame count are rejected. Use a dedicated upload directory as the media root.
Full Record
See examples/train.jsonl. state and instructions may be strings, objects, arrays, numbers, booleans, or null. Object field names are preserved as text labels. Every question should be answerable from the state and instructions alone.
When creating data:
- keep option keys stable and descriptions specific;
- include cases where information is genuinely missing;
- distinguish ambiguity from label noise;
- keep train and evaluation sources separate, then check normalized text hashes;
- preserve source, generator, prompt, verifier, and license metadata outside the model-facing fields;
- audit generated labels and counterfactual pairs before training.
Current Release Scale
The five LoRA SFT releases listed in the README's Pretrained Models table
belong to model-family-v2. They were trained with supervised fine-tuning on
1,772,725 text records containing 2,180,242 labelled decisions. See the
release metadata for the recorded counts and
model list. At a high level, the corpus covers:
- preference and ranking decisions;
- agent, tool-use, and action selection;
- general and domain reasoning;
- classification and policy decisions; and
- safety-sensitive choices.
These are the same aggregate counts and task families reported in the project README and the technical report.
JevAny also supports native image and video records through the same request schema. Media are resolved and passed to each compatible backbone's native processor; support is declared by the loaded checkpoint rather than inferred from a filename or prompt.
The bundled build-sft and build-rlcr commands remain reference builders for
public experiments and custom training. They do not reconstruct the current
release corpus. Review upstream licenses before downloading, training on, or
redistributing any converted data.
Evaluation Separation
Keep training, calibration, and evaluation records separate. Fit calibration
parameters only on the calibration partition, preserve group identifiers for
related questions, and check normalized text hashes before evaluation. Current
release metrics and suite hashes are recorded in
results/model-family-v2.json; protocol notes
are in EVALUATION.md.