Skip to main content
That queues a GRPO run on 8 GPUs and prints a job id. The rest of this page is the same sequence with the detail you need when a step does not go through.

Before you start

  • An account on a TunePlane deployment, and its URL. An administrator creates it, or the deployment uses single sign-on.
  • Quota, and at least one hardware profile you are allowed to use. tp status prints both after you log in. Every profile name on this site is an example — use the ones tp status gives you.
  • The cluster must be able to reach Qwen/Qwen2.5-1.5B, which is what the scaffold trains. On an air-gapped network an administrator points the deployment at an internal mirror. Without one the job starts, stalls downloading weights, and times out. See air-gapped deployments.
Object storage is not needed for this path. It is needed for tp dataset push and for automatic evaluation after training.
1

Install the CLI and create a project

tp init writes experiments/, configs/ and common/, plus a tuneplane.yaml marker that tells tp where your project root is. It also makes a git repository and one commit.Do not clone the platform repository. tp init is what creates your project. Upgrade later with tp update, not by reinstalling by hand.
2

Log in

Opens a browser. On an SSH session add --device-flow. In CI pass --token. Credentials land in ~/.tuneplane/.
Prints your account, your quota, and the profile names this deployment has. Note one — the submit step needs it.
TunePlane console login page

Console sign-in. Username and password, or single sign-on where the deployment has it.

3

Create an experiment

Writes experiments/my-grpo/ holding config.yaml, README.md and recipe.lock.json. The lock file pins the method version, so the run is reproducible even after the catalogue moves on.
4

Tune and validate

Edit experiments/my-grpo/config.yaml. Learning rate, prompts per step and generations per prompt are at the top.
Checks types, ranges and batch-size divisibility against the method declaration. A typo fails here in seconds instead of after a queue wait.
5

Submit

Prints a job id. --profile is the only resource flag: h200 takes the registry’s default shape, h200:4 asks for four GPUs, h200:16 for two full nodes.A dirty working tree is refused. Pass --allow-dirty to submit anyway.
Status moves QUEUED → SUBMITTED → PENDING → RUNNING. QUEUED means admitted but not yet on the cluster. See job states.
6

Watch it in the console

Open the console, go to Jobs, and click your run.
TunePlane job charts tab

Job charts during a GRPO run: reward, accuracy, and training scalars.

Check it worked

Read this in order. If one row does not match, stop there — every row below assumes the one above happened. Once that first point appears, the path worked. If logs move but charts stay empty, first identify the reporting path. SDK reporting needs a reachable ingest endpoint and tuneplane.report calls. Native TensorBoard/JSONL outputs need declared sources, the collector and a reachable telemetry gateway; stdout alone does not create points.

Next

Change what tp submit does in submitting a job. Run many variants at once with sweeps. Score the result against GSM8K or C-Eval in benchmarks. If the method you need is not in the catalogue, bring your own trainer with custom training.