Skip to content

[nvbug 5004744][fix] rewrite completion API to avoid repetitive tokens - #5201

Merged
kaiyux merged 4 commits into
NVIDIA:release/0.21from
LinPoly:user/pengyunl/fix_repetitive_tokens
Jul 7, 2025
Merged

[nvbug 5004744][fix] rewrite completion API to avoid repetitive tokens#5201
kaiyux merged 4 commits into
NVIDIA:release/0.21from
LinPoly:user/pengyunl/fix_repetitive_tokens

Conversation

@LinPoly

@LinPoly LinPoly commented Jun 13, 2025

Copy link
Copy Markdown
Collaborator

Description

This PR is fixing the repetitive token issue reported from different sources. For completion API, there maybe multiple prompts in a same request, so we have multiple RequestOutput, we want to process them ASAP so we launch multiple producer() tasks and put the result into a queue, and then we take the result from the queue with consumer().

The problem here is, there is no coordination between producer and consumer, a producer may put several times before consumer takes, but __anext__() function of RequestOutput returns itself (we call it inside producer and put the result into the queue), which means all the entries refer to the same object, and we basically process the same thing for these entries, then we get repetitive tokens.

The fix is to create a separate task to process each RequestOutput, then merge their result.

Test Coverage

Original test is enough, and completion test passed locally

GitHub Bot Help

/bot [-h] ['run', 'kill', 'skip', 'reuse-pipeline'] ...

Provide a user friendly way for developers to interact with a Jenkins server.

Run /bot [-h|--help] to print this help message.

See details below for each supported subcommand.

Details

run [--disable-fail-fast --skip-test --stage-list "A10-1, xxx" --gpu-type "A30, H100_PCIe" --add-multi-gpu-test --only-multi-gpu-test --disable-multi-gpu-test --post-merge --extra-stage "H100_PCIe-[Post-Merge]-1, xxx"]

Launch build/test pipelines. All previously running jobs will be killed.

--disable-fail-fast (OPTIONAL) : Disable fail fast on build/tests/infra failures.

--skip-test (OPTIONAL) : Skip all test stages, but still run build stages, package stages and sanity check stages. Note: Does NOT update GitHub check status.

--stage-list "A10-1, xxx" (OPTIONAL) : Only run the specified test stages. Examples: "A10-1, xxx". Note: Does NOT update GitHub check status.

--gpu-type "A30, H100_PCIe" (OPTIONAL) : Only run the test stages on the specified GPU types. Examples: "A30, H100_PCIe". Note: Does NOT update GitHub check status.

--only-multi-gpu-test (OPTIONAL) : Only run the multi-GPU tests. Note: Does NOT update GitHub check status.

--disable-multi-gpu-test (OPTIONAL) : Disable the multi-GPU tests. Note: Does NOT update GitHub check status.

--add-multi-gpu-test (OPTIONAL) : Force run the multi-GPU tests. Will also run L0 pre-merge pipeline.

--post-merge (OPTIONAL) : Run the L0 post-merge pipeline instead of the ordinary L0 pre-merge pipeline.

--extra-stage "H100_PCIe-[Post-Merge]-1, xxx" (OPTIONAL) : Run the ordinary L0 pre-merge pipeline and specified test stages. Examples: --extra-stage "H100_PCIe-[Post-Merge]-1, xxx".

For guidance on mapping tests to stage names, see docs/source/reference/ci-overview.md.

kill

kill

Kill all running builds associated with pull request.

skip

skip --comment COMMENT

Skip testing for latest commit on pull request. --comment "Reason for skipping build/test" is required. IMPORTANT NOTE: This is dangerous since lack of user care and validation can cause top of tree to break.

reuse-pipeline

reuse-pipeline

Reuse a previous pipeline to validate current commit. This action will also kill all currently running builds associated with the pull request. IMPORTANT NOTE: This is dangerous since lack of user care and validation can cause top of tree to break.

@LinPoly
LinPoly requested review from Superjomn and kaiyux June 13, 2025 10:49
@LinPoly

LinPoly commented Jun 13, 2025

Copy link
Copy Markdown
Collaborator Author

@Superjomn @kaiyux Do you guys have time to review this PR? I am open to chat/call if necessary.

@kaiyux
kaiyux requested a review from nv-guomingz June 16, 2025 08:37
@LinPoly LinPoly self-assigned this Jun 17, 2025
@LinPoly
LinPoly changed the base branch from main to release/0.21 June 25, 2025 05:33
@LinPoly
LinPoly requested a review from a team as a code owner June 25, 2025 05:33
@LinPoly
LinPoly force-pushed the user/pengyunl/fix_repetitive_tokens branch from 8d21bc7 to cee30bf Compare June 26, 2025 08:31
@LinPoly

LinPoly commented Jun 26, 2025

Copy link
Copy Markdown
Collaborator Author

/bot run

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #10015 [ run ] triggered by Bot

Comment thread tensorrt_llm/serve/openai_server.py Outdated
@Superjomn

Copy link
Copy Markdown
Collaborator

@LinPoly could we add a test to confirm that the repeated-token issue has been resolved?

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #10015 [ run ] completed with state FAILURE
/LLM/release-0.21/L0_MergeRequest_PR pipeline #46 completed with status: 'FAILURE'

@LinPoly

LinPoly commented Jun 26, 2025

Copy link
Copy Markdown
Collaborator Author

/bot run

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #10041 [ run ] triggered by Bot

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #10041 [ run ] completed with state SUCCESS
/LLM/release-0.21/L0_MergeRequest_PR pipeline #48 completed with status: 'SUCCESS'

LinPoly added 3 commits July 2, 2025 07:06
Signed-off-by: Pengyun Lin <81065165+LinPoly@users.noreply.github.com>
Signed-off-by: Pengyun Lin <81065165+LinPoly@users.noreply.github.com>
Signed-off-by: Pengyun Lin <81065165+LinPoly@users.noreply.github.com>
@LinPoly

LinPoly commented Jul 2, 2025

Copy link
Copy Markdown
Collaborator Author

Tested with DSV3 lite fp8 in H200, there is no tangible performance regression with this PR.

Signed-off-by: Pengyun Lin <81065165+LinPoly@users.noreply.github.com>
@LinPoly
LinPoly force-pushed the user/pengyunl/fix_repetitive_tokens branch from 3e45219 to c99d4df Compare July 2, 2025 09:02
@LinPoly LinPoly changed the title [draft][fix] rewrite completion API to avoid repetitive tokens [nvbug 5004744][fix] rewrite completion API to avoid repetitive tokens Jul 2, 2025
@LinPoly

LinPoly commented Jul 2, 2025

Copy link
Copy Markdown
Collaborator Author

/bot run

@LinPoly

LinPoly commented Jul 2, 2025

Copy link
Copy Markdown
Collaborator Author

could we add a test to confirm that the repeated-token issue has been resolved?

@Superjomn As per offline discussion with Kaiyu, an accuracy evaluation maybe needed for ensuring the serving quality, will add one in a new PR, we can still merge this PR because the bug can be manually triggered by adding sleep into async generator, and there is no repetitive token after this fix even with sleep.

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #10605 [ run ] triggered by Bot

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #10605 [ run ] completed with state SUCCESS
/LLM/release-0.21/L0_MergeRequest_PR pipeline #110 completed with status: 'FAILURE'

@LinPoly

LinPoly commented Jul 3, 2025

Copy link
Copy Markdown
Collaborator Author

/bot run

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #10775 [ run ] triggered by Bot

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #10775 [ run ] completed with state SUCCESS
/LLM/release-0.21/L0_MergeRequest_PR pipeline #144 completed with status: 'FAILURE'

@LinPoly

LinPoly commented Jul 4, 2025

Copy link
Copy Markdown
Collaborator Author

/bot run

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #10941 [ run ] triggered by Bot

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #10941 [ run ] completed with state SUCCESS
/LLM/release-0.21/L0_MergeRequest_PR pipeline #162 completed with status: 'SUCCESS'
Pipeline passed with automatic retried tests. Check the rerun report for details.

@Superjomn Superjomn left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

LGTM

@LinPoly

LinPoly commented Jul 4, 2025

Copy link
Copy Markdown
Collaborator Author

/bot run --only-multi-gpu-test

@kaiyux
kaiyux enabled auto-merge (squash) July 4, 2025 09:42
@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #10987 [ run ] triggered by Bot

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #10987 [ run ] completed with state SUCCESS
/LLM/release-0.21/L0_MergeRequest_PR pipeline #165 (Partly Tested) completed with status: 'SUCCESS'
Pipeline passed with automatic retried tests. Check the rerun report for details.

@kaiyux

kaiyux commented Jul 7, 2025

Copy link
Copy Markdown
Member

/bot skip --comment "pipeline has passed"

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #11105 [ skip ] triggered by Bot

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #11105 [ skip ] completed with state SUCCESS
Skipping testing for commit c99d4df

@kaiyux
kaiyux merged commit 7524c77 into NVIDIA:release/0.21 Jul 7, 2025
3 checks passed
dc3671 pushed a commit to dc3671/TensorRT-LLM that referenced this pull request Jul 10, 2025
NVIDIA#5201)

Signed-off-by: Pengyun Lin <81065165+LinPoly@users.noreply.github.com>
dc3671 pushed a commit to dc3671/TensorRT-LLM that referenced this pull request Jul 10, 2025
NVIDIA#5201)

Signed-off-by: Pengyun Lin <81065165+LinPoly@users.noreply.github.com>
dc3671 pushed a commit to dc3671/TensorRT-LLM that referenced this pull request Jul 11, 2025
NVIDIA#5201)

Signed-off-by: Pengyun Lin <81065165+LinPoly@users.noreply.github.com>
dc3671 pushed a commit to dc3671/TensorRT-LLM that referenced this pull request Jul 14, 2025
NVIDIA#5201)

Signed-off-by: Pengyun Lin <81065165+LinPoly@users.noreply.github.com>
dc3671 pushed a commit to dc3671/TensorRT-LLM that referenced this pull request Jul 14, 2025
NVIDIA#5201)

Signed-off-by: Pengyun Lin <81065165+LinPoly@users.noreply.github.com>
dc3671 pushed a commit to dc3671/TensorRT-LLM that referenced this pull request Jul 14, 2025
NVIDIA#5201)

Signed-off-by: Pengyun Lin <81065165+LinPoly@users.noreply.github.com>
dc3671 pushed a commit that referenced this pull request Jul 14, 2025
#5201)

Signed-off-by: Pengyun Lin <81065165+LinPoly@users.noreply.github.com>
@LinPoly
LinPoly deleted the user/pengyunl/fix_repetitive_tokens branch January 14, 2026 11:49
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.

5 participants