vLLM 提供了丰富的命令行接口参数,方便用户在不同的环境和需求下灵活配置。以下是各个接口参数的详细介绍:
基本配置
--host HOST
: 指定服务器主机名。--port PORT
: 指定服务器端口号。--uvicorn-log-level {debug,info,warning,error,critical,trace}
: 设置 Uvicorn 的日志级别。--allow-credentials
: 允许跨域请求时携带凭证。--allowed-origins ALLOWED_ORIGINS
: 允许跨域请求的来源。--allowed-methods ALLOWED_METHODS
: 允许跨域请求的方法。--allowed-headers ALLOWED_HEADERS
: 允许跨域请求的头部。--api-key API_KEY
: 如果提供,该服务器将要求在请求头中提供此密钥。
模型配置
--served-model-name SERVED_MODEL_NAME
: API 使用的模型名称。如果未指定,则默认为 Hugging Face 模型名称。--model MODEL
: 使用的 Hugging Face 模型名称或路径。--tokenizer TOKENIZER
: 使用的 Hugging Face 分词器名称或路径。--revision REVISION
: 使用的特定模型版本(分支名、标签名或提交 ID)。若未指定,将使用默认版本。--code-revision CODE_REVISION
: 使用 Hugging Face Hub 上的特定模型代码版本。--tokenizer-revision TOKENIZER_REVISION
: 使用的特定分词器版本(分支名、标签名或提交 ID)。--tokenizer-mode {auto,slow}
: 分词器模式。"auto" 使用快速分词器(如有),"slow" 始终使用慢速分词器。--trust-remote-code
: 信任 Hugging Face 远程代码。
模型加载和量化
--download-dir DOWNLOAD_DIR
: 下载和加载权重的目录,默认为 Hugging Face 默认缓存目录。--load-format {auto,pt,safetensors,npcache,dummy}
: 模型权重的加载格式。 "auto" 尝试使用 safetensors 格式加载权重,如果不可用则回退到 pytorch bin 格式。--dtype {auto,half,float16,bfloat16,float,float32}
: 模型权重和激活的数据类型。"auto" 对于 FP32 和 FP16 模型使用 FP16 精度,对于 BF16 模型使用 BF16 精度。--kv-cache-dtype {auto,fp8_e5m2}
: 键值缓存存储的数据类型。 "auto" 使用模型数据类型。注意,FP8 仅在 CUDA 版本高于 11.8 时支持。--max-model-len MAX_MODEL_LEN
: 模型上下文长度。如果未指定,将自动从模型中推导。
性能优化
--pipeline-parallel-size PIPELINE_PARALLEL_SIZE, -pp PIPELINE_PARALLEL_SIZE
: 管道并行阶段的数量。--tensor-parallel-size TENSOR_PARALLEL_SIZE, -tp TENSOR_PARALLEL_SIZE
: 张量并行副本的数量。--max-parallel-loading-workers MAX_PARALLEL_LOADING_WORKERS
: 使用多个批次顺序加载模型,以避免使用张量并行和大模型时的内存不足。--gpu-memory-utilization GPU_MEMORY_UTILIZATION
: 模型执行器使用的 GPU 内存百分比,范围为 0 到 1。若未指定,将使用默认值 0.9。--swap-space SWAP_SPACE
: 每个 GPU 的 CPU 交换空间大小(以 GiB 为单位)。--block-size {8,16,32,128}
: 令牌块大小。--max-num-batched-tokens MAX_NUM_BATCHED_TOKENS
: 每次迭代的最大批处理令牌数。--max-num-seqs MAX_NUM_SEQS
: 每次迭代的最大序列数。--max-logprobs MAX_LOGPROBS
: 返回的最大日志概率数量。
SSL 配置
--ssl-keyfile SSL_KEYFILE
: SSL 密钥文件的路径。--ssl-certfile SSL_CERTFILE
: SSL 证书文件的路径。--ssl-ca-certs SSL_CA_CERTS
: CA 证书文件。--ssl-cert-reqs SSL_CERT_REQS
: 是否需要客户端证书(参见标准库的 SSL 模块)。
其他配置
--root-path ROOT_PATH
: 在基于路径的路由代理后面时使用的 FastAPI 根路径。--middleware MIDDLEWARE
: 应用到应用程序的额外 ASGI 中间件。可以接受多个--middleware
参数,值应为导入路径。--max-log-len MAX_LOG_LEN
: 日志中打印的最大提示字符或提示 ID 数量,默认无限制。--enable-prefix-caching
: 启用自动前缀缓存。--use-v2-block-manager
: 使用 BlockSpaceMangerV2。--num-lookahead-slots NUM_LOOKAHEAD_SLOTS
: 实验性调度配置,必要时进行投机解码。
分布式和异步配置
--worker-use-ray
: 使用 Ray 进行分布式服务,当使用超过 1 个 GPU 时将自动设置。--engine-use-ray
: 使用 Ray 在单独的进程中启动 LLM 引擎。--ray-workers-use-nsight
: 如果指定,使用 nsight 对 Ray 工作者进行分析。--max-cpu-loras MAX_CPU_LORAS
: 存储在 CPU 内存中的最大 LoRAs 数量。必须 >=max_num_seqs
,默认为max_num_seqs
。--device {auto,cuda,neuron,cpu}
: vLLM 执行的设备类型。--enable-lora
: 如果为 True,启用 LoRA 适配器处理。
图像输入配置
--image-input-type {pixel_values,image_features}
: 传递给 vLLM 的图像输入类型,应为 "pixel_values" 或 "image_features"。--image-token-id IMAGE_TOKEN_ID
: 图像令牌的输入 ID。--image-input-shape IMAGE_INPUT_SHAPE
: 给定输入类型的最大图像输入形状(最差内存占用),仅用于 vLLM 的 profile_run。--image-feature-size IMAGE_FEATURE_SIZE
: 沿上下文维度的图像特征大小。
使用示例
以下是一个使用这些参数启动 vLLM 服务器的示例:
vllm-server --host 0.0.0.0 --port 8000 --model gpt-3 --tokenizer gpt-3 --dtype float16 --pipeline-parallel-size 2 --tensor-parallel-size 4 --gpu-memory-utilization 0.8 --ssl-keyfile /path/to/keyfile --ssl-certfile /path/to/certfile
通过这些参数配置,您可以根据不同的需求和环境灵活调整 vLLM 服务器的行为和性能。