Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Distributed optimizer reduces GPT embedding grads in FP32 #8792

Merged
merged 6 commits into from
Apr 5, 2024

Conversation

timmoon10
Copy link
Collaborator

What does this PR do ?

When training Megatron-core GPT with the distributed optimizer, the embedding gradients were reduced in the grad sync dtype (usually BF16). However, we want to reduce in FP32 to improve convergence.

Collection: NLP

Changelog

  • Make sure GPT embedding grads are reduced in FP32.

Usage

Run GPT, e.g. with the config at https://github.com/NVIDIA/NeMo/blob/main/examples/nlp/language_modeling/conf/megatron_gpt_config.yaml.

Enable mcore with model.mcore_gpt=True and the distributed optimizer with model.optim.name=distributed_fused_adam.

Jenkins CI

To run Jenkins, a NeMo User with write access must comment jenkins on the PR.

Before your PR is "Ready for review"

Pre checks:

  • Make sure you read and followed Contributor guidelines
  • Did you write any new necessary tests?
  • Did you add or update any necessary documentation?
  • Does the PR affect components that are optional to install? (Ex: Numba, Pynini, Apex etc)
    • Reviewer: Does the PR have correct import guards for all optional libraries?

PR Type:

  • New Feature
  • Bugfix
  • Documentation

If you haven't finished some of the above items you can still open "Draft" PR.

Who can review?

Anyone in the community is free to review the PR once the checks have passed.
Contributor guidelines contains specific people who can review PRs to various areas.

Additional Information

@timmoon10
Copy link
Collaborator Author

jenkins

@github-actions github-actions bot added the NLP label Apr 2, 2024
@timmoon10
Copy link
Collaborator Author

jenkins

@timmoon10
Copy link
Collaborator Author

jenkins

@timmoon10
Copy link
Collaborator Author

jenkins

@timmoon10 timmoon10 changed the title Make sure GPT embedding grads are reduced in FP32 Make distributed optimizer reduces GPT embedding grads in FP32 Apr 5, 2024
@timmoon10 timmoon10 changed the title Make distributed optimizer reduces GPT embedding grads in FP32 Distributed optimizer reduces GPT embedding grads in FP32 Apr 5, 2024
Copy link
Collaborator

@ericharper ericharper left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Thanks!

@erhoo82 erhoo82 self-requested a review April 5, 2024 20:34
Copy link
Collaborator

@erhoo82 erhoo82 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM given it gives the same convergence.

@erhoo82 erhoo82 merged commit cf3b3a5 into NVIDIA:main Apr 5, 2024
120 of 124 checks passed
anmolgupt pushed a commit to anmolgupt/NeMo that referenced this pull request Apr 11, 2024
* Make sure embedding grads are reduced in FP32

Signed-off-by: Tim Moon <tmoon@nvidia.com>

* Access correct attr to get position embeddings

Signed-off-by: Tim Moon <tmoon@nvidia.com>

---------

Signed-off-by: Tim Moon <tmoon@nvidia.com>
suiyoubi pushed a commit that referenced this pull request May 2, 2024
* Make sure embedding grads are reduced in FP32

Signed-off-by: Tim Moon <tmoon@nvidia.com>

* Access correct attr to get position embeddings

Signed-off-by: Tim Moon <tmoon@nvidia.com>

---------

Signed-off-by: Tim Moon <tmoon@nvidia.com>
Signed-off-by: Ao Tang <aot@nvidia.com>
rohitrango pushed a commit to rohitrango/NeMo that referenced this pull request Jun 25, 2024
* Make sure embedding grads are reduced in FP32

Signed-off-by: Tim Moon <tmoon@nvidia.com>

* Access correct attr to get position embeddings

Signed-off-by: Tim Moon <tmoon@nvidia.com>

---------

Signed-off-by: Tim Moon <tmoon@nvidia.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants