自定义参数¶
你可以使用 vLLM 的自定义参数来传入那些不属于 vLLM SamplingParams 和 REST API 规范的参数。添加或移除 vLLM 自定义参数不需要重新编译 vLLM,因为这些自定义参数是以字典形式传入的。
例如,如果你想使用自定义 logits 处理器而又不想修改 vLLM 源代码,自定义参数就非常有用。
注意
请确保你的自定义 logits 处理器已经实现了针对自定义参数的 validate_params 方法。否则,无效的自定义参数可能会导致意外行为。
离线自定义参数¶
作为 dict 传入 SamplingParams.extra_args 的自定义参数,对于任何能够访问 SamplingParams 的代码都是可见的。
这允许将不属于 SamplingParams 的参数作为请求的一部分传入 LLM。
在线自定义参数¶
vLLM REST API 允许通过 vllm_xargs 将自定义参数传递给 vLLM 服务器。以下示例展示了如何将自定义参数集成到 vLLM REST API 请求中。
curl https://:8000/v1/completions \
-H "Content-Type: application/json" \
-d '{
"model": "Qwen/Qwen2.5-1.5B-Instruct",
...
"vllm_xargs": {"your_custom_arg": 67}
}'
此外,OpenAI SDK 用户可以通过 extra_body 参数访问 vllm_xargs。
batch = await client.completions.create(
model="Qwen/Qwen2.5-1.5B-Instruct",
...,
extra_body={
"vllm_xargs": {
"your_custom_arg": 67
}
}
)
注意
vllm_xargs 在底层会被赋值给 SamplingParams.extra_args,因此使用 SamplingParams.extra_args 的代码在离线和在线场景下都是兼容的。