deepspeedai / deepspeedai/DeepSpeed
excessive logging in checkpoints load/save
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 43.1k
- Forks
- 5k
- Avg merge
- 4d 15h
- Merged PRs (30d)
- 112
Description
Using PP with z1 results in copious logs being dumped. Please consider the scope of 64 or 256 or 512 gpus.
- a lot on saving:
https://github.com/microsoft/DeepSpeed/blob/master/deepspeed/runtime/engine.py#L2035-L2037
I don't know why _copy_recovery_script gets called for each gpu, despite:
if self.global_rank == 0:
it works correctly w/o PP, but under PP seems never be true.
And the next logger line gets called for each gpu as well
- Then loading, each gpu dumps the list of checkpoints:
https://github.com/microsoft/DeepSpeed/blob/master/deepspeed/runtime/state_dict_factory.py#L165
and then again here:
https://github.com/microsoft/DeepSpeed/blob/master/deepspeed/runtime/state_dict_factory.py#L85
These logs make it very difficult to follow the progress of the training, since each dump is hundreds of lines-long.
There should be some sort of debug logs and not printed normally as they don't contribute anything other 1 line x n_gpus of logs.
Thank you!
@tjruwase
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the cited sections of deepspeed/runtime/engine.py around lines 2035-2037 and deepspeed/runtime/state_dict_factory.py around lines 85 and 165. Reproduce checkpoint save/load with pipeline parallelism and ZeRO stage 1 at multiple GPU counts, then trace which log calls run on each rank. Done means normal output is no longer flooded while the useful checkpoint progress remains visible.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- distributed-systems, observability
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100