Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
55328d8
extra_args
afeldman-nm Apr 18, 2025
cc44096
Merge branch 'main' into extra_args
afeldman-nm Apr 21, 2025
876de25
Merge branch 'main' into extra_args
afeldman-nm Apr 21, 2025
191b9e1
rename
afeldman-nm Apr 22, 2025
1b658cd
rename
afeldman-nm Apr 22, 2025
6c892d8
Merge branch 'main' into extra_args
afeldman-nm Apr 22, 2025
6a0f87c
extra_body
afeldman-nm Apr 22, 2025
ac57a7f
completion custom arg unit test
afeldman-nm Apr 22, 2025
9753c75
Merge branch 'main' into extra_args
afeldman-nm Apr 22, 2025
c2f39bd
Merge branch 'main' into extra_args
afeldman-nm Apr 23, 2025
5c43609
tweak extra_args; test sampling params extra args via api
afeldman-nm Apr 23, 2025
1f8d6d1
Merge branch 'main' into extra_args
afeldman-nm Apr 23, 2025
368f907
remove unnecessary extra_body field/breakout
afeldman-nm Apr 23, 2025
a90311a
removed transcription scenario
afeldman-nm Apr 23, 2025
0e7809d
Merge branch 'main' into extra_args
afeldman-nm Apr 25, 2025
510623c
Merge branch 'main' into extra_args
afeldman-nm May 6, 2025
52988b8
revert sampling params
afeldman-nm May 7, 2025
94e5855
Merge branch 'main' into extra_args
afeldman-nm May 7, 2025
a869a6d
impl based on rfc
afeldman-nm May 7, 2025
934de06
Merge branch 'main' into extra_args
afeldman-nm May 7, 2025
cf6d7c5
upstream merge
afeldman-nm May 13, 2025
0695f26
upstream merge
afeldman-nm Jun 3, 2025
c3047cc
Merge branch 'main' into extra_args_merge
afeldman-nm Jun 3, 2025
c02ef1b
merge
afeldman-nm Jun 18, 2025
b804423
vllm_xargs/kv_transfer_params compatibility
afeldman-nm Jun 18, 2025
17f02ee
fix
afeldman-nm Jun 18, 2025
061ac67
remove unnecessary unit test
afeldman-nm Jun 18, 2025
421c278
precedence
afeldman-nm Jun 18, 2025
f315e0e
pre-commit fix
afeldman-nm Jun 18, 2025
3d92a07
Merge branch 'main' into extra_args_merge
afeldman-nm Jun 18, 2025
f8609ff
Merge branch 'main' into extra_args_merge
afeldman-nm Jun 18, 2025
9c5f407
Documentation changes
afeldman-nm Jun 18, 2025
0857dc4
refactor
afeldman-nm Jun 18, 2025
f9c4e19
typing
afeldman-nm Jun 18, 2025
03c6010
typing
afeldman-nm Jun 18, 2025
95e1b0d
typing
afeldman-nm Jun 18, 2025
9daeaed
Update vllm/entrypoints/openai/protocol.py
afeldman-nm Jun 18, 2025
baf90c9
feedback
afeldman-nm Jun 18, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion benchmarks/kernels/benchmark_moe_align_block_size.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@
import itertools

import torch
import triton

from vllm import _custom_ops as ops
from vllm.model_executor.layers.fused_moe.moe_align_block_size import (
moe_align_block_size_triton,
)
from vllm.triton_utils import triton


def get_topk_ids(num_tokens: int, num_experts: int, topk: int) -> torch.Tensor:
Expand Down
52 changes: 41 additions & 11 deletions vllm/entrypoints/openai/protocol.py
Original file line number Diff line number Diff line change
Expand Up @@ -326,8 +326,9 @@ class ChatCompletionRequest(OpenAIBaseModel):
)
chat_template_kwargs: Optional[dict[str, Any]] = Field(
default=None,
description=("Additional kwargs to pass to the template renderer. "
"Will be accessible by the chat template."),
description=(
"Additional keyword args to pass to the template renderer. "
"Will be accessible by the chat template."),
)
mm_processor_kwargs: Optional[dict[str, Any]] = Field(
default=None,
Expand Down Expand Up @@ -414,6 +415,12 @@ class ChatCompletionRequest(OpenAIBaseModel):
default=None,
description="KVTransfer parameters used for disaggregated serving.")

vllm_xargs: Optional[dict[str, Union[str, int, float]]] = Field(
default=None,
description=("Additional request parameters with string or "
"numeric values, used by custom extensions."),
)

# --8<-- [end:chat-completion-extra-params]

# Default sampling parameters for chat completion requests
Expand Down Expand Up @@ -523,6 +530,10 @@ def to_sampling_params(
structural_tag=self.structural_tag,
)

extra_args: dict[str, Any] = self.vllm_xargs if self.vllm_xargs else {}
if self.kv_transfer_params:
# Pass in kv_transfer_params via extra_args
extra_args["kv_transfer_params"] = self.kv_transfer_params
return SamplingParams.from_optional(
n=self.n,
best_of=self.best_of,
Expand Down Expand Up @@ -553,8 +564,8 @@ def to_sampling_params(
logit_bias=self.logit_bias,
bad_words= self.bad_words,
allowed_token_ids=self.allowed_token_ids,
extra_args=({"kv_transfer_params": self.kv_transfer_params}
if self.kv_transfer_params else None))
extra_args=extra_args or None,
)

def _get_guided_json_from_tool(
self) -> Optional[Union[str, dict, BaseModel]]:
Expand Down Expand Up @@ -871,6 +882,12 @@ class CompletionRequest(OpenAIBaseModel):
default=None,
description="KVTransfer parameters used for disaggregated serving.")

vllm_xargs: Optional[dict[str, Union[str, int, float]]] = Field(
default=None,
description=("Additional request parameters with string or "
"numeric values, used by custom extensions."),
)

# --8<-- [end:completion-extra-params]

# Default sampling parameters for completion requests
Expand Down Expand Up @@ -968,6 +985,10 @@ def to_sampling_params(
whitespace_pattern=self.guided_whitespace_pattern,
)

extra_args: dict[str, Any] = self.vllm_xargs if self.vllm_xargs else {}
if self.kv_transfer_params:
# Pass in kv_transfer_params via extra_args
extra_args["kv_transfer_params"] = self.kv_transfer_params
return SamplingParams.from_optional(
n=self.n,
best_of=self.best_of,
Expand Down Expand Up @@ -997,8 +1018,8 @@ def to_sampling_params(
guided_decoding=guided_decoding,
logit_bias=self.logit_bias,
allowed_token_ids=self.allowed_token_ids,
extra_args=({"kv_transfer_params": self.kv_transfer_params}
if self.kv_transfer_params else None))
extra_args=extra_args or None,
)

@model_validator(mode="before")
@classmethod
Expand Down Expand Up @@ -1117,8 +1138,9 @@ class EmbeddingChatRequest(OpenAIBaseModel):
)
chat_template_kwargs: Optional[dict[str, Any]] = Field(
default=None,
description=("Additional kwargs to pass to the template renderer. "
"Will be accessible by the chat template."),
description=(
"Additional keyword args to pass to the template renderer. "
"Will be accessible by the chat template."),
)
mm_processor_kwargs: Optional[dict[str, Any]] = Field(
default=None,
Expand Down Expand Up @@ -1623,8 +1645,9 @@ class TokenizeChatRequest(OpenAIBaseModel):
)
chat_template_kwargs: Optional[dict[str, Any]] = Field(
default=None,
description=("Additional kwargs to pass to the template renderer. "
"Will be accessible by the chat template."),
description=(
"Additional keyword args to pass to the template renderer. "
"Will be accessible by the chat template."),
)
mm_processor_kwargs: Optional[dict[str, Any]] = Field(
default=None,
Expand Down Expand Up @@ -1736,6 +1759,12 @@ class TranscriptionRequest(OpenAIBaseModel):
# Flattened stream option to simplify form data.
stream_include_usage: Optional[bool] = False
stream_continuous_usage_stats: Optional[bool] = False

vllm_xargs: Optional[dict[str, Union[str, int, float]]] = Field(
default=None,
description=("Additional request parameters with string or "
"numeric values, used by custom extensions."),
)
# --8<-- [end:transcription-extra-params]

# --8<-- [start:transcription-sampling-params]
Expand Down Expand Up @@ -1823,7 +1852,8 @@ def to_sampling_params(
presence_penalty=self.presence_penalty,
output_kind=RequestOutputKind.DELTA
if self.stream \
else RequestOutputKind.FINAL_ONLY)
else RequestOutputKind.FINAL_ONLY,
extra_args=self.vllm_xargs)

@model_validator(mode="before")
@classmethod
Expand Down
4 changes: 2 additions & 2 deletions vllm/sampling_params.py
Original file line number Diff line number Diff line change
Expand Up @@ -198,8 +198,8 @@ class SamplingParams(
processor which only retains scores for the given token ids.
Defaults to None.
extra_args: Arbitrary additional args, that can be used by custom
sampling implementations. Not used by any in-tree sampling
implementations.
sampling implementations, plugins, etc. Not used by any in-tree
sampling implementations.
"""

n: int = 1
Expand Down