Training /Submit via UI wizard

Submit via UI wizard

The 7-step wizard that launches a training job from the browser.

Before you start

Open Submit job under Training in the sidebar. You need a storage bucket first; without one the page sends you to your profile to create it.

PickUse it whenWhere it takes you
New workspace → Start wizardYou start a new jobStep 1. The wizard generates the configs and scripts for you
From existing workspace → Browse bucketThe job folder is already in your bucket, from an earlier run or the SDKStep 6, Validate
Saved drafts → ResumeYou left a wizard unfinished in this browserThe step you left
New Training Run: the two ways in, and saved drafts
StepOn the pageWhat you do
1 · NameName your training runName the job; it becomes the folder jobs/<name>/
2 · TrainingHyperparametersSet the values every worker receives
3 · FederationFederationRounds and timeouts
4 · ModelYour modelWhere your model class and training function live
5 · AdvancedReview the generated filesOptional: edit the configs, then build the workspace
6 · ValidateCheck your workspaceUpload model_def.py and your shard zips
7 · LaunchChoose your workersPick a GPU type, check the price, launch

Each step ends with a Continue to … button. The header has Back, Drafts and Discard.

Steps 1–4: name, training, federation, model

1. Name

Type a name such as food101-finetune. The wizard lowercases it, turns spaces into dashes and keeps only letters, digits, - and _. It shows the result and the workspace folder, jobs/<name>/. A name needs at least one letter or digit.

2. Training

Name and value pairs sent to every worker each round; your training function reads them. Add, remove or rename any of them, in the Fields view or as JSON.

NameDefault
local_epochs2
batch_size32
learning_rate0.001

Numbers stay numbers, and a value that starts with [ or { is read as JSON. The platform sets data_root, adapter_module, train_fn, validate_fn and out_dir_name itself, so don’t use those names.

Step 2: hyperparameters, with the defaults

3. Federation

FieldDefaultWhat it does
Rounds5How many times the server sends out the model, collects the updates and averages them
Minimum workers per round1Set for you at launch from your worker count: every worker for one or two, two thirds rounded up above that. The value here only matters if you run the generated config yourself
Wait for stragglers10 sHow long the server keeps waiting for the other workers once the minimum has reported
Heartbeat timeout600 sHow long a worker may stay silent before the server treats it as lost
Training timeout0 sThe longest a worker may train in one round. 0 means no limit

Revert to defaults puts all five back.

Step 3: federation settings

4. Model

FieldDefaultWhat it is
Model classmodel_def.FLModelWrapperImport path of your model class, as module.ClassName
Adapter modulemodel_defThe file in scripts/ that holds the class and the training function, without .py
Training functionfl_train_modelThe function in that file each worker calls every round

If you start from the model_def.py template, keep the defaults. Then either Continue to Advanced to review the generated files, or Skip Advanced to build the workspace with them as they are and go straight to step 6.

Step 4: where your model lives

Step 5: Advanced (optional)

The three config files open in editors, filled in from steps 2–4. The two Python scripts are shown read-only.

FileWhat it holds
config_fed_client.jsonWhat every worker runs: the executor and your step 2 hyperparameters
config_fed_server.jsonThe training loop: rounds, how updates are averaged, how the model is saved
meta.jsonThe job name and the minimum number of workers

Build workspace and continue writes the workspace to your bucket:

your bucket
jobs/<name>/
├── scripts/
│   ├── custom_client_executor.py
│   ├── custom_persistor.py
│   └── model_def_wrapper_template.py   ← your starting model_def.py
├── configs/
│   ├── config_fed_client.json
│   ├── config_fed_server.json
│   └── meta.json
├── requirements/
│   └── requirements.txt
├── shards/                             ← your zips, in step 6
└── model/                              ← optional checkpoint, in step 6

model_def_wrapper_template.py is a starter model_def.py with your hyperparameters filled in. Save it as model_def.py, add your model and training function, and upload it in step 6. How to write it: Port a centralized recipe to FL.

Step 6: Validate

Five cards, one per folder. Each shows Needs files, a file count or Empty; Upload or Browse opens that folder, where you can add files.

CardWhat goes inRequired
ScriptsYour model_def.py, next to the generated executor and persistorYes
ConfigsThe three generated JSON filesYes, built in step 5
Requirementsrequirements.txt: pip packages installed on every workerYes, built in step 5
Dataset ShardsOne .zip per worker. The number of zips is the number of workersYes
Base ModelOne .pt checkpoint to start fromNo

Continue to Launch unlocks once Scripts, Configs, Requirements and Dataset Shards each hold a file. A few problems show up later, so check them yourself:

  • A missing model_def.py gets a red warning here but doesn’t block you.
  • Only .zip files count as shards. The card says how many workers that means.
  • More than one .pt in Base Model is rejected when you launch.

How to split and zip your data: Dataset format & sharding.

Step 6: every folder filled, two shards for two workers

Step 7: Launch

You pick a GPU type, not single machines. The job gets one worker of that type per shard, the cheapest free ones. Prices are per worker per hour.

  • Search GPUs, Filters, sort by price or by VRAM, and refresh. The list also refreshes itself every 20 seconds.
  • Available lists GPU types with free workers, All every type. Only my machines keeps the GPUs you own.
  • Each card shows the price, VRAM × GPUs per worker, vCPU and RAM, and how many are free. It greys out when it falls below your filters or every worker is busy.
Step 7: this GPU type has one free worker but the job has two shards, so Launch stays locked

Filters

All optional. Nothing is picked for you; a filter only greys out GPU types that fall short.

FilterWhat it sets
GPU memoryFree memory on the GPU your job uses, per worker. Other GPUs in the same machine don’t add to it
Disk, RAMFree disk and system memory per worker
NVLink between GPUsOnly multi-GPU workers whose cards are linked by NVLink
Central server RAM, diskMinimums for the server that coordinates your workers
Dedicated central serverNo other job shares the central server with yours
Size by model memorySay how much GPU memory your model needs and see priced setups that fit. Use this applies one

While you drag, the modal counts how many idle workers and central servers still match. Active filters show as chips above the grid. What to set for your model: Choosing hardware.

Filters: minimums per worker and for the central server

Price and balance

The Summary shows the GPU you picked, its price per worker and the Total per hour, billed while the job runs. Under it, your balance and how many hours it covers at that rate; Top up adds funds. Launch training job unlocks when the GPU type you picked has a free worker for every shard and your balance hasn’t run out.

When nothing fits

  • Order GPUs asks a provider to reserve GPUs in your name. You launch on them later from My orders.
  • If no central server meets your minimums, the page says so and offers Order a central server. One reserved for you shows as Reserved for you, and your jobs use it first. See Central servers.

After launch

An overlay follows the launch and ends on Job launched with the job name and id. View live status opens the job page; Submit another job starts a new wizard.

note
The job starts as PENDING while the workers start, turns RUNNING when they have joined, and ends FINISHED or FAILED. Rounds, logs and the trained model: Track jobs & download results.

Drafts

  • The wizard saves a draft each time you press Continue or Skip Advanced. Drafts live in this browser; another browser or device won’t see them.
  • A draft keeps the job name and the step you reached. Steps 2–4 return to their defaults when you resume, so check them again; configs you already built load from your bucket.
  • Resume from Saved drafts on the first page or from Drafts in the wizard header. The trash icon deletes one.
  • Discard deletes the current draft and returns to the first page. Launching removes the draft too.