A PRACTICAL FIRST EXPERIMENT

From your first dataset
to a training-ready bundle.

Start with a browser preview, then move to a workspace you control. This guide connects the pieces without hiding where the work runs.

01

Choose your starting point

What the public demo proves

It lets you inspect the workflow. Its local rules are not JEV model judgments, and its byte-bigram model is not an LLM. Demo losses cannot be compared with LLM token losses.

02

Run the workspace

Clone the repository and install it in a Python virtual environment. The default demo path does not need a GPU or an API key.

Terminal
git clone https://github.com/RenaGao/jev-dataops.git
cd jev-dataops
python3 -m venv .venv
source .venv/bin/activate
pip install -e .
jev-dataops serve

Open http://127.0.0.1:8000. Select Use example to run a small synthetic dataset through the workspace before connecting real services.

Connecting real services

Configure provider keys and model paths on your server. If you expose the workspace beyond loopback, configure its access token. See the repository setup instructions for environment variables and training dependencies.

03

Prepare your data

Upload UTF-8 JSONL or CSV. The screening workflow accepts text, instruction–response pairs, prompt–response pairs, and conversations. A simple instruction example looks like this:

examples.jsonl · one JSON object per line
{"instruction":"Explain operating cash flow.","output":"Cash generated by a company's core operations."}
{"instruction":"What does a Python list store?","output":"An ordered, mutable collection of objects."}

These two lines illustrate the format; they are not a sufficient training dataset. Use enough independent examples to populate train, validation, and test splits. Preserve relevant group or conversation identifiers to reduce leakage.

For RL, every record needs a prompt, final assistant response, and an explicit nonempty string such as ground_truth containing an independently checked answer. The included reward uses exact matching; it does not grade open-ended prose or execute code.

04

Screen and evaluate

  1. Select a screening engine. Demo uses local rules. A configured JEV provider performs model-based screening.
  2. Choose your domain rubric. General, finance, and code provide starting points for domain-aware screening.
  3. Set the request budget. Review concurrency and request limits before calling a provider.
  4. Review the decisions. Inspect keep, review, and reject outputs plus the data report. Only retained records should enter the next stage.

The self-hosted workspace sends record content to the selected JEV provider when online screening is enabled. Use records you have permission to share.

Find your retained data

Use the screening/keep.jsonl artifact from a completed run. The commands below use runs/example/screening/keep.jsonl as a placeholder; replace it with your actual artifact path.

05

Export a training bundle

Choose the training objective and export the screened data. A bundle gives you files and configuration to inspect before a job is launched. SFT export accepts text or conversation data; RL export additionally requires verified answer targets.

Install Parquet support for RL exports
pip install -e '.[export]'

For a complete closed-answer example, screen the bundled synthetic arithmetic dataset, which includes independently specified ground_truth strings. A JEV score or an arbitrary response is not a reward target.

ONE DATASET · ONE TRAINING HOST

Upload once. Train across your GPUs.

Screen one dataset and export one training bundle. All GPU workers use that bundle from the same local directory on your Linux/NVIDIA host. You do not upload a separate dataset for each GPU.

GPUs on your training host

Choose the GPUs you provide. This updates the export commands below.

One training bundleShared local directory
GPU 1

1 GPU · global batch 4. SFT: 4 records per GPU. verl: 4 prompts per global batch, before rollout expansion.

Use enough independent records for train, validation, and test splits, with at least one complete global training batch after splitting. These examples use four records per GPU for SFT; adjust the batch to your model and available memory. For verl, this is the global prompt batch, not the number of generated responses.

Supervised fine-tuning

Use curated prompts and target responses to prepare an SFT run. More than one GPU launches data-parallel workers on the same host; each GPU holds a model replica and processes its share of the global batch.

Export SFT
jev-dataops export-training \
  --input runs/example/screening/keep.jsonl \
  --output runs/training-bundle \
  --target sft \
  --base-model Qwen/Qwen2.5-0.5B-Instruct \
  --n-gpus 1 \
  --batch-size 4

Use a different output directory for each target or experiment, not for each GPU. One bundle is shared across all workers in that run. These examples are single-node training; the public browser demo does not allocate GPUs or execute them. See the multi-GPU setup guide for device selection, batch sizing, and memory requirements.

06

Inspect before launching

Copy the bundle once to your Linux/NVIDIA training host if it was exported elsewhere, preserving its directory structure. Run the launcher once from that host: the selected GPU count is already stored in the bundle. Dry-run the launch and confirm the command, paths, reward configuration, and available GPUs before execution.

Inspect a training launch
jev-dataops launch-training \
  --bundle runs/training-bundle \
  --dry-run
Bring a training environment

SFT execution needs the train extra. The supplied verl recipes target a separate Linux/NVIDIA environment with Python 3.12 and verl 0.9.1. A static website deployment does not provision GPUs or execute these jobs. Review the training environment guide before using the explicit --execute flag. You can select that environment with --python.

07

Evaluate the result

The local LoRA workflow measures baseline and trained-model loss on the same held-out test set. Use the ready-to-use domain metric packs to evaluate supplied model outputs, references, imported test results, and reviewed labels offline. Choose general, finance, code, enterprise, legal, or medical definitions. Keep each metric’s coverage alongside its result; the packs do not generate predictions or expert judgments.

01Protect the split

Keep related examples out of the test set used to judge training.

02Compare like with like

Use the same data and metric definition for baseline and trained models.

03Test the actual task

Loss and reward are signals. Add factual, functional, and human checks.

Read the source, open an issue, or contribute
READY FOR YOUR FIRST RUN?

See the workflow in action.

Open the demo