Repository navigation
Inference: Do not let prompt tokens return from the engine, unless requested - #5918
Merged
sidsingh-nvidia merged 6 commits intoJul 23, 2026
Conversation
Signed-off-by: Siddharth Singh <sidsingh@nvidia.com>
svcnvidia-nemo-ci
marked this pull request as draft
July 21, 2026 05:37
Contributor
|
This PR has been automatically converted to draft because all PRs must start as drafts. When you are ready for review, click Ready for Review to begin the review process. This will:
See the contribution guide for more details. |
|
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. |
kvareddy
approved these changes
Jul 21, 2026
2 of 3 tasks
Cover the new DynamicInferenceRequest.serialize() drop/keep contract from PR NVIDIA#5918: prompt_length is always reported (needed for usage.prompt_tokens), the prompt_tokens tensor is dropped from the wire payload unless SamplingParams.return_prompt_tokens=True, self.prompt_tokens is restored on the local instance, the routing_indices shape check still uses the saved prompt_len when self.prompt_tokens is temporarily nulled, and the None-prompt edge case does not crash. Signed-off-by: shanmugamr1992 <shanmugamr@nvidia.com> Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
sidsingh-nvidia
marked this pull request as ready for review
July 21, 2026 22:17
Contributor
|
🔄 Merge queue validation started! You can track the progress here: https://github.com/NVIDIA/Megatron-LM/actions/runs/29967398748 |
Contributor
|
🔄 Merge queue validation started! You can track the progress here: https://github.com/NVIDIA/Megatron-LM/actions/runs/29973870891 |
This was referenced Jul 27, 2026
shanmugamr1992
added a commit
to shanmugamr1992/RL
that referenced
this pull request
Jul 27, 2026
megatron-core now drops `prompt_tokens` from a finished inference request before serializing it unless `SamplingParams.return_prompt_tokens` is set (NVIDIA/Megatron-LM#5918), so the reply the inference client hands back carries `prompt_tokens=None` and packing the result raised `AttributeError: 'NoneType' object has no attribute 'tolist'`. Take the prompt from the batch that was submitted instead of from the engine's reply. NeMo-RL already holds those tokens, so this avoids shipping the prompt back over ZMQ purely to echo it, and it works against both the old and new megatron-core behaviour without a version branch. Three L1 Megatron generation tests failed outright on this; two async ones exited 0 because the rollout loop catches per-sample generation errors, so they were silently generating nothing. Signed-off-by: shanmugamr1992 <shanmugamr1992@gmail.com>
shanmugamr1992
added a commit
to shanmugamr1992/RL
that referenced
this pull request
Jul 27, 2026
megatron-core now drops `prompt_tokens` from a finished inference request before serializing it unless `SamplingParams.return_prompt_tokens` is set (NVIDIA/Megatron-LM#5918), so the reply the inference client hands back carries `prompt_tokens=None` and packing the result raised `AttributeError: 'NoneType' object has no attribute 'tolist'`. Take the prompt from the batch that was submitted instead of from the engine's reply. NeMo-RL already holds those tokens, so this avoids shipping the prompt back over ZMQ purely to echo it, and it works against both the old and new megatron-core behaviour without a version branch. Three L1 Megatron generation tests failed outright on this; two async ones exited 0 because the rollout loop catches per-sample generation errors, so they were silently generating nothing. Signed-off-by: shanmugamr1992 <shanmugamr1992@gmail.com>
shanmugamr1992
added a commit
to shanmugamr1992/RL
that referenced
this pull request
Jul 27, 2026
megatron-core now drops `prompt_tokens` from a finished inference request before serializing it unless `SamplingParams.return_prompt_tokens` is set (NVIDIA/Megatron-LM#5918), so the reply the inference client hands back carries `prompt_tokens=None` and packing the result raised `AttributeError: 'NoneType' object has no attribute 'tolist'`. Take the prompt from the batch that was submitted instead of from the engine's reply. NeMo-RL already holds those tokens, so this avoids shipping the prompt back over ZMQ purely to echo it, and it works against both the old and new megatron-core behaviour without a version branch. Three L1 Megatron generation tests failed outright on this; two async ones exited 0 because the rollout loop catches per-sample generation errors, so they were silently generating nothing. Signed-off-by: shanmugamr1992 <shanmugamr1992@gmail.com>
tdene
pushed a commit
to tdene/RL
that referenced
this pull request
Jul 28, 2026
megatron-core now drops `prompt_tokens` from a finished inference request before serializing it unless `SamplingParams.return_prompt_tokens` is set (NVIDIA/Megatron-LM#5918), so the reply the inference client hands back carries `prompt_tokens=None` and packing the result raised `AttributeError: 'NoneType' object has no attribute 'tolist'`. Take the prompt from the batch that was submitted instead of from the engine's reply. NeMo-RL already holds those tokens, so this avoids shipping the prompt back over ZMQ purely to echo it, and it works against both the old and new megatron-core behaviour without a version branch. Three L1 Megatron generation tests failed outright on this; two async ones exited 0 because the rollout loop catches per-sample generation errors, so they were silently generating nothing. Signed-off-by: shanmugamr1992 <shanmugamr1992@gmail.com>
shjwudp
pushed a commit
to shjwudp/Megatron-LM
that referenced
this pull request
Jul 30, 2026
…quested (NVIDIA#5918) Signed-off-by: Siddharth Singh <sidsingh@nvidia.com> Signed-off-by: shanmugamr1992 <shanmugamr@nvidia.com> Co-authored-by: Shanmugam Ramasamy <111910568+shanmugamr1992@users.noreply.github.com> Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
terminator123
pushed a commit
to 021ai/Megatron-LM
that referenced
this pull request
Aug 3, 2026
…quested (NVIDIA#5918) Signed-off-by: Siddharth Singh <sidsingh@nvidia.com> Signed-off-by: shanmugamr1992 <shanmugamr@nvidia.com> Co-authored-by: Shanmugam Ramasamy <111910568+shanmugamr1992@users.noreply.github.com> Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
svcnvidia-nemo-ci
pushed a commit
to dimapihtar/Megatron-LM
that referenced
this pull request
Aug 4, 2026
…quested (NVIDIA#5918) Signed-off-by: Siddharth Singh <sidsingh@nvidia.com> Signed-off-by: shanmugamr1992 <shanmugamr@nvidia.com> Co-authored-by: Shanmugam Ramasamy <111910568+shanmugamr1992@users.noreply.github.com> Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> Signed-off-by: Dmytro Pykhtar <dpykhtar@nvidia.com>
This branch was previously deployed
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?
Transmitting prompt tokens, especially in agentic-RL at high ctx lengths, can be costly. This PR makes it such that prompt tokens are removed from the request object before serialization by default, unless those tokens are explicitly requested by the user. Benefits have been observed with cross-node DP

Issue tracking
For PRs from open-source community contributors:
Linked issue:
Contribution process
Pre-checks
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"
.github/CODEOWNERS.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, theFinal Reviewlabel 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
Approvedlabel is applied automatically.Merge
Any member of mcore-engineers will be able to merge your PR.