deepspeedai / deepspeedai/DeepSpeed

deepspeed-v1 prep notes

Open
#7,540 2 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
43.1k
Forks
5k
Avg merge
4d 15h
Merged PRs (30d)
112

Description

Please edit this Issue to collect notes for deepspeed v1 work

TODO items

Start adding TODOV1 comments where needed in preparation for changes, e.g. so far used in changing the logger defaults

Example:

https://github.com/deepspeedai/DeepSpeed/blob/066d912052b5eaf6094a2e57d20a163ba6517db8/deepspeed/launcher/launch.py#L105-L108

Backward compatibility breaking

This is an opportunity to redesign some APIs, change defaults to better ways. We of course, should try to minimize any breakage.

Also we should consider a back-compat module which if important will try to restore the old functionality where possible to easy with transition.

Logging subsystem

  1. change the default logging levels to logging.WARNING see TODOV1 tags in code

  2. we need to untangle 3 different loggers and streamline them into ideally 1. Currently we have:

    • Command-line for launcher
    • ds_config for DS engine
    • builder

probably we should clean up deepspeed.utils.__init__ as it shouldn't load builder code. If we are just importing the logger. probably should leave logger out of depspeed.utils.__init__ and use a direct from deepspeed.utils.logging import logger

  1. we want per module log levels - so for example if wall_clock_breakdown: true it should be printing stats regardless of log level and currently it doesn't (I'm adding a workaround to use print instead).

Collectives / Comms

  • Process group management: switch to device mesh to modernize deepspeed
  • where possible drop the custom functional collective API and replace with optimized torch.distributed API (which didn't exist when deepspeed was created)

Related discussions:

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the TODOV1 references in deepspeed/launcher/launch.py and the logging setup in deepspeed.utils.init; then read the related discussion in PR #7526. The notes also identify process-group management, device mesh, and torch.distributed as areas to investigate. This issue has no single completion criterion and would need a defined scope before work can be considered done.

Written by the indexing model from the issue text.

Assessment

Tech stack
python, pytorch
Domain
distributed-systems, machine-learning, observability
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.