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

Implement activation offloading and opt_in_bwd in knowledge_distillation recipes #2088

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

AnuravModak
Copy link
Contributor

Copy link

pytorch-bot bot commented Nov 27, 2024

🔗 Helpful Links

🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/torchtune/2088

Note: Links to docs will display an error until the docs builds have been completed.

This comment was automatically generated by Dr. CI and updates every 15 minutes.

@facebook-github-bot facebook-github-bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Nov 27, 2024
@AnuravModak
Copy link
Contributor Author

Hi @felipemello1 , As part of this implementation i have made changes only in knowledge_distillation_single_device.py for activation offloading. And enabled testing parameter in tests/recipes/test_knowledge_distillation_single_device.py. Let me know if its in the right direction, if Yes will conclude the remaining implementation as well!

Copy link
Contributor

@joecummings joecummings left a comment

Choose a reason for hiding this comment

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

This looks great, thanks for doing this!! As part of testing can you output memory usage between activation offloading enabled and disabled as part of the way to confirm that this is doing what we expect it to?

@RdoubleA RdoubleA mentioned this pull request Jan 21, 2025
@AnuravModak
Copy link
Contributor Author

AnuravModak commented Jan 22, 2025

Hi @joecummings ,

Added an import for wandb.
Initialized WandB in the beginning of the training loop if self.use_wandb is set to True.
Logged relevant metrics (log_dict) to WandB if self.use_wandb is True.

Conditional Logging:
The logging mechanism is conditioned by the self.use_wandb flag, enabling or disabling WandB integration.

Profiling and Memory:
Added memory tracking and profiling, which can be used for monitoring resource usage during training.

Let me know if it works!

Copy link
Contributor

@ebsmothers ebsmothers left a comment

Choose a reason for hiding this comment

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

Hi @AnuravModak thanks for the PR! A couple suggestions:

  1. Regarding @joecummings's previous suggestion to add WandB logs, you should just be able to add WandB as a metric logger from the command line. So you will not need to make any changes to the code to do this. Once you have the results you can paste them in the PR summary. You can see e.g. the test plan in DoRA fixes #2139 for an example of this.
  2. I think some extra files under .idea directory snuck in, can you remove them?
  3. Why are the activation offloading changes in knowledge_distillation_single_device (specifically L461-L475) commented out?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants