feat: per-step inline HF export for Megatron checkpoints#3045
Open
waleko wants to merge 1 commit into
Open
Conversation
Enable megatron-bridge's inline HF export at every checkpoint save (not
just the last). _create_checkpoint_config hardcoded CheckpointConfig with
no passthrough, so add a minimal opt-in: MegatronConfig gains an optional
"checkpoint" dict that _create_checkpoint_config applies onto
CheckpointConfig, defaulting hf_source_path to the policy model name.
Set policy.megatron_cfg.checkpoint = {also_save_hf_checkpoint: true,
hf_distributed_save: true, ckpt_format: torch_dist,
non_persistent_ckpt_type: global} to produce iter_*/hf/ on every save.
Signed-off-by: Alexander Kovrigin <alexander.kovrigin@jetbrains.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
MegatronConfiggains an optionalcheckpoint: NotRequired[dict]passthrough, applied field-by-field onto megatron-bridge'sCheckpointConfigin_create_checkpoint_config(hf_source_pathdefaults to the policy model name if unset).also_save_hf_checkpoint=True) at every checkpoint save, not just via a separate end-of-training conversion step. Producesiter_*/hf/— a directly-loadable HF safetensors + tokenizer tree — alongside the native Megatron checkpoint.megatron_cfg); it already has its ownsave_consolidatedmechanism for full-model HF-shaped exports.Usage
Test plan
also_save_hf_checkpoint=trueproduces a correct, directly-loadableiter_N/hf/HF checkpoint at every save for a Megatron SFT run