DocsTrainingSubmit Wizard
Training

Submit Wizard

Step-by-step walkthrough of the 7-step job submission wizard — from naming a job to launching workers.

Overview

The Submit wizard at /dashboard/submit walks you through 7 steps. Progress is auto-saved at every step — close the browser and resume later from the Resume Draft list.

StepStorage writesWhat you do
1 — NameNoneEnter a job name
2 — TrainingNoneSet your hyperparameters, batch size, learning rate, local epochs etc.
3 — FederationNoneSet FL parameters: rounds, min clients, timeouts
4 — ModelNonePoint to your model class
5 — AdvancedOn "Build"Review & edit auto generated configs and scripts
6 — ValidateUser uploadsUpload model_def.py, shard zips, optional checkpoint
7 — LaunchRead onlySelect workers and submit job
Submit wizard — step progress indicator

Steps 1–4: Name, Training, Federation, Model

Step 1 — Name

Enter a human-readable name, e.g. mnist-round-1. The platform sanitizes it to an S3-safe prefix: jobs/mnist-round-1/.

Step 2 — Training

A flexible key-value hyperparameter editor. Every row becomes a field in config_fed_client.json → executors[0].executor.args. You can add, remove, or rename any parameter. Defaults:

Step 2 — Training Config form

Step 3 — Federation

FieldDefaultDescription
Num Rounds5The total number of training rounds. Defaults to 5
Min Clients1Minimum workers required (will wait indefinitely until met)
Wait After Min Received10 sTime to wait before beginning aggregation after contributions received. Defaults to 10
Heartbeat Timeout600 sHow many seconds the server waits for a worker before marking it disconnected. Defaults to 600.
Training Timeout0 sTime to wait for clients to do local training
Step 3 — Federation Config form

Step 4 — Model

FieldDefaultDescription
Model Classmodel_def.MyModelWrapperThe Python path to your model wrapper class. Must be in model_def.py
Adapter Modulemodel_defPath to the .py file containing your model class
Train Functionfl_train_modelName of the training function to call in the client executor. Must be defined in the same file as the model class.

From Step 4 you can click Next (go to Step 5 to review configs) or Skip Advanced — both paths build the workspace. Skip Advanced writes the auto-generated defaults immediately and jumps straight to Validate.

Step 4 — Model Config form

Step 5: Advanced

Step 5 shows Monaco editors for the three FL config files and two generated scripts — pre-populated from your Steps 2–4 settings. Existing files in your bucket are loaded automatically if the job was previously created.

Edit anything you need, then click Build workspace. This calls POST /api/users/storage/folders which writes these files directly to your S3 bucket:

custom_client_executor.py

Add your hyperparams to __init__ and payload['env']

auto-generated

config_fed_client.json

Executor args: batch_size, learning_rate, num_classes, etc.

auto-generated

config_fed_server.json

Server: model class path, num_rounds, min_clients, FedAvg

auto-generated

Step 6: Validate

User uploads required. The platform blocks launch until required files are detected in your bucket.

Required

model_def.py

Your model class + fl_train_model() — class name must match Step 4

required

shard_0.zip, shard_1.zip, …

One .zip per GPU worker — count determines worker allocation

required

Optional

checkpoint.pt

Pre-trained weights loaded at round 0 — exactly 1 .pt file if provided

optional
!
Number of shard zips = number of workers reserved. If more than one .pt exists in model/, submission is blocked.
Step 6 — all assets uploaded, validation passing
Green checkmarks appear when each required file is detected.

Step 7: Launch

Click Launch. The API validates the bucket, counts shards, allocates workers and dispatches the FL server + workers.

  1. 1

    Path validation

    Verifies scripts/, configs/, requirements/ exist.
  2. 2

    model/ check

    If present: exactly one .pt file required.
  3. 3

    Shard count → worker allocation

    N zips → N workers reserved.
  4. 4

    Dispatch

    FL server + worker containers started.
Step 7 — launch confirmation, job created as PENDING
i
After launch you land on the Jobs page. The job starts as PENDING while workers spin up, then transitions to RUNNING once all required workers connect to the FL server and setup is complete. Refresh the page to see status updates.

Draft Jobs

The wizard saves progress at every step.

  • Close the browser mid-wizard — progress is restored when you return.
  • Drafts listed on the Submit page under Resume Draft.
  • Automatically removed after successful launch.
  • Delete manually from the draft list at any time.