高级配置选项¶
为了根据您的具体需求调整设置,您可以使用 vLLM 服务器和基准测试的可选高级配置。这些配置允许您通过其他环境变量或配置文件来精细调整性能、内存使用和请求处理。对于大多数用户来说,基本设置已足够,但高级用户可能会从这些自定义设置中受益。
使用带自定义参数的 Docker Compose 运行 vLLM¶
此配置允许您在启动服务器时提供额外的环境变量来覆盖默认设置。这允许对性能和内存使用进行精细调整。
下表列出了可用变量
| 可变 | 描述 |
|---|---|
PT_HPU_LAZY_MODE |
启用惰性执行模式,可能通过批处理操作来提高性能。 |
VLLM_SKIP_WARMUP |
跳过模型预热阶段以减少启动时间。这可能会影响初始延迟。 |
MAX_MODEL_LEN |
设置模型支持的最大序列长度。 |
MAX_NUM_SEQS |
指定并发处理的最大序列数。 |
TENSOR_PARALLEL_SIZE |
定义张量并行度。 |
VLLM_EXPONENTIAL_BUCKETING |
启用或禁用用于预热策略的指数分桶。 |
VLLM_DECODE_BLOCK_BUCKET_STEP |
配置解码块分配的步长,影响内存粒度。 |
VLLM_DECODE_BS_BUCKET_STEP |
设置解码操作的批量大小步长,影响解码批次的组合方式。 |
VLLM_PROMPT_BS_BUCKET_STEP |
调整提示处理的批量大小步长。 |
VLLM_PROMPT_SEQ_BUCKET_STEP |
控制提示序列分配的步长。 |
如以下示例所示,在运行 vLLM 服务器时设置首选变量,使用 Docker Compose
MODEL="Qwen/Qwen2.5-14B-Instruct" \
HF_TOKEN="<your huggingface token>" \
DOCKER_IMAGE="vault.habana.ai/gaudi-docker/1.22.2/ubuntu24.04/habanalabs/vllm-plugin-2.7.1:latest" \
TENSOR_PARALLEL_SIZE=1 \
MAX_MODEL_LEN=2048 \
docker compose up
使用自定义参数运行 vLLM 和基准测试¶
此配置允许您在运行 Docker Compose 之前设置其他环境变量来自定义基准测试行为。
下表列出了可用变量
| 可变 | 描述 |
|---|---|
INPUT_TOK |
每个提示的输入 token 数。 |
OUTPUT_TOK |
每个提示要生成的输出 token 数。 |
CON_REQ |
基准测试期间的并发请求数。 |
NUM_PROMPTS |
基准测试中要使用的提示总数。 |
如以下示例所示,在运行 vLLM 服务器时设置首选变量,使用 Docker Compose
MODEL="Qwen/Qwen2.5-14B-Instruct" \
HF_TOKEN="<your huggingface token>" \
DOCKER_IMAGE="vault.habana.ai/gaudi-docker/1.22.2/ubuntu24.04/habanalabs/vllm-plugin-2.7.1:latest" \
INPUT_TOK=128 \
OUTPUT_TOK=128 \
CON_REQ=16 \
NUM_PROMPTS=64 \
docker compose --profile benchmark up
这将启动 vLLM 服务器并使用您指定的参数运行基准测试。
使用组合自定义参数运行 vLLM 和基准测试¶
此配置允许您一起启动 vLLM 服务器和基准测试。您可以设置前面提到的服务器和基准测试特定变量的任何组合。如以下示例所示,在运行 vLLM 服务器时使用 Docker Compose 设置首选变量
MODEL="Qwen/Qwen2.5-14B-Instruct" \
HF_TOKEN="<your huggingface token>" \
DOCKER_IMAGE="vault.habana.ai/gaudi-docker/1.22.2/ubuntu24.04/habanalabs/vllm-plugin-2.7.1:latest" \
TENSOR_PARALLEL_SIZE=1 \
MAX_MODEL_LEN=2048 \
INPUT_TOK=128 \
OUTPUT_TOK=128 \
CON_REQ=16 \
NUM_PROMPTS=64 \
docker compose --profile benchmark up
此命令将启动服务器并使用提供的配置执行基准测试。
使用配置文件运行 vLLM 和基准测试¶
此配置允许您通过 YAML 配置文件配置服务器和基准测试。
下表列出了可用的环境变量
| 可变 | 描述 |
|---|---|
VLLM_SERVER_CONFIG_FILE |
Docker 容器内服务器配置文件路径。 |
VLLM_SERVER_CONFIG_NAME |
服务器配置部分的名称。 |
VLLM_BENCHMARK_CONFIG_FILE |
容器内基准测试配置文件路径。 |
VLLM_BENCHMARK_CONFIG_NAME |
基准测试配置部分的名称。 |
如以下示例所示,在运行 vLLM 服务器时设置首选变量,使用 Docker Compose
HF_TOKEN=<your huggingface token> \
VLLM_SERVER_CONFIG_FILE=server/server_scenarios_text.yaml \
VLLM_SERVER_CONFIG_NAME=llama31_8b_instruct \
VLLM_BENCHMARK_CONFIG_FILE=benchmark/benchmark_scenarios_text.yaml \
VLLM_BENCHMARK_CONFIG_NAME=llama31_8b_instruct \
docker compose --profile benchmark up
注意
使用配置文件时,您不需要设置 MODEL 变量,因为模型详细信息包含在配置文件中。但是,仍然需要 HF_TOKEN 标志。
直接使用 Docker 运行 vLLM¶
为了获得最大的控制权,您可以使用 docker run 命令直接运行服务器,允许完全自定义 Docker 运行时设置,如下面的示例所示
docker run -it --rm \
-e MODEL=$MODEL \
-e HF_TOKEN=$HF_TOKEN \
-e http_proxy=$http_proxy \
-e https_proxy=$https_proxy \
-e no_proxy=$no_proxy \
--cap-add=sys_nice \
--ipc=host \
--runtime=habana \
-e HABANA_VISIBLE_DEVICES=all \
-p 8000:8000 \
--name vllm-server \
<docker image name>
此方法提供了在容器内执行 vLLM 服务器的完全灵活性。
固定 CPU 核心以提高内存访问一致性¶
为了提高内存访问一致性并将 CPU 释放给其他仅 CPU 工作负载(例如 Llama3 8B 的 vLLM 服务),您可以使用自动生成的 docker-compose.override.yml 文件,根据不同的 CPU 非一致性内存访问 (NUMA) 节点来固定 CPU 核心。以下过程说明了该过程。
当前经过此设置验证的 Xeon 处理器包括:Intel Xeon 6960P 和 Intel Xeon PLATINUM 8568Y+。
-
安装所需的 Python 库。
-
使用
docker-compose.override.yml文件固定 CPU 核心。export MODEL="Qwen/Qwen2.5-14B-Instruct" export HF_TOKEN="<your huggingface token>" export DOCKER_IMAGE="<docker image url>" python3 server/cpu_binding/generate_cpu_binding_from_csv.py --settings server/cpu_binding/cpu_binding_gnr.csv --output ./docker-compose.override.yml docker compose --profile benchmark up -
在
docker-compose.override.yml中指定服务名称,将空闲 CPU 绑定到另一个服务,例如vllm-cpu-service,如下面的示例所示export MODEL="Qwen/Qwen2.5-14B-Instruct" export HF_TOKEN="<your huggingface token>" export DOCKER_IMAGE="<docker image url>" python3 server/cpu_binding/generate_cpu_binding_from_csv.py --settings server/cpu_binding/cpu_binding_gnr.csv --output ./docker-compose.override.yml --cpuservice vllm-cpu-service docker compose --profile benchmark -f docker-compose.yml -f docker-compose.vllm-cpu-service.yml -f docker-compose.override.yml up