Skip to main content
Start with one verifiable outcome: a validated dataset snapshot and a prepared run. This walkthrough does not download a model, request a GPU, or launch training.

Working surface: the source checkout’s finetune JSON CLI.

Bring: Python 3.10+ and repository access; River requires Python 3.12+.

Finish with: a retained run ID, dataset identity, and reviewed plan checksum.

Install from the reviewed checkout

From the stateset-agents repository root:
The overview records the source/version scope. Base installation supports schema discovery, data inspection, and preparation. Local execution separately needs CUDA and the training extra. The checkout also provides make install-training-locked for its Python 3.12/Linux training/API dependency lock.

Create a small format fixture

Create reviewed-chat.jsonl with the following two lines. They are synthetic examples of format, not independently reviewed training data:
Create config.json, replacing the dataset path with the actual absolute path:
For reproducible model loading and exact checkpoint recovery, add revision with the model repository’s actual nonzero, full 40-character commit. Do not use an invented hash.

Validate configuration and inspect data

Every successful command emits schema_version, ok, command, and result. Inspect result.valid and its issues after validation; ok: true means a report was produced, even when the configuration is invalid. inspect-data reads the file without exposing examples by default; --include-samples is an explicit private-data read. workflow reports settings, dataset, runtime, launch review, and evaluation readiness. Missing local training packages or CUDA can block execution while data preparation remains available. Readiness does not authenticate providers or certify model fit.

Prepare and retain the original run

Retain result.run.run_id, result.run.plan_sha256, result.review, and result.launch_argv. Preparation copies the validated input into a private snapshot and binds its data hash and configuration. Later edits to the original file do not alter the reviewed input.
Replace RUN_ID with the returned ID. Preparing again creates a new run, so preserve the original response when recovering from a lost client connection.
Checkpoint: status identifies the same prepared run and plan, with no worker submission or training completion implied.

Launch when the environment is ready

After installing the training dependencies, configuring CUDA/Buildr resources, reviewing the model pin, and authorizing the workload, launch the exact prepared plan:
Use the real returned checksum. Submission is detached and is not completion. Poll status and inspect failure, metrics, completion metadata, and execution uncertainty. An identical launch retry returns the original submission instead of starting another worker. For remote launches, use the supported backend and its explicit billing policy, and add --allow-paid only for an authorized workload. Modal and River have no enforced dollar ceiling in this interface. See backend setup. Continue in the terminal studio, automate with the JSON CLI, or prepare industry data with isolated splits.
Last modified on October 20, 2026