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

Clarification on MetaRM-optimization Implementation #42

Open
Benjamin-eecs opened this issue Jan 15, 2024 · 2 comments
Open

Clarification on MetaRM-optimization Implementation #42

Benjamin-eecs opened this issue Jan 15, 2024 · 2 comments

Comments

@Benjamin-eecs
Copy link

Hi there,

I've read your paper and am intrigued by the MetaRM-optimization algorithm. Could you share details on the gradient computation and any specific conditions for the update step (θ_t+1 ← θ_t - α ∇θ_t Lθ'(X_t))? Any reference in open-source code would also be appreciated. Thanks a lot!

@Ablustrund
Copy link
Collaborator

Hi, thank you very much for your attention!
The release of the MetaRM code has been delayed as we have been occupied with paper submissions. We will be publishing the open-source code soon.
Can @liuyan please provide an explanation of the technical details of MetaRM here beforehand?

@grace-skaiii
Copy link

@Benjamin-eecs Sorry for the late reply!

During each iteration, we back up the model parameters and then sequentially perform Meta-process and MetaRM-optimization.
Regarding the MetaRM-optimization you are concerned about, we first conduct the backpropagation to obtain gradients. Subsequently, we copy the backed-up model parameters here and proceed with gradient descent.
Since gradient descent involves updating parameters within the optimizer for backing up and resetting parameters we particularly use the deepspeed implementation's interfaces, safe_get_full_fp32_param and safe_set_full_fp32_param.
For specific details of the interfaces, please refer to the official document below.
https://deepspeed.readthedocs.io/en/stable/zero3.html#deepspeed.utils.safe_get_full_fp32_param

I hope this answer proves helpful to you! Feel free to raise any questions if you have any.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants