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

Remove unused FSDP1 components #1933

Closed
wants to merge 4 commits into from
Closed

Remove unused FSDP1 components #1933

wants to merge 4 commits into from

Conversation

krammnic
Copy link
Contributor

Context

What is the purpose of this PR? Is it to

  • add a new feature
  • fix a bug
  • update tests and/or documentation
  • Clean up

Please link to any issues this PR addresses.

Changelog

What are the changes made in this PR?

Test plan

Please make sure to do each of the following if applicable to your PR. If you're unsure about any one of these just ask and we will happily help. We also have a contributing page for some guidance on contributing.

  • run pre-commit hooks and linters (make sure you've first installed via pre-commit install)
  • add unit tests for any new functionality
  • update docstrings for any new or updated methods or classes
  • run unit tests via pytest tests
  • run recipe tests via pytest tests -m integration_test
  • manually run any new or modified recipes with sufficient proof of correctness
  • include relevant commands and any other artifacts in this summary (pastes of loss curves, eval results, etc.)

UX

If your function changed a public API, please add a dummy example of what the user experience will look like when calling it.
Here is a docstring example
and a tutorial example

  • I did not change any public API
  • I have added an example to docs or docstrings

@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 Oct 31, 2024
Copy link

pytorch-bot bot commented Oct 31, 2024

🔗 Helpful Links

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

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.

@krammnic
Copy link
Contributor Author

krammnic commented Nov 1, 2024

Probably need to remove relations to docs

@ebsmothers
Copy link
Contributor

Thanks for the PR! Looking at the code changes now, but at least for the doc build job failure you will need to remove this line (you can check other rst files the same folder for any other APIs you've removed, their references will need to be removed as well)

Comment on lines 236 to 238
full_model_state_dict_keys: Optional[List[str]] = None,
lora_state_dict_keys: Optional[List[str]] = None,
base_model_state_dict_keys: Optional[List[str]] = None,
Copy link
Contributor

Choose a reason for hiding this comment

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

We should be able to do it without these extra arguments. You should be able to leverage base_missing, base_unexpected, lora_missing, lora_unexpected in the DPO recipe to use this API as is (may just need to move the call to validate_missing_and_unexpected_for_lora down a few lines)

@@ -362,19 +286,62 @@ def validate_missing_and_unexpected_for_lora(
]
)

if full_model_state_dict_keys:
Copy link
Contributor

Choose a reason for hiding this comment

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

Same with all the code from here on down.. the changes should be doable without any modifications to this function

from torchtune.utils import get_logger

from torchtune.utils._device import get_device

_log: logging.Logger = get_logger()


FSDPPolicyType: Type = Callable[[nn.Module, bool, int], bool]
Copy link
Collaborator

Choose a reason for hiding this comment

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

I think you need to remove the reference to this in api_ref_training.rst for the docs to build.

"validate_no_params_on_meta_device",
"contains_fsdp",
"FSDPPolicyType",
"get_full_finetune_fsdp_wrap_policy",
Copy link
Collaborator

Choose a reason for hiding this comment

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

Similar to my comment above, I think this will also need to be removed from the torchtune.training API ref doc.

Copy link
Collaborator

@SalmanMohammadi SalmanMohammadi Nov 3, 2024

Choose a reason for hiding this comment

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

There's also a reference to this in the QAT recipe in the note just below this heading. Should this note just be removed? @ebsmothers

Copy link
Contributor

Choose a reason for hiding this comment

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

Sorry started writing out a comment to this but I guess I never hit send. Yes we should remove the note about memory_efficient_fsdp_wrap. You can leave the field in any QAT configs as that'll get handled in #1854 but you can remove from e.g. here.

"contains_fsdp",
"FSDPPolicyType",
"get_full_finetune_fsdp_wrap_policy",
"lora_fsdp_wrap_policy",
Copy link
Collaborator

Choose a reason for hiding this comment

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

Same here to be removed from the training API docs.

Copy link
Contributor

Choose a reason for hiding this comment

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

Yeah that would be good to remove as well

@krammnic
Copy link
Contributor Author

krammnic commented Nov 5, 2024

Probably fine now

@ebsmothers
Copy link
Contributor

Looks like CI is red?

@SalmanMohammadi
Copy link
Collaborator

I think you also need to remove the reference to validate_state_dict_for_lora in the API docs @krammnic

@SalmanMohammadi
Copy link
Collaborator

Hey @krammnic - think there's some merge conflicts to fix before I can kick off CI again.

@ebsmothers
Copy link
Contributor

@krammnic I’m gonna close this now that #2016 has landed. Thanks for your work on this one!

@ebsmothers ebsmothers closed this Nov 17, 2024
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