Skip to content

Skip attention mask materialization in RL training - #5885

Merged
tdene merged 2 commits into
NVIDIA:mainfrom
tdene:tde/rl_skip_attention_mask
Aug 13, 2026
Merged

Skip attention mask materialization in RL training#5885
tdene merged 2 commits into
NVIDIA:mainfrom
tdene:tde/rl_skip_attention_mask

Conversation

@tdene

@tdene tdene commented Jul 20, 2026

Copy link
Copy Markdown
Contributor
  • I, the PR author, have personally reviewed every line of this PR.

What does this PR do?

Adds a create_attention_mask argument to get_ltor_masks_and_position_ids that can be toggled to False, skipping the creation of the attention mask when it's unnecessary.

Issue tracking

For PRs from open-source community contributors:

  • New features: a linked issue is required. Please open a feature request and reference it here before submitting the PR.
  • Small updates (bug fixes, minor improvements): a linked issue is recommended and will accelerate the PR review process.

Linked issue:

Contribution process

Pre-checks

  • I have added relevant unit tests
  • I have added relevant functional tests
  • I have added proper typing to my code Typing guidelines
  • I have added relevant documentation
  • I have run the autoformatter.sh on my PR

Code review

Feel free to message or comment @NVIDIA/mcore-oncall to help accelerate your merge into main. The less complex your PR is, the faster it will be approved and merged!

All PRs start as draft. If you open a non-draft PR, it will be automatically converted to draft.

Step 1: Mark PR as "Ready for Review"

  1. When your PR is ready, click Ready for Review.
  2. An oncall reviewer is auto-assigned and expert reviewers are notified based on your changes.
    • Some PRs may jump straight to step 2. This is determined by .github/CODEOWNERS.

⚠️ Only mark as ready once merge-conflicts are resolved and the CI is passing.
Final Review might get declined if these requirements are not fulfilled.

Step 2: Final Review

For PRs that change megatron/core, once all expert reviewers have approved, the Final Review label is applied automatically and final reviewers are assigned.

For PRs outside megatron/core, this step is skipped.

Step 3: Approved

Once all required reviewers have approved, the Approved label is applied automatically.

Merge

Any member of mcore-engineers will be able to merge your PR.

@copy-pr-bot

copy-pr-bot Bot commented Jul 20, 2026

Copy link
Copy Markdown

Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually.

Contributors can view more details about this message here.

@tdene
tdene marked this pull request as ready for review July 20, 2026 06:51
@tdene
tdene requested review from a team as code owners July 20, 2026 06:51
@tdene

tdene commented Jul 20, 2026

Copy link
Copy Markdown
Contributor Author

/claude review

@claude claude Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM

Comment thread megatron/training/utils/common_utils.py
pad_mask_loss,
create_attention_mask=True):
"""Build masks and position id for left to right model."""
assert create_attention_mask or not reset_attention_mask, \

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I think we need a docstring now explaining what reset/create attention mask do and why we need both.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Done, what do you think?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

looks ok

@yobibyte yobibyte left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I would run some 20 steps of an environment before/after for this to compare, but I do not have an argument why. Just intuition. Also left some comments.

Comment thread megatron/training/utils/common_utils.py
Signed-off-by: Teodor-Dumitru Ene <teodord.ene@gmail.com>
@tdene

tdene commented Aug 12, 2026

Copy link
Copy Markdown
Contributor Author

I would run some 20 steps of an environment before/after for this to compare, but I do not have an argument why. Just intuition. Also left some comments.

I did that here, although the "after" in this run was multiple changes packaged together: https://wandb.ai/adlr/megatron-rl?nw=9vg5y1477c9

Do you want an actual before/after without any confounding variables, or were you asking for just a sanity check?

@yobibyte

Copy link
Copy Markdown
Contributor

I would run some 20 steps of an environment before/after for this to compare, but I do not have an argument why. Just intuition. Also left some comments.

I did that here, although the "after" in this run was multiple changes packaged together: https://wandb.ai/adlr/megatron-rl?nw=9vg5y1477c9

Do you want an actual before/after without any confounding variables, or were you asking for just a sanity check?

sanity check, looks ok

@yobibyte yobibyte left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM

@tdene
tdene enabled auto-merge August 12, 2026 18:41
@tdene
tdene added this pull request to the merge queue Aug 13, 2026
@svcnvidia-nemo-ci

Copy link
Copy Markdown
Contributor

🔄 Merge queue validation started!

You can track the progress here: https://github.com/NVIDIA/Megatron-LM/actions/runs/31657412435

Merged via the queue into NVIDIA:main with commit 5436289 Aug 13, 2026
97 of 99 checks passed
@tdene
tdene deleted the tde/rl_skip_attention_mask branch August 13, 2026 02:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants