Streaming 이 유일한 옵션일 때
디스크보다 큰 데이터셋 — FineWeb, RedPajama, common-crawl 파생 셋 — streaming=True 필수. 돌아오는 IterableDataset 은 절대 materialize 안 됨; 밑단 Parquet shard 에서 on-demand 로 examples pull.
뭐가 바뀌나
len()X,ds[i]X. Forward-only iteration.map동작하지만 lazy (pre-bake 아니라 iteration 시 변환).filter동작하지만 rejection rate 가 중요 — 99% filter 면 I/O 99% 낭비.shuffle(buffer_size=N)가 size N reservoir sample 사용, 글로벌 shuffle X.
분산 학습용 multi-shard sharding
iter_dataset = ds.shard(num_shards=8, index=worker_id) 가 다른 shard 를 다른 DataLoader worker 에. load_dataset(..., streaming=True) 의 distributed hint 가 DDP 셋업에서 PyTorch DataLoader 로 wrap 할 때 자동 처리.