vllm server 都有那些参数

vllm server 提供了多个参数来配置模型部署的方式,涵盖了资源管理、并行策略、模型缓存等。下面是常见的 vllm server 参数及其功能:

主要参数列表

  1. --tensor-parallel-size:指定张量并行度的大小。张量并行是将模型的计算分成若干份,每份由一个 GPU 处理。这个参数的值通常等于使用的 GPU 数量。

  2. --pipeline-parallel-size:指定流水线并行的大小。流水线并行用于模型的逐层并行化,将模型层分配给不同 GPU 处理。

  3. --gpu-memory-utilization:设置 GPU 内存利用率的上限,通常为 0 到 1 之间的浮点数(如 0.9 表示 90% 的利用率)。在模型大小接近 GPU 内存容量时非常有用,以避免内存溢出。

  4. --cpu-offload-gb:指定模型卸载到 CPU 的内存大小,单位为 GB。当 GPU 内存不足时,可以将模型的部分计算或存储卸载到 CPU。

  5. --max-model-len:指定模型的最大输入序列长度(token 数)。该参数控制模型接收的最大输入 token 数量,用于控制内存和计算资源。

  6. --swap-space:分配的交换空间大小,单位为 GB。用于处理多个 GPU 之间的交换操作,提升内存利用效率,尤其在多 GPU 设置中有用。

  7. --fp16:是否使用 16 位浮点数(FP16)进行推理。启用后模型精度将从 32 位浮点数降低至 16 位,这可以节省大量内存和计算资源,但可能会影响模型精度。

  8. --model-cache-dir:指定模型缓存目录的路径,允许将模型的权重文件存储在指定目录中。这在多次启动相同模型或在不同机器之间共享模型时很有帮助。

  9. --batch-size:设置推理的 batch size。较大的 batch size 可以更好地利用 GPU,但可能需要更多内存。

  10. --port:设置服务的端口号。默认端口通常为 5000,可以通过此参数更改。

  11. --log-level:设定日志的详细程度,如 DEBUGINFOWARNING 等,用于控制输出的日志信息量。

  12. --max-concurrent-requests:最大并发请求数。限制了同时接收的最大请求数,用于避免资源过载。

  13. --sharding:启用分片存储,将模型权重在多个 GPU 间分片存储。这在处理大模型或内存限制较严苛的情况下有效。

  14. --low-cpu-memory:是否开启低 CPU 内存模式。启用后将降低 CPU 内存使用,但可能会稍微增加推理延迟。

  15. --enable-mixed-precision:启用混合精度推理(Mixed Precision)。使用混合精度可以在不大幅影响精度的前提下,进一步减少内存占用和加快计算。

  16. --streaming:是否启用流式传输。开启流式传输可以更快地返回推理结果,有助于降低延迟。

  17. --max-batch-delay:设定最大的批处理延迟(单位为毫秒)。批处理延迟指的是在积累足够的请求数之前等待的时间,数值越小延迟越低,但批处理效率也会降低。

示例用法

启动 vllm server 时可以结合多个参数以获得最佳性能。例如:

CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 vllm serve "defog/sqlcoder-70b-alpha" \
  --tensor-parallel-size 8 \
  --pipeline-parallel-size 1 \
  --gpu-memory-utilization 0.9 \
  --cpu-offload-gb 0 \
  --max-model-len 8192 \
  --swap-space 8 \
  --fp16 \
  --batch-size 16 \
  --port 8080 \
  --log-level INFO \
  --enable-mixed-precision \
  --streaming

通过 vllm --help 命令可以查看所有可用的参数选项和默认值,以帮助进行详细配置。

### 使用 `vllm server` 启动服务或调用 DeepSeek R1 70B 模型 #### 启动服务的命令 要使用 `vllm server` 命令启动一个类似于 OpenAI API 的服务,可以按照以下方式操作。假设已经下载了 DeepSeek R1 70B 模型到本地目录 `/models/DeepSeek-R1-70B` 中: ```bash python -m vllm.entrypoints.openai.api_server \ --model /models/DeepSeek-R1-70B \ --served-model-name DeepSeekR1_70B \ --host 0.0.0.0 \ --port 8000 \ --dtype float16 \ --gpu-memory-utilization 0.7 ``` 这条命令会启动一个 HTTP 服务器,监听地址为 `0.0.0.0:8000`,并将模型命名为 `DeepSeekR1_70B` 提供给客户端访问[^1]。 #### 参数解释 - `--model`: 指定模型所在的路径或者 Hugging Face 上的模型名称。 - `--served-model-name`: 自定义提供给外部调用的服务端显示的名字。 - `--host`: 设定绑定 IP 地址,默认情况下设成 `0.0.0.0` 表示接受来自任何网络接口的连接请求。 - `--port`: 配置开放端口号用于接收外部通信。 - `--dtype`: 数据类型选项,推荐选用 `float16` 来减少显存占用同时维持较好的计算效率。 - `--gpu-memory-utilization`: 控制 GPU 显存利用率的比例,范围通常介于 0 到 1 之间。 对于更大规模的分布式部署场景下,还可以增加额外参数比如张量并行度(`--tensor-parallel-size`)等来进一步提升性能表现。例如下面的例子展示了如何利用两块 GPU 实现更高吞吐率的情况: ```bash vllm serve deepseek-ai/DeepSeek-R1-70B \ --tensor-parallel-size 2 \ --max-model-len 32768 \ --enforce-eager ``` 这里设置了张量并行大小为 2,意味着跨两个设备分配工作负载;同时也指定了最大输入长度限制为 32K tokens 并强制启用即时模式(Eager Mode)[^2]。 #### 下载与续传模型 如果尚未获取目标模型文件,则可通过如下指令完成下载过程。特别地,当遇到中断情况时可借助续传功能继续未完成的任务: ```bash modelscope download --local-dir /data/deepseek-ai/models/deepseek-70b \ --model deepseek-ai/DeepSeek-R1-Distill-Llama-70B \ --resume-download ``` 这一步骤确保即使中途出现问题也能顺利恢复至最终状态[^4]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MonkeyKing.sun

对你有帮助的话,可以打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值