[None][feat] Default GPT-OSS to the Python KV-cache transceiver - #16479
Conversation
📝 WalkthroughWalkthroughGPT-OSS now declares ChangesGPT-OSS transceiver runtime
Estimated code review effort: 1 (Trivial) | ~5 minutes Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
|
/bot run --disable-fail-fast |
|
PR_Github #59647 [ run ] triggered by Bot. Commit: |
Mirror the GPT-OSS approach (NVIDIA#16479): KimiK25ForConditionalGeneration now declares "PYTHON" as its preferred KV-cache transceiver runtime. In disaggregated serving, when the user leaves cache_transceiver_config.transceiver_runtime at its default 'auto' and the effective backend is NIXL ("DEFAULT" resolves to NIXL when no legacy backend env var is set), Kimi-K2.5 adopts the Python (v2) transceiver instead of the C++ one. Explicit user settings and non-NIXL backends are unaffected. This lets the Kimi-K2.5 disaggregated tests keep backend "DEFAULT" without hard-coding the transceiver runtime. - modeling_kimi_k25.py: add get_preferred_transceiver_runtime() -> "PYTHON". - test_modeling_kimi_k25.py: unit test asserting the preference. Signed-off-by: Shixiaowei02 <39303645+Shixiaowei02@users.noreply.github.com>
Mirror the GPT-OSS approach (NVIDIA#16479): KimiK25ForConditionalGeneration now declares "PYTHON" as its preferred KV-cache transceiver runtime. In disaggregated serving, when the user leaves cache_transceiver_config.transceiver_runtime at its default 'auto' and the effective backend is NIXL ("DEFAULT" resolves to NIXL when no legacy backend env var is set), Kimi-K2.5 adopts the Python (v2) transceiver instead of the C++ one. Explicit user settings and non-NIXL backends are unaffected. This lets the Kimi-K2.5 disaggregated tests keep backend "DEFAULT" without hard-coding the transceiver runtime. - modeling_kimi_k25.py: add get_preferred_transceiver_runtime() -> "PYTHON". - test_modeling_kimi_k25.py: unit test asserting the preference. Signed-off-by: Shixiaowei02 <39303645+Shixiaowei02@users.noreply.github.com>
Mirror the GPT-OSS approach (NVIDIA#16479): KimiK25ForConditionalGeneration now declares "PYTHON" as its preferred KV-cache transceiver runtime. In disaggregated serving, when the user leaves cache_transceiver_config.transceiver_runtime at its default 'auto' and the effective backend is NIXL ("DEFAULT" resolves to NIXL when no legacy backend env var is set), Kimi-K2.5 adopts the Python (v2) transceiver instead of the C++ one. Explicit user settings and non-NIXL backends are unaffected. This lets the Kimi-K2.5 disaggregated tests keep backend "DEFAULT" without hard-coding the transceiver runtime. - modeling_kimi_k25.py: add get_preferred_transceiver_runtime() -> "PYTHON". - test_modeling_kimi_k25.py: unit test asserting the preference. - Remove the redundant TestKimiK2::test_nvfp4 disaggregated accuracy test; Kimi disaggregated accuracy is covered by TestKimiK25, and Kimi-K2-Thinking accuracy stays covered by the aggregated tests in test_llm_api_pytorch. Signed-off-by: Shixiaowei02 <39303645+Shixiaowei02@users.noreply.github.com>
Mirror the GPT-OSS approach (NVIDIA#16479): KimiK25ForConditionalGeneration now declares "PYTHON" as its preferred KV-cache transceiver runtime. In disaggregated serving, when the user leaves cache_transceiver_config.transceiver_runtime at its default 'auto' and the effective backend is NIXL ("DEFAULT" resolves to NIXL when no legacy backend env var is set), Kimi-K2.5 adopts the Python (v2) transceiver instead of the C++ one. Explicit user settings and non-NIXL backends are unaffected. This lets the Kimi-K2.5 disaggregated tests keep backend "DEFAULT" without hard-coding the transceiver runtime. - modeling_kimi_k25.py: add get_preferred_transceiver_runtime() -> "PYTHON". - test_modeling_kimi_k25.py: unit test asserting the preference. - Remove the redundant TestKimiK2::test_nvfp4 disaggregated accuracy test; Kimi disaggregated accuracy is covered by TestKimiK25, and Kimi-K2-Thinking accuracy stays covered by the aggregated tests in test_llm_api_pytorch. Signed-off-by: Shixiaowei02 <39303645+Shixiaowei02@users.noreply.github.com>
Mirror the GPT-OSS approach (NVIDIA#16479): KimiK25ForConditionalGeneration now declares "PYTHON" as its preferred KV-cache transceiver runtime, so disaggregated Kimi-K2.5 adopts the Python (v2) transceiver by default when the user leaves transceiver_runtime at 'auto' and the effective backend is NIXL. Explicit user settings and non-NIXL backends are unaffected. - modeling_kimi_k25.py: add get_preferred_transceiver_runtime() -> "PYTHON". - test_modeling_kimi_k25.py: unit test asserting the preference. - TestKimiK25::test_nvfp4: set cache_transceiver_config explicitly to backend=NIXL + transceiver_runtime=PYTHON (ctx and gen). The disagg test harness injects TRTLLM_USE_UCX_KVCACHE=1 for any non-NIXL backend, so a "DEFAULT" backend would resolve to UCX and force the C++ transceiver; the test sets NIXL explicitly so it actually exercises the Python transceiver rather than relying on the model-default resolution. - Remove the redundant TestKimiK2::test_nvfp4 disaggregated accuracy test; Kimi disaggregated accuracy is covered by TestKimiK25, and Kimi-K2-Thinking accuracy stays covered by the aggregated tests in test_llm_api_pytorch. Signed-off-by: Shixiaowei02 <39303645+Shixiaowei02@users.noreply.github.com>
Mirror the GPT-OSS approach (NVIDIA#16479): KimiK25ForConditionalGeneration now declares "PYTHON" as its preferred KV-cache transceiver runtime, so disaggregated Kimi-K2.5 adopts the Python (v2) transceiver by default when the user leaves transceiver_runtime at 'auto' and the effective backend is NIXL. Explicit user settings and non-NIXL backends are unaffected. - modeling_kimi_k25.py: add get_preferred_transceiver_runtime() -> "PYTHON". - test_modeling_kimi_k25.py: unit test asserting the preference. - TestKimiK25::test_nvfp4: set cache_transceiver_config explicitly to backend=NIXL + transceiver_runtime=PYTHON (ctx and gen). The disagg test harness injects TRTLLM_USE_UCX_KVCACHE=1 for any non-NIXL backend, so a "DEFAULT" backend would resolve to UCX and force the C++ transceiver; the test sets NIXL explicitly so it actually exercises the Python transceiver rather than relying on the model-default resolution. - Remove the redundant TestKimiK2::test_nvfp4 disaggregated accuracy test; Kimi disaggregated accuracy is covered by TestKimiK25, and Kimi-K2-Thinking accuracy stays covered by the aggregated tests in test_llm_api_pytorch. Signed-off-by: Shixiaowei02 <39303645+Shixiaowei02@users.noreply.github.com>
|
PR_Github #59647 [ run ] completed with state
|
|
/bot run --disable-fail-fast |
|
PR_Github #59826 [ run ] triggered by Bot. Commit: |
Mirror the GPT-OSS approach (NVIDIA#16479): KimiK25ForConditionalGeneration now declares "PYTHON" as its preferred KV-cache transceiver runtime, so disaggregated Kimi-K2.5 adopts the Python (v2) transceiver by default when the user leaves transceiver_runtime at 'auto' and the effective backend is NIXL. Explicit user settings and non-NIXL backends are unaffected. - modeling_kimi_k25.py: add get_preferred_transceiver_runtime() -> "PYTHON". - test_modeling_kimi_k25.py: unit test asserting the preference. - TestKimiK25::test_nvfp4: set cache_transceiver_config explicitly to backend=NIXL + transceiver_runtime=PYTHON (ctx and gen). The disagg test harness injects TRTLLM_USE_UCX_KVCACHE=1 for any non-NIXL backend, so a "DEFAULT" backend would resolve to UCX and force the C++ transceiver; the test sets NIXL explicitly so it actually exercises the Python transceiver rather than relying on the model-default resolution. - Remove the redundant TestKimiK2::test_nvfp4 disaggregated accuracy test; Kimi disaggregated accuracy is covered by TestKimiK25, and Kimi-K2-Thinking accuracy stays covered by the aggregated tests in test_llm_api_pytorch. Signed-off-by: Shixiaowei02 <39303645+Shixiaowei02@users.noreply.github.com>
|
/bot run --disable-fail-fast |
|
PR_Github #59863 [ run ] triggered by Bot. Commit: |
|
PR_Github #59826 [ run ] completed with state |
|
PR_Github #59863 [ run ] completed with state
|
Mirror the GPT-OSS approach (NVIDIA#16479): KimiK25ForConditionalGeneration now declares "PYTHON" as its preferred KV-cache transceiver runtime, so disaggregated Kimi-K2.5 adopts the Python (v2) transceiver by default when the user leaves transceiver_runtime at 'auto' and the effective backend is NIXL. Explicit user settings and non-NIXL backends are unaffected. - modeling_kimi_k25.py: add get_preferred_transceiver_runtime() -> "PYTHON". - test_modeling_kimi_k25.py: unit test asserting the preference. - TestKimiK25::test_nvfp4: set cache_transceiver_config explicitly to backend=NIXL + transceiver_runtime=PYTHON (ctx and gen). The disagg test harness injects TRTLLM_USE_UCX_KVCACHE=1 for any non-NIXL backend, so a "DEFAULT" backend would resolve to UCX and force the C++ transceiver; the test sets NIXL explicitly so it actually exercises the Python transceiver rather than relying on the model-default resolution. - Remove the redundant TestKimiK2::test_nvfp4 disaggregated accuracy test; Kimi disaggregated accuracy is covered by TestKimiK25, and Kimi-K2-Thinking accuracy stays covered by the aggregated tests in test_llm_api_pytorch. Signed-off-by: Shixiaowei02 <39303645+Shixiaowei02@users.noreply.github.com>
|
/bot run --disable-fail-fast |
|
PR_Github #60141 [ run ] triggered by Bot. Commit: |
Mirror the GPT-OSS approach (NVIDIA#16479): KimiK25ForConditionalGeneration now declares "PYTHON" as its preferred KV-cache transceiver runtime, so disaggregated Kimi-K2.5 adopts the Python (v2) transceiver by default when the user leaves transceiver_runtime at 'auto' and the effective backend is NIXL. Explicit user settings and non-NIXL backends are unaffected. - modeling_kimi_k25.py: add get_preferred_transceiver_runtime() -> "PYTHON". - test_modeling_kimi_k25.py: unit test asserting the preference. - TestKimiK25::test_nvfp4: set cache_transceiver_config explicitly to backend=NIXL + transceiver_runtime=PYTHON (ctx and gen). The disagg test harness injects TRTLLM_USE_UCX_KVCACHE=1 for any non-NIXL backend, so a "DEFAULT" backend would resolve to UCX and force the C++ transceiver; the test sets NIXL explicitly so it actually exercises the Python transceiver rather than relying on the model-default resolution. - Remove the redundant TestKimiK2::test_nvfp4 disaggregated accuracy test; Kimi disaggregated accuracy is covered by TestKimiK25, and Kimi-K2-Thinking accuracy stays covered by the aggregated tests in test_llm_api_pytorch. Signed-off-by: Shixiaowei02 <39303645+Shixiaowei02@users.noreply.github.com>
|
PR_Github #60141 [ run ] completed with state
|
|
/bot run --disable-fail-fast |
|
PR_Github #60182 [ run ] triggered by Bot. Commit: |
2df5cdc to
a9b554c
Compare
|
/bot run --disable-fail-fast |
|
PR_Github #60184 [ run ] triggered by Bot. Commit: |
|
PR_Github #60182 [ run ] completed with state |
|
PR_Github #60184 [ run ] completed with state
|
|
/bot run --disable-fail-fast |
|
PR_Github #60205 [ run ] triggered by Bot. Commit: |
Mirror the GPT-OSS approach (NVIDIA#16479): KimiK25ForConditionalGeneration now declares "PYTHON" as its preferred KV-cache transceiver runtime, so disaggregated Kimi-K2.5 adopts the Python (v2) transceiver by default when the user leaves transceiver_runtime at 'auto' and the effective backend is NIXL. Explicit user settings and non-NIXL backends are unaffected. - modeling_kimi_k25.py: add get_preferred_transceiver_runtime() -> "PYTHON". - test_modeling_kimi_k25.py: unit test asserting the preference. - TestKimiK25::test_nvfp4: set cache_transceiver_config explicitly to backend=NIXL + transceiver_runtime=PYTHON (ctx and gen). The disagg test harness injects TRTLLM_USE_UCX_KVCACHE=1 for any non-NIXL backend, so a "DEFAULT" backend would resolve to UCX and force the C++ transceiver; the test sets NIXL explicitly so it actually exercises the Python transceiver rather than relying on the model-default resolution. - Remove the redundant TestKimiK2::test_nvfp4 disaggregated accuracy test; Kimi disaggregated accuracy is covered by TestKimiK25, and Kimi-K2-Thinking accuracy stays covered by the aggregated tests in test_llm_api_pytorch. Signed-off-by: Shixiaowei02 <39303645+Shixiaowei02@users.noreply.github.com>
Mirror the GPT-OSS approach (NVIDIA#16479): KimiK25ForConditionalGeneration now declares "PYTHON" as its preferred KV-cache transceiver runtime, so disaggregated Kimi-K2.5 adopts the Python (v2) transceiver by default when the user leaves transceiver_runtime at 'auto' and the effective backend is NIXL. Explicit user settings and non-NIXL backends are unaffected. - modeling_kimi_k25.py: add get_preferred_transceiver_runtime() -> "PYTHON". - test_modeling_kimi_k25.py: unit test asserting the preference. - TestKimiK25::test_nvfp4: set cache_transceiver_config explicitly to backend=NIXL + transceiver_runtime=PYTHON (ctx and gen). The disagg test harness injects TRTLLM_USE_UCX_KVCACHE=1 for any non-NIXL backend, so a "DEFAULT" backend would resolve to UCX and force the C++ transceiver; the test sets NIXL explicitly so it actually exercises the Python transceiver rather than relying on the model-default resolution. - Remove the redundant TestKimiK2::test_nvfp4 disaggregated accuracy test; Kimi disaggregated accuracy is covered by TestKimiK25, and Kimi-K2-Thinking accuracy stays covered by the aggregated tests in test_llm_api_pytorch. Signed-off-by: Shixiaowei02 <39303645+Shixiaowei02@users.noreply.github.com>
|
PR_Github #60205 [ run ] completed with state
|
Signed-off-by: Tingfeng Xian <289617005+nv-xtf@users.noreply.github.com>
Signed-off-by: Tingfeng Xian <289617005+nv-xtf@users.noreply.github.com>
a9b554c to
624016f
Compare
|
/bot run --disable-fail-fast |
|
PR_Github #60268 [ run ] triggered by Bot. Commit: |
|
PR_Github #60268 [ run ] completed with state
|
|
/bot run --disable-fail-fast |
|
PR_Github #60327 [ run ] triggered by Bot. Commit: |
|
PR_Github #60327 [ run ] completed with state
|
|
/bot run --disable-fail-fast |
|
PR_Github #60381 [ run ] triggered by Bot. Commit: |
|
PR_Github #60381 [ run ] completed with state |
Description
Built on top of #16164 (per-model transceiver runtime auto selection): opt GPT-OSS into the Python KV-cache transceiver by default.
GptOssForCausalLMnow overridesget_preferred_transceiver_runtime()to return"PYTHON". Disaggregated deployments that leavetransceiver_runtimeat its defaultauto(backend NIXL/DEFAULT) use the Python transceiver (KvCacheTransceiverV2) out of the box. Explicit user settings always take precedence, and incompatible backends fall back to the C++ transceiver per the #16164 resolution semantics. No effect on non-disaggregated deployments.Test Coverage
test_modeling_gpt_oss.py::test_gpt_oss_prefers_python_transceiverpins the model preference.TestTransceiverRuntimeAutoResolution).test_disaggregated_gpt_oss_120b_harmony: startup logs showResolved transceiver_runtime='auto' to 'PYTHON' for GptOssForCausalLMandUsing KvCacheTransceiverV2; explicitCPPoverride verified to bypass the preference.PR Checklist
Please review the following before submitting your PR:
PR description clearly explains what and why. If using CodeRabbit's summary, please make sure it makes sense.
PR Follows TRT-LLM CODING GUIDELINES to the best of your knowledge.
Test cases are provided for new code paths (see test instructions)
If PR introduces API changes, an appropriate PR label is added - either
api-compatibleorapi-breaking. Forapi-breaking, includeBREAKINGin the PR title.Any new dependencies have been scanned for license and vulnerabilities
CODEOWNERS updated if ownership changes
Documentation updated as needed
Update tava architecture diagram if there is a significant design change in PR.
The reviewers assigned automatically/manually are appropriate for the PR.
Please check this after reviewing the above items as appropriate for this PR.
GitHub Bot Help
To see a list of available CI bot commands, please comment
/bot help.Summary by CodeRabbit
Bug Fixes
Tests