Skip to content

Adding support for tracking optimizers states in Model Delta Tracker. #3143

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

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

aliafzal
Copy link
Contributor

Summary:

Overview

This diff adds support for tracking optimizer states in the Model Delta Tracker system. It introduces a new tracking mode called MOMENTUM_LAST that enables tracking of momentum values from optimizers to support approximate top-k delta-row selection.

Key Changes

1. Optimizer State Tracking Support

  • To support tracking of optimizer states I have added optim_state_tracker_fn attribute to GroupedEmbeddingsLookup and GroupedPooledEmbeddingsLookup classes responsible for traversing over the BatchedFused modules.
  • Implemented register_optim_state_tracker_fn() method in both classes to register the trackable callable
  • Tracking calls are invoked after each lookup operation.

2. Model Delta Tracker Changes

  • Added record_momentum() method to track momentum values from optimizer states and its support in record_lookup function.
  • Added validation and optim tracker function logic to support the new MOMENTUM_LAST mode

3. New Tracking Mode

  • Added TrackingMode.MOMENTUM_LAST to **types.py**
  • Maps to EmbdUpdateMode.LAST to capture the most recent momentum values

Differential Revision: D76868111

Summary:
### Overview

This diff adds support for tracking optimizer states  in the Model Delta Tracker system. It introduces a new tracking mode called `MOMENTUM_LAST` that enables tracking of momentum values from optimizers to support approximate top-k delta-row selection.

### Key Changes

#### 1. Optimizer State Tracking Support

*   To support tracking of optimizer states I have added `optim_state_tracker_fn` attribute to `GroupedEmbeddingsLookup` and `GroupedPooledEmbeddingsLookup` classes responsible for traversing over the BatchedFused modules.
*   Implemented `register_optim_state_tracker_fn()` method in both classes to register the trackable callable
*   Tracking calls are invoked after each lookup operation.

#### 2. Model Delta Tracker Changes

*   Added `record_momentum()` method to track momentum values from optimizer states and its support in record_lookup function.
*   Added validation and optim tracker function logic to support the new `MOMENTUM_LAST` mode

#### 3. New Tracking Mode

*   Added `TrackingMode.MOMENTUM_LAST` to [`**types.py**`](command:code-compose.open?%5B%22%2Ffbcode%2Ftorchrec%2Fdistributed%2Fmodel_tracker%2Ftypes.py%22%2Cnull%5D "/fbcode/torchrec/distributed/model_tracker/types.py")
*   Maps to `EmbdUpdateMode.LAST` to capture the most recent momentum values

Differential Revision: D76868111
@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 Jun 27, 2025
@facebook-github-bot
Copy link
Contributor

This pull request was exported from Phabricator. Differential Revision: D76868111

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. fb-exported
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants