Skip to main content
← Lab

shufdup

confirmedupstream bugPythonCluster & infrastructureJuly 23, 2026

the question

Does litdata's FullShuffle preserve disjoint per-worker sample coverage across epochs on multiple nodes?

what came out

From epoch two on multiple nodes, the intra-node reshuffle re-indexes the original full chunk intervals with a stream that already lists split chunks twice, so each split chunk is handed whole to two workers. In the smallest multi-node case one third of samples (10 of 30) are trained twice, silently.

method & receipts

  • Result: confirmed
  • Reproducible one script re-runs the whole thing from scratch.
  • Tested — a correctness/benchmark suite ships alongside the code.

→ read the code and re-run it

github.com/v-code01/shufdup