DocsAdvanced & theoryDataset Format & Sharding
Advanced & theory

Dataset Format & Sharding

How to split your dataset into shard zips and what the worker sees at data_root.

How Workers Receive Data

The number of shard zips you upload to shards/ equals the number of GPU workers allocated. Upload 4 shards → 4 workers run in parallel.

Zip Structure Rules

The zip is unpacked flat into data_root. Structure your zip so that your existing data paths still work.

!
Do not add a wrapper folder inside the zip. Keep your data paths exactly as they are in your local training setup.

Creating Shards

Split your dataset into N roughly equal partitions, one zip per worker:

i
Shards do not need to be equal in size. FedAvg weights each worker's contribution by its sample count — just return the correct samples value from fl_train_model().

Uploading Shards

Upload all shard zips to jobs/{name}/shards/ before launching the job.

  • Via the Files page: navigate to shards/ → Toolbar → Upload → select all zips at once.
  • Via rclone: rclone copy ./shards resontech:<bucket>/jobs/{name}/shards

The Submit wizard Step 6 also provides an upload panel directly targeting the shards/ folder.