-
Notifications
You must be signed in to change notification settings - Fork 2.5k
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
PeFT fix for distOpt #9392
PeFT fix for distOpt #9392
Conversation
19b0f96
to
32206a2
Compare
a70c89c
to
53f0761
Compare
This is now ready; Tested DDP, TP=2, PP=2 apex & distOpt. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
changes in nlp_adapter_mixins.py look good to me!
@ericharper or @dimapihtar could you review the changes in megatron_base_model.py?
@@ -316,15 +316,18 @@ def _wrap_model_for_O2(self): | |||
args.pop('module') | |||
|
|||
def get_model_module_list(self): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@dimapihtar Need your feedback for this change.
This function extracts the .module
from the model
; when we wrap a model with MCoreDDP
or Float16Module
, the model
can be accessed via .module
attribute; however those classes can be combined, so it's possible to have <obj>.module.module
, thus the recursive call.
Signed-off-by: Alexandros Koumparoulis <akoumparouli@nvidia.com>
Signed-off-by: Alexandros Koumparoulis <akoumparouli@nvidia.com>
Signed-off-by: Alexandros Koumparoulis <akoumparouli@nvidia.com>
Signed-off-by: Alexandros Koumparoulis <akoumparouli@nvidia.com>
87a1822
to
cf27140
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. Thanks!
* PeFT fix for distOpt Signed-off-by: Alexandros Koumparoulis <akoumparouli@nvidia.com> * fix get_model_module_list for McoreDDP Signed-off-by: Alexandros Koumparoulis <akoumparouli@nvidia.com> * fix get_peft_state_dict Signed-off-by: Alexandros Koumparoulis <akoumparouli@nvidia.com> * Simplify extract_module Signed-off-by: Alexandros Koumparoulis <akoumparouli@nvidia.com> --------- Signed-off-by: Alexandros Koumparoulis <akoumparouli@nvidia.com> Signed-off-by: Jan Lasek <janek.lasek@gmail.com>
* PeFT fix for distOpt Signed-off-by: Alexandros Koumparoulis <akoumparouli@nvidia.com> * fix get_model_module_list for McoreDDP Signed-off-by: Alexandros Koumparoulis <akoumparouli@nvidia.com> * fix get_peft_state_dict Signed-off-by: Alexandros Koumparoulis <akoumparouli@nvidia.com> * Simplify extract_module Signed-off-by: Alexandros Koumparoulis <akoumparouli@nvidia.com> --------- Signed-off-by: Alexandros Koumparoulis <akoumparouli@nvidia.com>
* PeFT fix for distOpt Signed-off-by: Alexandros Koumparoulis <akoumparouli@nvidia.com> * fix get_model_module_list for McoreDDP Signed-off-by: Alexandros Koumparoulis <akoumparouli@nvidia.com> * fix get_peft_state_dict Signed-off-by: Alexandros Koumparoulis <akoumparouli@nvidia.com> * Simplify extract_module Signed-off-by: Alexandros Koumparoulis <akoumparouli@nvidia.com> --------- Signed-off-by: Alexandros Koumparoulis <akoumparouli@nvidia.com>
What does this PR do ?
Add a one line overview of what this PR aims to accomplish.
Collection: [Note which collection this PR will affect]
Changelog
Usage
# Add a code snippet demonstrating how to use this
GitHub Actions CI
The Jenkins CI system has been replaced by GitHub Actions self-hosted runners.
The GitHub Actions CI will run automatically when the "Run CICD" label is added to the PR.
To re-run CI remove and add the label again.
To run CI on an untrusted fork, a NeMo user with write access must first click "Approve and run".
Before your PR is "Ready for review"
Pre checks:
PR Type:
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