自定义参数¶
您可以使用 vLLM 的自定义参数来传递不在 vLLM SamplingParams 和 REST API 规范中的参数。添加或删除 vLLM 自定义参数不需要重新编译 vLLM,因为自定义参数是以字典的形式传递的。
如果您想使用自定义 logits processor 而不修改 vLLM 源代码,自定义参数可能会非常有用。
注意
请确保您的自定义 logits processor 为自定义参数实现了 validate_params。否则,无效的自定义参数可能导致意外行为。
离线自定义参数¶
传递给 SamplingParams.extra_args 的自定义参数(作为 dict)将对任何可以访问 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 的代码同时兼容离线和在线场景。