Skip to content

Conversation

TroyGarden
Copy link
Contributor

Summary:

context

  • after discussion with dstaay-fb, a rule of thumb: serializer APIs better to be symmetric
  • SerializerInterface.serialize takes a target module (nn.Module, usually sparse), returns a tensor (serialized binary, will be put to a buffer), and a list of child_fqns, which require further serialization
  • SerializerInterface.deserialize takes the binary data (tensor from buffer), a device flag, and the unflattened module (for its child modules), returns the deserialized module
  • the main APIs for external usage are the serialize_embedding_modules and _deserialize_embedding_modules
  • the former walks through the input module, finds the sparse (sub)modules, stores sparse modules metadata in buffer
  • the later walks through the input module (unflattened from ep), finds the stored metadata from the buffer, and restore the sparse modules.

Differential Revision: D58933792

@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 24, 2024
@facebook-github-bot
Copy link
Contributor

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

Summary:
Pull Request resolved: #2166

# context
* after discussion with dstaay-fb, a rule of thumb: serializer APIs better to be symmetric
* `SerializerInterface.serialize` takes a target module (nn.Module, usually sparse), returns a tensor (serialized binary, will be put to a buffer), and a list of child_fqns, which require further serialization
* `SerializerInterface.deserialize` takes the binary data (tensor from buffer), a device flag, and the unflattened module (for its child modules), returns the deserialized module
* the main APIs for external usage are the `serialize_embedding_modules` and `_deserialize_embedding_modules`
* the former walks through the input module, finds the sparse (sub)modules, stores sparse modules metadata in buffer
* the later walks through the input module (unflattened from ep), finds the stored metadata from the buffer, and restore the sparse modules.

Differential Revision: D58933792
@facebook-github-bot
Copy link
Contributor

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

@TroyGarden TroyGarden deleted the export-D58933792 branch July 15, 2024 22:32
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