SAVRN
Search Contact SAVRN

Open-weight model

LightJev-0.6B-v0.1

by Rongxinzy rongxinzy/LightJev-0.6B-v0.1

A trained finite-candidate decision prototype built on Qwen3-0.6B by RongxinAI. Full weights, tokenizer, training logs, frozen gold-only data and held-out predictions are included.

Parameters596M
Context
Weights2.4 GB
Licenseapache-2.0
AccessOpen weights
Monthly Downloads

Runs On

What it takes to serve LightJev-0.6B-v0.1 (596M parameters): the memory its weights need at each precision, and the cheapest way to rent enough data-center GPUs to hold them.

PrecisionWeightsMemory neededCheapest setupPer hourAlso fits
16-bit 1.2 GB 1.4 GB 1x MI300X (192 GB)
Vultr
$1.85 1x H100 $1.99 · 1x MI325X $2.00
8-bit 0.6 GB 0.7 GB 1x MI300X (192 GB)
Vultr
$1.85 1x H100 $1.99 · 1x MI325X $2.00
4-bit 0.3 GB 0.4 GB 1x MI300X (192 GB)
Vultr
$1.85 1x H100 $1.99 · 1x MI325X $2.00

Memory is the weights at that precision plus 20% for the runtime and a short context; a long context needs more. Prices are the lowest on-demand hourly rates in the SAVRN Index, read Sep 18, 2026.

Model Card

By Rongxinzy, published under apache-2.0, revision b3d9a281885e.

A trained finite-candidate decision prototype built on Qwen3-0.6B by RongxinAI. Full weights, tokenizer, training logs, frozen gold-only data and held-out predictions are included. This is a synthetic-domain research release, not a general business decision model or an official Jev reproduction. Selected arm: CE, checkpoint step 250, chosen only by development cross-entropy. This selected checkpoint contains 20 head-only plus 230 full-model updates (4,000 sampled questions); each completed training arm ran the longer 20 + 300 update budget (5,120 sampled questions). It has 596,052,993 parameters, including a shared 3,073-parameter LayerNorm/scalar scoring head. Choice, Boolean and ordinal…

Read Rongxinzy's full model card

A trained finite-candidate decision prototype built on Qwen3-0.6B by RongxinAI. Full weights, tokenizer, training logs, frozen gold-only data and held-out predictions are included. This is a synthetic-domain research release, not a general business decision model or an official Jev reproduction.

Selected arm: CE, checkpoint step 250, chosen only by development cross-entropy. This selected checkpoint contains 20 head-only plus 230 full-model updates (4,000 sampled questions); each completed training arm ran the longer 20 + 300 update budget (5,120 sampled questions). It has 596,052,993 parameters, including a shared 3,073-parameter LayerNorm/scalar scoring head. Choice, Boolean and ordinal Score all use a candidate softmax. Each candidate carries the complete context through the backbone; there is no autoregressive answer generation, prefix-sharing claim, or RLCD implementation.

Load and predict

This is a custom LightJev scoring checkpoint.

Installation and first run

Use Python 3.10 or newer (Python 3.12 was used for validation):

python -m venv .venv
source .venv/bin/activate
python -m pip install 'git+https://github.com/rongxinzy/[email protected]' huggingface_hub

On Windows, activate with .venv\Scripts\activate. CPU inference works without CUDA. For NVIDIA GPU inference, install a CUDA-enabled PyTorch build compatible with your driver; check python -c "import torch; print(torch.cuda.is_available())" before selecting device="cuda".

The public checkpoint requires no HF token. First download includes about 2.38 GB of FP32 weights, plus tokenizer and metadata; later calls reuse the Hugging Face disk cache. Runtime memory exceeds the weight-file size; no minimum RAM/VRAM requirement has been benchmarked. Save the Python example below as example.py, then run python example.py.

from huggingface_hub import snapshot_download
from lightjev.inference import predict

checkpoint = snapshot_download('rongxinzy/LightJev-0.6B-v0.1')
records = [{
    'id': 'example-1', 'group_id': 'example',
    'state': 'Home log: user wants the dining room fan set to on; access=yes; occupants=2; clock=20:00.',
    'question': 'Select exactly the room and device named in the request. Ignore authorization and occupancy for this question.',
    'kind': 'choice', 'candidates': ['balcony speaker', 'dining room fan'],
}]
print(predict(checkpoint, records, device='cpu'))

This illustration uses the frozen test set's first in-domain question, with its target removed; it is not an additional generalization test.

Use device='cuda' on a supported GPU. The default uses uncalibrated scores (temperature=1). The separately fitted global temperature is 0.818731; opt in with temperature=0.8187307530779818 only after checking suitability for your own distribution. This fit is not a correctness guarantee. Inputs longer than 256 tokenizer tokens per candidate raise an error; no silent truncation. Score expectation means ordinal candidate index, not a numeric value parsed from text.

Input, output and multiple questions

Every input record needs nonempty string fields id, group_id, state, question, plus kind and candidates. target is optional for inference; omit it for your own requests. Candidates must be 2–255 unique, nonempty strings.

kind Candidates Additional output
choice Candidate descriptions
boolean Exactly ["false", "true"] in this order
score Descriptions ordered from low to high expectation: probability-weighted ordinal index

predict() returns a list in input order. The example's verified CPU result selects dining room fan, with probabilities approximately [0.000000076, 0.99999988]; small numerical differences across devices are expected. Each result contains id, kind, candidates, probabilities, selected, zero-based selected_index, and temperature.

Pass several records in one predict(checkpoint, records, device="cuda") call to share model loading. Each call loads the model again, and records inside a call are processed sequentially; this is not a persistent server or a cross-question GPU batching API. The download cache avoids downloading again, not loading weights into memory again. A long-running service needs a wrapper that retains load_checkpoint()'s model/tokenizer and implements the same encoding, scoring and per-question softmax.

The 256-token limit applies to the entire formatted input for each candidate, including state, question, candidate and prompt text. Shorten oversized inputs explicitly. Default temperature=1 is unchanged; the released fitted temperature worsened the selected model's held-out CE/ECE.

Command-line inference with JSONL

After the Python example has defined checkpoint and records, save them locally:

import json
from pathlib import Path

Path("checkpoint-path.txt").write_text(checkpoint, encoding="utf-8")
Path("input.jsonl").write_text(
    "".join(json.dumps(row, ensure_ascii=False) + "\n" for row in records),
    encoding="utf-8",
)

On a POSIX shell:

lightjev predict --checkpoint "$(cat checkpoint-path.txt)" \
  --input input.jsonl --output predictions.json --device cpu

Use --device cuda for a compatible GPU. Input is one JSON object per line with unique IDs; output is a JSON array. For offline inference, use the previously downloaded local checkpoint path; the loader requires manifest.json, model.safetensors, backbone/ and tokenizer/, and does not fetch missing files.

Backend status: the published interface uses PyTorch/Transformers. Direct vllm serve loading is not implemented or validated. Do not load these scoring weights through AutoModelForCausalLM or a chat-completions API.

Training

  • Base: Qwen/Qwen3-0.6B, revision c1899de289a04d12100db370d81485cdf75e47ca.
  • Two independent arms, CE and vector Brier, same seed 17 and data order. Both ran 20 head-only optimizer steps plus 300 full-parameter steps, effective batch 16 (8 x accumulation 2), 5,120 sampled questions with replacement.
  • Backbone LR 2e-5, head LR 2e-4, head-warmup LR 1e-3; AdamW, gradient clipping 1, gradient checkpointing. FP32 parameters/Adam moments with BF16 autocast. One NVIDIA RTX 6000D per arm; two arms ran concurrently.
  • Development CE selects checkpoints at initialization, head boundary, every 50 global steps and final step. The same development rule selects the published arm. Temperature uses calibration only. Final evaluation reloads full weights and uses FP32.
  • Environment: Python 3.12.3, PyTorch 2.13.0+cu130, Transformers 5.16.0.dev0, safetensors 0.8.0.
  • Seeds fixed; GPU kernels can be nondeterministic. One seed and one short budget do not establish superiority over NanoJev or Jev.

Reproduce using the training protocol. Exact configuration, selected steps, losses, data hashes and step histories are in manifest.json, release.json and training/. Two early BF16-master trials were stopped to correct parameter precision; their logs are retained and excluded from model selection. Training master parameters in the completed runs and the released weights are FP32.

Data and attribution

Converted from C-Tianyu/NanoJev-Data stage1, revision 87061eb91e8fc687e9b046454afdcc5551e3eff7, source SHA256 7294765b80e751fc5aee7aba906b28a8ea80d6f147253d3f6c3e4f491de0b2d7.

Each of 2,312 source records declares CC0-1.0 and self-authored programmatic provenance. We rely on these per-record declarations, not a blanket license inference for the source repository. Only deterministic-truth and exact conditional-distribution gold labels were retained; teacher payloads, optimal-action-policy targets and missing-kind questions were excluded before training. Thank you to C-Tianyu/TianyuCodings for the programmatic data and NanoJev research direction. LightJev code is independently implemented; it does not copy NanoJev weights or implementation.

The frozen exported data/ has train 3,200 / dev 424 / calibration 424 / test 848 / OOD 448 questions. Original source-group splits are preserved and audited for cross-split IDs/groups/state IDs and normalized duplicate model inputs. Families cover smart-home rules, catalog lookup, grid and tic-tac-toe state judgments, and known-chance probability tasks. Templates and task families overlap; the source-defined OOD split is a limited synthetic distribution shift, not evidence of broad real-world generalization. The preparation script, full exclusions and hashes are available in the code repository and data/manifest.json. Data in data/ retains CC0-1.0; model/code/base license is Apache-2.0. No teacher records are distributed.

Held-out results

All metrics below come from reloading the saved checkpoint. Test contains 656 hard and 192 soft questions; OOD contains 352 hard and 96 soft questions. For the selected CE model, the fitted temperature worsens held-out CE and ECE; the default remains unscaled T=1 and no calibration improvement is claimed. Hard metrics use one-hot targets; soft L2 uses exact conditional-distribution targets. The subsets can overlap for degenerate conditional distributions. Overall CE includes both kinds. Accuracy does not change under temperature scaling. All evaluation predictions, family breakdowns, reliability bins, selective-risk results and raw/calibrated metrics are under evaluation/.

Arm Split Scores Questions All CE Hard accuracy Hard Brier Hard ECE (10 bins) Soft L2
ce test raw 848 0.5644 79.57% 0.2662 0.0265 0.0031
ce test calibrated 848 0.5685 79.57% 0.2668 0.0428 0.0050
ce ood raw 448 0.6590 72.44% 0.3037 0.0641 0.0040
ce ood calibrated 448 0.6889 72.44% 0.3116 0.0930 0.0057
brier test raw 848 0.5633 79.73% 0.2645 0.0691 0.0058
brier test calibrated 848 0.5616 79.73% 0.2645 0.0471 0.0051
brier ood raw 448 0.6098 73.01% 0.2997 0.0955 0.0037
brier ood calibrated 448 0.6263 73.01% 0.3097 0.0947 0.0041

These are synthetic, single-seed measurements. Neither probability normalization nor temperature fitting certifies calibration in another domain. Keep the weak families and OOD failures visible; do not use this release as an autonomous high-stakes decision system without separate domain validation.

Additional out-of-template probe

A separate hand-written CPU probe failed: state The room temperature is 30 degrees C. Cooling is required above 26 degrees C., question Should cooling be enabled?, candidates false, true. The model selected false, with probabilities approximately [0.523605, 0.476395], although the stated rule requires true. This one probe is not included in the frozen benchmark metrics and illustrates why these synthetic results must not be treated as general natural-language decision capability.

Files

  • model.safetensors, backbone/, tokenizer/, manifest.json: complete loadable scoring checkpoint.
  • temperature.json: optional calibration fit, never automatically applied.
  • training/: completed and aborted arm logs/configuration.
  • evaluation/: full predictions and metrics for both completed arms.
  • data/: frozen CC0 gold-only transformed splits and provenance manifest.
  • SHA256SUMS: hashes of release files.

Inspired by TypeSafe AI Jev and NanoJev; no affiliation or proprietary-recipe equivalence is claimed.

Identity and Version

Repository
rongxinzy/LightJev-0.6B-v0.1
Publisher
Rongxinzy
Task
Not stated by the source
Modality
Other
Library
Not stated by the source
Parameters
596M parameters
Languages
en
Revision
b3d9a281885e3c315b12a22d3602fc627cdba3dd
First published
2026-09-18
Last updated
2026-09-18

Files and Weights

47 files, 2.4 GB in total. The weights are 1 file totalling 2.4 GB in safetensors.

Weights1 file · 2.4 GB
Configuration28 files · 4.7 MB
Tokenizer2 files · 11.4 MB
Documentation3 files · 24.5 KB
Other12 files · 4.6 MB
Repository1 file · 1.6 KB
Every file
FileTypeSizeSHA-256
model.safetensorsWeights2.4 GB d654807fe42f
backbone/config.jsonConfiguration1.4 KB
data/manifest.jsonConfiguration221.4 KB
evaluation/brier/calibration.calibrated.predictions.jsonConfiguration199.9 KB
evaluation/brier/calibration.predictions.jsonConfiguration193.5 KB
evaluation/brier/dev.calibrated.predictions.jsonConfiguration197.7 KB
evaluation/brier/dev.predictions.jsonConfiguration191.3 KB
evaluation/brier/ood.calibrated.predictions.jsonConfiguration209.6 KB
evaluation/brier/ood.predictions.jsonConfiguration202.8 KB
evaluation/brier/report.jsonConfiguration176.3 KB
evaluation/brier/test.calibrated.predictions.jsonConfiguration397.3 KB
evaluation/brier/test.predictions.jsonConfiguration384.4 KB
evaluation/ce/calibration.calibrated.predictions.jsonConfiguration200.0 KB
evaluation/ce/calibration.predictions.jsonConfiguration193.6 KB
evaluation/ce/dev.calibrated.predictions.jsonConfiguration197.9 KB
evaluation/ce/dev.predictions.jsonConfiguration191.5 KB
evaluation/ce/ood.calibrated.predictions.jsonConfiguration209.8 KB
evaluation/ce/ood.predictions.jsonConfiguration203.0 KB
evaluation/ce/report.jsonConfiguration164.1 KB
evaluation/ce/test.calibrated.predictions.jsonConfiguration397.6 KB
evaluation/ce/test.predictions.jsonConfiguration384.8 KB
manifest.jsonConfiguration74.5 KB
release.jsonConfiguration1.1 KB
selection.jsonConfiguration496 B
temperature.jsonConfiguration363 B
training/brier-aborted-nativebf16/manifest.jsonConfiguration1.5 KB
training/brier/manifest.jsonConfiguration74.7 KB
training/ce-aborted-nativebf16/manifest.jsonConfiguration1.5 KB
training/ce/manifest.jsonConfiguration74.5 KB
LICENSEDocumentation11.4 KB
NOTICEDocumentation1.0 KB
README.mdDocumentation12.1 KB
SHA256SUMSOther4.4 KB
data/calibration.jsonlOther352.5 KB
data/dev.jsonlOther346.3 KB
data/ood.jsonlOther368.5 KB
data/test.jsonlOther693.3 KB
data/train.jsonlOther2.6 MB
tokenizer/chat_template.jinjaOther4.2 KB
train_log.jsonlOther55.8 KB
training/brier-aborted-nativebf16/train_log.jsonlOther13.7 KB
training/brier/train_log.jsonlOther56.0 KB
training/ce-aborted-nativebf16/train_log.jsonlOther14.0 KB
training/ce/train_log.jsonlOther55.8 KB
.gitattributesRepository1.6 KB
tokenizer/tokenizer.jsonTokenizer11.4 MB be75606093db
tokenizer/tokenizer_config.jsonTokenizer692 B

License and Download

License
apache-2.0
Access
Open weights, no gate
Download size
2.4 GB
Download from Rongxinzy

Released by Rongxinzy through its official repository on Hugging Face. Read the license.

Built From

  • Derived from Qwen/Qwen3-0.6B
  • Trained on (disclosed) C-Tianyu/NanoJev-Data

Memory Requirements

PrecisionWeights in memory
As published2.4 GB
16-bit1.2 GB
8-bit0.6 GB
4-bit0.3 GB

Weights only, from the published parameter count; the key-value cache and runtime add to this.

Questions About LightJev-0.6B-v0.1

How much GPU memory does LightJev-0.6B-v0.1 need?

About 1.4 GB at 16-bit and 0.4 GB at 4-bit: the weights (596M parameters) plus a working margin. A long context needs more.

What is the cheapest GPU to run LightJev-0.6B-v0.1 on?

At 16-bit, 1x MI300X from $1.85 an hour; at 4-bit, 1x MI300X from $1.85 an hour, at the lowest on-demand prices the SAVRN Index lists.

Can I use LightJev-0.6B-v0.1 commercially?

Yes. LightJev-0.6B-v0.1 is released under Apache License 2.0. The Apache License 2.0 is a permissive open-source license. It permits commercial use, modification and redistribution. It requires keeping the license and copyright notices and any NOTICE file, stating significant changes, and it includes an express patent grant from contributors.