Methods
GRPO is the default. All methods support LoRA and QLoRA.
grpo_agentic is being rebuilt and is not currently runnable as a managed method. To run multi-turn, environment-based RL today, use a custom script with your own framework (for example verl) and environment.The training loop
What happens at each transition:queued— job row written, balance pre-checked (HTTP 402 if insufficient credit). No spend yet.provisioning— Veri leases a GPU and the instance boots and self-configures the worker.started_atis stillnull. Once the instance boots, the GPU is rented and cost accrues from this point, even before the first training step. A job that never secures a GPU (for exampleCAPACITY_UNAVAILABLE) rents nothing and is not billed.running— worker reports its first step.started_atpopulates. Metrics start streaming.completed | failed | cancelled— pod auto-terminates. Cost is attributed (cost_attributed_at). Stripe credit is deducted (billing_deducted_at). The full stdout is uploaded to S3 and available viaGET /v1/training_jobs/{id}/logs/full.
Failure modes
When a job ends infailed, error.code carries one of:
The last 200 log lines from the worker are surfaced in
error.log_tail for fast triage; the full stdout is uploaded to S3 and accessible via GET /v1/training_jobs/{id}/logs/full.
Checkpoints
Every managed job writes a final artifact when training finishes. It also saves intermediate checkpoints while training runs, so a job that fails at hour 19 of 20 still leaves usable weights behind.Intermediate checkpoints are rolling out behind a feature flag. Until it is enabled for
your workspace, jobs write only the final artifact and the
veri checkpoints commands
report the feature as unavailable.Working with checkpoints
<job_id>@<step> works too, so you can act on a
step number you read off a loss curve.
download fetches the model and tokenizer files by default — enough to load with
from_pretrained. Optimizer state is roughly two thirds of a checkpoint’s size and
from_pretrained never reads it, so pass --artifact when you need more:
Checkpoints from a custom script
Custom script jobs get a directory instead of a hyperparameter. Write acheckpoint-<step> subdirectory into $VERI_CHECKPOINT_DIR and Veri uploads it:
Submitting a job
wait() streams the job’s logs to your terminal while it polls: provisioning,
installs, and training steps appear live with no extra flags. Streaming is
best-effort: if the log stream drops, wait() keeps polling silently and still
returns the finished job. Pass stream=False for quiet polling only. You can
also tail any job from another terminal:
download() fetches the complete Hugging Face checkpoint — weights plus
adapter config and tokenizer files — into ./checkpoints/<job_id>/, a
directory you can load directly with from_pretrained(...) or push to the
Hugging Face Hub.
Choosing a launch region
Capacity is per-region. If your job fails withCAPACITY_UNAVAILABLE, another region may have the GPU you need right now:
region="us-west-2" to client.training_jobs.create, the @veri.train decorator, or veri train --region us-west-2. Omit it to launch in the default region. Unknown or not-yet-available regions are rejected at submit with the list of valid options.
Choosing a GPU provider
Veri supports multiple GPU providers — AWS (NVIDIA, default), Hot Aisle (AMD MI300X), and Vast.ai (NVIDIA marketplace). Passprovider at submit time to choose where your job runs:
This snippet uses the low-level client and assumes you have already uploaded a dataset (the
dataset it references) and have a reward file on disk; the reward source is attached to the job inline. For a runnable end-to-end version with @training_job + veri train, see the Managed GRPO quickstart.kind = "train" in the TOML config. See the CLI training reference for the full schema.
Where to go next
Managed GRPO quickstart
End-to-end on a small model: one decorator, one command.
Deploy your checkpoint
Skip downloading — serve from Veri with an OpenAI-compatible API.
Track it with W&B
Live loss and reward charts for your run.
CLI training commands
veri run, veri jobs, reward files.
