跳到內容

自定義引數

您可以使用 vLLM 的自定義引數來傳遞不在 vLLM SamplingParams 和 REST API 規範中的引數。新增或刪除 vLLM 自定義引數不需要重新編譯 vLLM,因為自定義引數是以字典的形式傳遞的。

如果您想使用自定義 logits processor 而不修改 vLLM 原始碼,自定義引數可能會非常有用。

注意

請確保您的自定義 logits processor 為自定義引數實現了 validate_params。否則,無效的自定義引數可能導致意外行為。

離線自定義引數

傳遞給 SamplingParams.extra_args 的自定義引數(作為 dict)將對任何可以訪問 SamplingParams 的程式碼可見。

SamplingParams(extra_args={"your_custom_arg_name": 67})

這允許將尚未包含在 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 的程式碼同時相容離線和線上場景。