Skip to content

[megatron] megatron remove num_samples#9522

Merged
Jintao-Huang merged 13 commits into
modelscope:mainfrom
Jintao-Huang:megatron_remove_num_samples
Jun 15, 2026
Merged

[megatron] megatron remove num_samples#9522
Jintao-Huang merged 13 commits into
modelscope:mainfrom
Jintao-Huang:megatron_remove_num_samples

Conversation

@Jintao-Huang

Copy link
Copy Markdown
Collaborator

No description provided.

@gemini-code-assist gemini-code-assist 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.

Code Review

This pull request simplifies batch preparation and data collation by removing the num_samples parameter and instead deriving it dynamically from the length of seq_lens when packed_seq_params is present. While this cleanup streamlines the code, the review highlights a critical regression in get_last_tokens where packed_seq_params.num_samples is still accessed. Additionally, the feedback suggests adding safety checks when popping seq_lens from the batch and when accessing it within packed_seq_params to prevent potential KeyError or AttributeError exceptions.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

Comment thread swift/megatron/trainers/base.py
Comment thread swift/megatron/trainers/utils.py Outdated
Comment thread swift/megatron/trainers/utils.py Outdated
@Jintao-Huang Jintao-Huang force-pushed the megatron_remove_num_samples branch from 823caf5 to 2cd141b Compare June 9, 2026 09:54
@Jintao-Huang

Copy link
Copy Markdown
Collaborator Author

/gemini review

@gemini-code-assist gemini-code-assist 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.

Code Review

This pull request refactors the tracking and calculation of num_samples across various Megatron trainers, primarily deriving it from packed_seq_params.seq_lens.shape[0] during padding-free training rather than passing it explicitly or storing it in batch dictionaries. It also introduces a new test file tests/megatron/test_opsd.py. A critical issue was identified in swift/megatron/trainers/rlhf_mixin.py where accessing packed_seq_params.seq_lens directly will cause an AttributeError if packed_seq_params is None (such as during standard training without packing). A code suggestion has been provided to safely fall back to labels.shape[0] in this scenario.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

Comment thread swift/megatron/trainers/rlhf_mixin.py Outdated
@Jintao-Huang

Copy link
Copy Markdown
Collaborator Author

/gemini review

@gemini-code-assist gemini-code-assist 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.

Code Review

This pull request refactors the handling of num_samples across various Megatron trainers and utility functions. Instead of passing num_samples as an explicit parameter or retrieving it from batch dictionaries, it is now dynamically calculated using packed_seq_params.seq_lens.shape[0] or len(seq_lens). This simplifies function signatures and improves consistency. Additionally, test configurations are updated, and a new test file test_opsd.py is added. There are no review comments provided, so I have no feedback to address.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

@Jintao-Huang Jintao-Huang merged commit d6f6b6b into modelscope:main Jun 15, 2026
3 checks passed
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

Successfully merging this pull request may close these issues.

2 participants