Skip to content

feat(llm): carry KServe requested outputs on tensor requests - #14618

Merged
yinggeh merged 2 commits into
mainfrom
yinggeh/dyn-4392-kserve-tensor-requests-support-requested-outputs
Sep 15, 2026
Merged

yinggeh merged 2 commits into
mainfrom
yinggeh/dyn-4392-kserve-tensor-requests-support-requested-outputs

Conversation

@yinggeh

@yinggeh yinggeh commented Sep 10, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Add RequestedOutput and NvCreateTensorRequest.outputs so a tensor request can name which model outputs to return and carry per-output parameters.
  • Convert KServe ModelInferRequest.outputs (including parameters such as classification) in the gRPC tensor frontend. An empty list still means every model output.

Validation

  • Unit tests in lib/llm/src/grpc/service/tensor.rs: parameters are preserved, empty outputs are omitted from JSON, and a valueless parameter is rejected as InvalidArgument.
  • rustfmt --edition 2024 on the two touched files.

Summary by CodeRabbit

  • New Features

    • Tensor requests can now specify requested output names and optional parameters.
    • Omitting requested outputs continues to represent requesting all model outputs.
    • Output parameters are preserved when tensor requests are processed.
  • Bug Fixes

    • Empty output lists are omitted during JSON serialization.
    • Invalid output parameters without values are rejected.

@yinggeh
yinggeh requested a review from a team as a code owner September 10, 2026 15:22
@copy-pr-bot

copy-pr-bot Bot commented Sep 10, 2026

Copy link
Copy Markdown

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@github-actions github-actions Bot added feat frontend `python -m dynamo.frontend` and `dynamo-run in=http|text|grpc` labels Sep 10, 2026
@yinggeh yinggeh self-assigned this Sep 10, 2026
@yinggeh

yinggeh commented Sep 10, 2026

Copy link
Copy Markdown
Contributor Author

/ok_to_test 6f2fe42

@coderabbitai

coderabbitai Bot commented Sep 10, 2026 •

Copy link
Copy Markdown
Contributor

Review Change StackReview Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 18369f8d-3421-4168-becc-24add1ae2baa

📥 Commits

Reviewing files that changed from the base of the PR and between 061385a and c6cfaba.

📒 Files selected for processing (2)
  • lib/llm/src/grpc/service/tensor.rs
  • lib/llm/src/protocols/tensor.rs

Included review availability: Your plan provides up to 12 included reviews per hour; 11 remain after this review.


Walkthrough

Changes

Tensor request output handling

Layer / File(s) Summary
Requested output contract
lib/llm/src/protocols/tensor.rs
Adds RequestedOutput with a name and parameters. Adds outputs to NvCreateTensorRequest. Empty output lists are omitted during serialization.
Output conversion and validation
lib/llm/src/grpc/service/tensor.rs
Converts KServe requested outputs into Dynamo values, preserves parameters, and rejects valueless parameters. Tests cover conversion and JSON serialization.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Merge Risk: ⚪ Minimal · up to c6cfa

This change propagates requested output names and parameters while preserving all-output behavior and rejecting invalid valueless parameters. No merge-blocking risk remains.

🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (2 warnings)

Check name Status Explanation Resolution
Description check ⚠️ Warning The description explains the implementation and validation, but it omits the required Related Issues section and does not identify where the reviewer should start. Add the required Related Issues section and select either the linked issue option with issue number(s) or the confirmation that no related issue exists. Also identify the files or areas where the reviewer should start.
Docstring Coverage ⚠️ Warning Docstring coverage is 30.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 10 functions across 2 files. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly identifies the main change: carrying KServe requested outputs through tensor requests.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

🤖 Coding task started


Comment @coderabbitai help to get the list of available commands.

@coderabbitai

coderabbitai Bot commented Sep 10, 2026 •

Copy link
Copy Markdown
Contributor

⚠️ Coding task failed

The task could not be completed. Open the task for details or retry.

Comment thread lib/llm/src/protocols/tensor.rs Outdated
@yinggeh
yinggeh force-pushed the yinggeh/dyn-4392-kserve-tensor-requests-support-requested-outputs branch from cc2b735 to 1ef616e Compare September 10, 2026 15:45
Comment thread lib/llm/src/protocols/tensor.rs
Comment thread lib/llm/src/protocols/tensor.rs
@yinggeh
yinggeh force-pushed the yinggeh/dyn-4392-kserve-tensor-requests-support-requested-outputs branch from 1ef616e to b7e2027 Compare September 15, 2026 09:08
Forward ModelInferRequest.outputs (name and parameters) onto
NvCreateTensorRequest so workers can honor classification and
output selection.

Signed-off-by: Yingge He <yinggeh@nvidia.com>
@yinggeh
yinggeh force-pushed the yinggeh/dyn-4392-kserve-tensor-requests-support-requested-outputs branch from b7e2027 to cbcc5aa Compare September 15, 2026 09:19
@yinggeh

yinggeh commented Sep 15, 2026

Copy link
Copy Markdown
Contributor Author

/ok to test cbcc5aa

@yinggeh

yinggeh commented Sep 15, 2026

Copy link
Copy Markdown
Contributor Author

/ok to test d786503

@yinggeh
yinggeh merged commit 055e989 into main Sep 15, 2026
122 of 123 checks passed
@yinggeh
yinggeh deleted the yinggeh/dyn-4392-kserve-tensor-requests-support-requested-outputs branch September 15, 2026 16:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feat frontend `python -m dynamo.frontend` and `dynamo-run in=http|text|grpc` size/L

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants