feat(nemotron-omni): add Megatron Nano image GRPO support#3227
Open
aroshanghias-nvd wants to merge 8 commits into
Open
feat(nemotron-omni): add Megatron Nano image GRPO support#3227aroshanghias-nvd wants to merge 8 commits into
aroshanghias-nvd wants to merge 8 commits into
Conversation
Signed-off-by: Ali Roshan Ghias <aroshanghias@nvidia.com>
Signed-off-by: Ali Roshan Ghias <aroshanghias@nvidia.com>
Signed-off-by: Ali Roshan Ghias <aroshanghias@nvidia.com>
Signed-off-by: Ali Roshan Ghias <aroshanghias@nvidia.com>
aroshanghias-nvd
force-pushed
the
aroshanghias/nemotron-omni-main-migration
branch
from
July 16, 2026 00:32
cf54287 to
b8f0e97
Compare
Signed-off-by: Ali Roshan Ghias <aroshanghias@nvidia.com>
Signed-off-by: Ali Roshan Ghias <aroshanghias@nvidia.com>
Author
|
/ok to test 31d577b |
aroshanghias-nvd
marked this pull request as ready for review
July 16, 2026 01:13
Signed-off-by: Ali Roshan Ghias <aroshanghias@nvidia.com>
Author
|
/ok to test cbe1333 |
Signed-off-by: Ali Roshan Ghias <aroshanghias@nvidia.com>
rohitrango
reviewed
Jul 17, 2026
| for t in non_none_tensors | ||
| ] | ||
|
|
||
| return torch.cat(non_none_tensors, dim=self.dim_to_pack).to(device) |
Contributor
There was a problem hiding this comment.
seems a little specific for 2d images. will it generalize to video frames, audio embeddings, etc.? as_tensor is called for all types of tensors imo
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.
What does this PR do ?
Add Megatron-based Nemotron Nano Omni image-GRPO support using a dedicated, model-owned multimodal packing path.
The integration follows the same high-level boundary used by other maintained VLMs: NeMo-RL supplies the full processor-expanded sequence and multimodal inputs, while the MBridge
NemotronOmniModelinserts media embeddings and owns sequence packing and context-parallel sharding. It does not use the historical Nemotron OmniLLaVAModelcollapse/expand path.The PR includes:
bad_wordstokenization;No external vLLM source code or vLLM dependency pin is changed. The vLLM compatibility behavior is implemented in NeMo-RL's existing integration and runtime-patch layer.
Issues
No public issue.
Usage
The maintained recipes added by this PR are:
examples/configs/recipes/vlm/vlm_grpo-nemotron-omni-30ba3b-clevr-1n8g-megatron-tp8ep8.v1.yamlexamples/configs/recipes/vlm/vlm_grpo-nemotron-omni-30ba3b-mmpr-4n8g-megatron-tp8ep16.v1.yamlValidation
28 passed.4 passed.megatron.energondependency. The corresponding exact-head MBridge change is separately covered by89focused unit tests and a ten-iteration functional recipe in the dependency PR. Protected NeMo-RL CI remains required before this draft is marked ready.git diff --check: passed.Before your PR is "Ready for review"
Pre checks:
docs/guides/nemotron-3-nano-omni.mdwith the Megatron architecture, supported scope, checkpoint compatibility, recipes, and usage.Additional Information
This PR is intentionally a draft. It must remain draft until the MBridge dependency merges, the submodule is repinned to MBridge
main, and protected CI passes.