一、目标:
我有一台机器,有八颗A100-40G可用
拟部署Qwen2.5-7B,
使用vllm部署怎么才能尽可能的发挥性能,并支持尽可能多的吞吐量。
二、vllm的一些参数的说明和比较
1)参数 --task auto 和 --task generate 会导致哪些差别
--task 有如下参数
auto :自动选择模型支持的任务类型。
generate :用于文本生成任务。
embedding 或 embed:将输入文本转换为嵌入向量。
classify:用于文本分类任务。
score:用于计算句子对的相似性分数
reward : 用于强化学习或奖励建模任务,例如评估生成文本的质量。
transcription :用于语音转录任务。
--task auto:在模型仅支持一个任务时,性能与显式指定任务类似。但如果模型支持多种任务,可能会因为自动选择任务而引入额外的判断开销。
--task generate:显式指定任务可以避免自动选择任务的开销,通常在生成任务场景下表现更优
综上
我们选用参数
--task generate
2)--tokenizer
的使用
Tokenizer 是自然语言处理(NLP)中用于将文本数据转换为模型可理解的输入格式的重要工具 。
它主要负责以下任务:
2.1) 分词(Tokenization):将输入文本拆分为一个个的 token(词元)。
2.2) 编码(Encoding):将分词后的 token 转换为模型能够理解的数字 ID 。
2.3) 解码(Decoding):将模型生成的数字 ID 转换回文本 。
为什么需要指定 Tokenizer? 不同的模型可能需要不同的 Tokenizer,因为它们的词汇表(Vocabulary)和分词规则可能不同 。通过指定 --tokenizer,可以确保使用与模型匹配的 Tokenizer,从而提高模型的性能和准确性
--tokenizer /path/to/token
3)
--trust-remote-code
信任来自 huggingface 的远程代码。
我们需要这个
故增加
--trust-remote-code
4)--load-format
可选值:auto, pt, safetensors, npcache, dummy, tensorizer, sharded_state, gguf, bitsandbytes, mistral, runai_streamer
让 vLLM 使用 GGUF 格式加载模型,需要显式指定 --load-format gguf 参数
我原来使用vllm启动gguf有的时候遇到报:找不到模型权重,后面可以加这个参数再试试。
5)--dtype
可选值:auto, half, float16, bfloat16, float, float32
模型权重和激活的数据类型。
“auto” 将为 FP32 和 FP16 模型使用 FP16 精度,为 BF16 模型使用 BF16 精度。
“half” 用于 FP16。推荐用于 AWQ 量化。
“float16” 与 “half” 相同。
“bfloat16” 用于在精度和范围之间取得平衡。
“float” 是 FP32 精度的简写。
“float32” 用于 FP32 精度。
拟用默认值 auto
6)
--max-model-len
模型上下文长度。如果未指定,将自动从模型配置中派生。
拟设置
--max-model-len 128000
这是 Qwen2.5-7B 模型支持的最大长度
7)--tensor-parallel-size
张量并行将模型的张量(如矩阵)分割成更小的块,分配到多个 GPU 上并行计算。
在单台机器上,一般建议有几个卡就设置这个数为几,故设置为8
--tensor-parallel-size 8
8) --pipeline-parallel-size
管道并行(通过 --pipeline-parallel-size 参数设置)是将模型的不同层分配到不同的 GPU 上进行计算
一般用于多组机器,分层计算。
9)--max-parallel-loading-workers
以多个批次顺序加载模型,以避免在使用张量并行和大型模型时出现 RAM OOM。
默认值:如果不指定该参数,vLLM 会使用默认值(通常是 1 或 2,具体取决于 vLLM 的版本)
这个参数表示一次最多加载几个张量。如果你的主机内存较大(如 64GB 或更高),可以设置为 4 或 8。
如果主机内存较小(如 32GB 或更低),建议设置为 2 或 4。
我们机器一般内存都比较大,这个参数拟设置为4.
--max-parallel-loading-workers 4
10)--block-size
可选值:8, 16, 32, 64, 128
不同的块大小会对显存占用、计算效率和通信开销产生影响。
参数的作用
张量分割:
在张量并行中,模型的权重和激活函数会被分割成多个块(block),然后分配到不同的 GPU 上。
--block-size 指定了每个块的大小,单位是元素数量(通常是 token 的数量)。
显存管理:
较小的块大小(如 8 或 16)可以减少单个 GPU 的显存占用,但可能会增加通信开销。
较大的块大小(如 64 或 128)可以减少通信开销,但可能会增加单个 GPU 的显存占用。
性能优化:
通过调整块大小,可以在显存占用和通信开销之间找到平衡,从而优化推理性能。
可选值
--block-size 的可选值通常为 2 的幂,常见的值包括:
8
16
32
64
128
不同块大小的影响
较小的块大小(如 8 或 16):
优点:
更低的显存占用,适合显存较小的 GPU。
更灵活的资源分配,适合动态调整 GPU 资源的场景。
缺点:
增加通信开销,因为需要在 GPU 之间频繁交换数据。
可能会降低计算效率,因为每个 GPU 上的计算负载较小。
较大的块大小(如 64 或 128):
优点:
减少通信开销,因为每个块包含更多的数据,减少了通信次数。
提高计算效率,因为每个 GPU 上的计算负载较大。
缺点:
显存占用较高,可能需要更多的 GPU 资源。
如果显存不足,可能会导致显存溢出(OOM)。
如何选择合适的块大小
选择合适的 --block-size 需要考虑以下因素:
显存容量:
如果你的 GPU 显存较大(如 A100-40G),可以选择较大的块大小(如 64 或 128)。
如果显存较小(如 16GB),建议选择较小的块大小(如 16 或 32)。
模型大小:
对于较大的模型(如 7B 或更大),较大的块大小可以减少通信开销。
对于较小的模型,较小的块大小可以更灵活地利用资源。
推理需求:
如果需要高吞吐量,较大的块大小可以提高计算效率。
如果需要低延迟,较小的块大小可以减少显存占用。
拟设置
--block-size 128
11)--swap-space
每个 GPU 的 CPU 交换空间大小 (GiB)。
默认值:4
交换空间可以避免显存溢出,但频繁使用交换空间可能会导致性能下降。
先用默认值
12)--cpu-offload-gb
要卸载到 CPU 的空间(GiB),每个 GPU。默认为 0,表示不卸载。直观地看,此参数可以被视为增加 GPU 内存大小的虚拟方式。例如,如果您有一个 24 GB 的 GPU 并将其设置为 10,实际上您可以将其视为 34 GB 的 GPU。
先用默认值
13)--gpu-memory-utilization
用于模型执行器的 GPU 内存 比率,范围可以从 0 到 1。例如,值为 0.6 意味着 60% 的 GPU 内存利用率。
剩下的GPU留给其他进程使用。
默认值:0.9
先用默认值
14)--max-num-batched-tokens
每次迭代的最大批处理令牌数。
较小的批处理大小可以减少单次推理的延迟,适合对实时性要求较高的场景
默认值:2048
拟设置为 2048*8
--max-num-batched-tokens 16384
15)--max-num-partial-prefills
对于分块预填充,并发部分预填充的最大数量。默认为 1
默认值为 1,表示每次只处理一个块。如果将该值设置得更高(例如 2 或 4),可以提高吞吐量,但可能会增加延迟,因为更多的块需要同时占用显存
默认值:1
该参数通常与 --max-long-partial-prefills 和 --long-prefill-token-threshold 配合使用。例如,--max-long-partial-prefills 用于控制长序列的并发预填充数量,而 --long-prefill-token-threshold 用于定义“长序列”的长度
先用默认值
14)--max-long-partial-prefills
对于分块预填充,将并发预填充的最大提示数(超过 –long-prefill-token-threshold)。将此值设置小于 –max-num-partial-prefills 将允许较短的提示在某些情况下跳过较长提示之前的队列 。默认为 1。
默认值:1
短的提示词优先。
15)--long-prefill-token-threshold
对于分块预填充,如果提示长度超过此令牌数,则请求被认为是长的。默认为模型上下文长度的 4%。
例如,如果模型的上下文长度为 2048 个令牌,则长序列的阈值为 82 个令牌(2048 × 4%)
你可以强制--long-prefill-token-threshold 100 则 长序列的阀值为 100个令牌
先用默认值
16)--max-num-seqs
每次迭代的最大序列数。
在推理过程中,vLLM 会将输入的文本分割成多个序列(sequence),每个序列对应一个推理请求。
--max-num-seqs 参数限制了每次迭代中可以同时处理的最大序列数。
增大 --max-num-seqs 的值可以提高系统的吞吐量,因为更多的序列可以并行处理。
例如,在多 GPU 环境下,适当增加该值可以更好地利用 GPU 资源。
影响延迟:
如果设置得过高,可能会导致显存占用增加,甚至出现显存不足(OOM)。
同时,过多的并发序列可能会增加平均延迟,因为每个序列的处理时间会变长。
默认值:
默认值为 256。但在某些场景下,根据模型大小和硬件配置,可能需要调整该值
拟设置为 512
--max-num-seqs 512
17)--max-logprobs
要返回的最大 log probs 数,logprobs 在 SamplingParams 中指定。
默认值:20
这些对数概率表示在给定上下文下,每个 token 出现的可能性,帮助用户评估模型的置信度
默认值为 20,表示每个 token 位置返回最多 20 个最可能的 token 及其对数概率
没看懂,拟用默认值
18)
--disable-log-stats
禁用日志统计信息。
拟用默认值
19)--quantization, -q
可选值:aqlm, awq, deepspeedfp, tpu_int8, fp8, ptpc_fp8, fbgemm_fp8, modelopt, marlin, gguf, gptq_marlin_24, gptq_marlin, awq_marlin, gptq, compressed-tensors, bitsandbytes, qqq, hqq, experts_int8, neuron_quant, ipex, quark, moe_wna16, None
默认值 None
19.1). aqlm
- Asymmetric Quantization for Language Models:一种非对称量化方法,适用于语言模型。
19.2). awq
- Adaptive Weight Quantization:自适应权重量化,动态调整量化参数以优化性能。
19.3). deepspeedfp
- DeepSpeed FP:使用 DeepSpeed 的量化方法,通常结合浮点计算优化推理。
19.4). tpu_int8
- TPU INT8:针对 Google TPU 的 INT8 量化,优化在 TPU 上的推理。
19.5). fp8
- FP8:使用 8 位浮点数进行量化,适用于某些硬件加速器。
19.6). ptpc_fp8
- PTPC FP8:特定于 PyTorch 的 FP8 量化方法。
19.7). fbgemm_fp8
- FBGEMM FP8:使用 Facebook 的 FBGEMM 库进行 FP8 量化。
19.8). modelopt
- Model Optimization:一种通用的模型优化方法,可能结合多种量化技术。
19.9). marlin
- Marlin:一种高效的量化方法,通常结合特定硬件优化。
19.10). gguf
- GGUF:一种高效的量化格式,支持多种量化类型,适用于通用硬件。
19.11). gptq_marlin_24
- GPTQ Marlin 24:结合 GPTQ(GPT Quantization)和 Marlin 的量化方法,优化 24 位精度。
19.12). gptq_marlin
- GPTQ Marlin:结合 GPTQ 和 Marlin 的量化方法。
19.13). awq_marlin
- AWQ Marlin:结合自适应权重量化和 Marlin 的量化方法。
19.14). gptq
- GPT Quantization:一种针对 GPT 模型的量化方法。
19.15). compressed-tensors
- Compressed Tensors:使用压缩技术减少张量大小。
19.16). bitsandbytes
- Bits and Bytes:一种低精度量化方法,通常结合 8 位或更低精度。
19.17). qqq
- QQQ:一种特定的量化方法,可能用于特定硬件优化。
19.18). hqq
- HQQ:另一种量化方法,可能用于特定硬件优化。
19.19). experts_int8
- Experts INT8:针对特定专家模型的 INT8 量化。
19.20). neuron_quant
- Neuron Quantization:针对特定硬件(如 AWS Neuron)的量化方法。
19.21). ipex
- Intel Optimization for PyTorch:使用 Intel 的优化技术进行量化。
19.22). quark
- Quark:一种特定的量化方法,可能用于特定硬件优化。
19.23). moe_wna16
- Mixture of Experts Weighted Normalized 16:结合混合专家模型的量化方法。
19.24). None
- 无量化:不进行量化,使用原始浮点精度。
拟用默认值。
20)--enforce-eager 参数用于控制是否始终使用 PyTorch 的 Eager 模式。Eager 模式是一种即时执行模式,其中操作会立即计算结果,而不是构建静态计算图。
Eager 模式:
在 Eager 模式下,PyTorch 会立即执行操作并返回结果。
这种模式的优点是调试方便,代码更直观,但可能会牺牲一些性能。
CUDA 图(CUDA Graph):
CUDA 图是一种优化技术,通过将多个操作打包成一个图来减少内核启动开销和同步时间。
使用 CUDA 图可以显著提高推理性能,但需要更复杂的设置和调试。
参数行为
--enforce-eager True:
始终使用 Eager 模式,不使用 CUDA 图。
适用于调试和开发阶段,因为 Eager 模式更直观,调试更方便。
性能可能不如混合模式(Eager + CUDA 图)。
--enforce-eager False(默认值):
混合使用 Eager 模式和 CUDA 图。
对于较短的序列,使用 CUDA 图以优化性能。
对于较长的序列,回退到 Eager 模式以避免 CUDA 图的限制。
拟用默认值
21)--max-seq-len-to-capture
CUDA 图覆盖的最大序列长度。当序列的上下文长度大于此值时,我们将回退到 eager 模式。此外,对于编码器-解码器模型,如果编码器输入的序列长度大于此值,我们将回退到 eager 模式。
默认值:8192
拟用默认值
21)下面多个是关于模型微调的,我不会,拟用默认值。
--enable-lora
如果为 True,则启用 LoRA 适配器的处理。
--enable-lora-bias
如果为 True,则为 LoRA 适配器启用偏置。
--max-loras
单个批次中 LoRA 的最大数量。
默认值:1
--max-lora-rank
最大 LoRA 秩。
默认值:16
--lora-extra-vocab-size
LoRA 适配器中可能存在的额外词汇的最大大小(添加到基本模型词汇表)。
默认值:256
--lora-dtype
可选值:auto, float16, bfloat16
LoRA 的数据类型。如果为 auto,将默认为基本模型 dtype。
默认值:“auto”
--long-lora-scaling-factors
指定多个缩放因子(可以与基本模型缩放因子不同 - 请参阅例如 Long LoRA),以允许多个使用这些缩放因子训练的 LoRA 适配器同时使用。如果未指定,则仅允许使用基本模型缩放因子训练的适配器。
--max-cpu-loras
要存储在 CPU 内存中的 LoRA 的最大数量。必须 >= max_loras。默认为 max_loras。
--fully-sharded-loras
默认情况下,只有一半的 LoRA 计算使用张量并行进行分片。启用此选项将使用完全分片层。在高序列长度、最大秩或张量并行大小下,这可能更快。
22)下面三个是关于预定义提示词的,咱们应该不用,拟用默认值
--enable-prompt-adapter
如果为 True,则启用 PromptAdapters 的处理。
--max-prompt-adapters
批次中 PromptAdapters 的最大数量。
默认值:1
--max-prompt-adapter-token
PromptAdapters 令牌的最大数量
默认值:0
23) --device 参数的可选值及其含义:
auto(默认值):
自动检测可用的硬件设备,并选择最适合的设备进行推理。
如果检测到 GPU,则使用 GPU(cuda);如果没有 GPU,则回退到 CPU。
cuda:
强制使用 NVIDIA GPU(通过 CUDA)进行推理。
适用于大多数深度学习任务,尤其是需要高性能计算的场景。
cpu:
强制使用 CPU 进行推理。
适用于没有 GPU 或其他加速硬件的环境,或者在 CPU 上进行推理的场景。
tpu:
强制使用 Google TPU 进行推理。
适用于 Google Cloud 或其他支持 TPU 的环境。
openvino:
强制使用 Intel OpenVINO 进行推理。
适用于 Intel 硬件平台,尤其是需要优化推理性能的场景。
neuron:
强制使用 AWS Inferentia(通过 Neuron SDK)进行推理。
适用于 AWS 云环境中的推理任务。
hpu:
强制使用 Habana Gaudi(通过 HPU)进行推理。
适用于 Habana Gaudi 硬件平台。
xpu:
强制使用 Intel XPU 进行推理。
适用于 Intel XPU 硬件平台
拟指定使用 GPU计算
--device cuda
24)
--num-scheduler-steps
每个调度器调用的最大前向步骤数。
默认值:1
控制前向步骤数量:
在推理过程中,模型会逐步生成输出。每个前向步骤通常对应于生成一个或多个输出令牌(token)。
--num-scheduler-steps 参数限制了每次调度器调用时允许执行的最大前向步骤数。
优化调度策略:
调度器负责管理模型的推理过程,包括何时生成新的输出、何时处理新的输入等。
通过限制每个调度器调用的前向步骤数,可以更好地控制推理过程的粒度,从而优化性能和资源利用。
灵活性和性能平衡:
较小的值(如 1)表示每次调度器调用只执行一个前向步骤,这可以提高调度的灵活性,但可能会增加调度开销。
较大的值(如 4 或 8)表示每次调度器调用可以执行多个前向步骤,这可以减少调度开销,但可能会降低调度的灵活性。
默认值:1
含义:每次调度器调用时,最多执行一个前向步骤。
优点:
提高调度的灵活性,适合动态调整推理过程。
适合需要频繁交互的场景,如实时对话系统。
缺点:
增加调度开销,可能会降低整体推理速度。
参数的影响
性能:
较大的值可以减少调度开销,从而提高推理速度。
较小的值可以提高调度的灵活性,但可能会增加调度开销。
资源利用:
较大的值可以更好地利用 GPU 资源,减少显存碎片化。
较小的值可以更灵活地处理动态输入,但可能会增加显存占用。
参数调整建议
吞吐量优先:
如果应用场景对吞吐量要求较高,可以尝试增加 --num-scheduler-steps 的值(如 4 或 8)
拟设置为4
--num-scheduler-steps 4
25)草稿模型推测解码,我不会,拟用默认值
推测解码是一种技术,通过使用一个轻量级的“草稿模型”来提前预测可能的输出,从而减少计算开销并提高推理速度
--speculative-model
要在推测解码中使用的草稿模型的名称。
--speculative-model-quantization
可选值:aqlm, awq, deepspeedfp, tpu_int8, fp8, ptpc_fp8, fbgemm_fp8, modelopt, marlin, gguf, gptq_marlin_24, gptq_marlin, awq_marlin, gptq, compressed-tensors, bitsandbytes, qqq, hqq, experts_int8, neuron_quant, ipex, quark, moe_wna16, None
--num-speculative-tokens
在推测解码中从草稿模型中采样的推测令牌数。
--speculative-disable-mqa-scorer
如果设置为 True,则 MQA scorer 将在推测中禁用,并回退到批次扩展
--speculative-draft-tensor-parallel-size, -spec-draft-tp
推测解码中草稿模型的张量并行副本数。
--speculative-max-model-len
草稿模型支持的最大序列长度。超过此长度的序列将跳过推测。
--speculative-disable-by-batch-size
如果入队请求数大于此值,则禁用新传入请求的推测解码。
--ngram-prompt-lookup-max
推测解码中 ngram 提示查找的最大窗口大小。
--ngram-prompt-lookup-min
推测解码中 ngram 提示查找的最小窗口大小。
--spec-decoding-acceptance-method
可选值:rejection_sampler, typical_acceptance_sampler
指定在推测解码中草稿令牌验证期间使用的接受方法。支持两种类型的接受例程:1) RejectionSampler,它不允许更改草稿令牌的接受率,2) TypicalAcceptanceSampler,它是可配置的,允许更高的接受率,但代价是质量较低,反之亦然。
默认值:“rejection_sampler”
--typical-acceptance-sampler-posterior-threshold
设置令牌被接受的后验概率的下限阈值。此阈值由 TypicalAcceptanceSampler 用于在推测解码期间做出采样决策。默认为 0.09
--typical-acceptance-sampler-posterior-alpha
TypicalAcceptanceSampler 中基于熵的令牌接受阈值的缩放因子。通常默认为 –typical-acceptance-sampler-posterior-threshold 的平方根,即 0.3
--disable-logprobs-during-spec-decoding
如果设置为 True,则在推测解码期间不返回令牌 log 概率。如果设置为 False,则根据 SamplingParams 中的设置返回 log 概率。如果未指定,则默认为 True。在推测解码期间禁用 log 概率会通过跳过提案采样、目标采样以及确定接受令牌后的 logprob 计算来减少延迟。
26)--model-loader-extra-config
模型加载器的额外配置。这将传递给与所选 load_format 对应的模型加载器。这应该是一个 JSON 字符串,将被解析为字典。
--model-loader-extra-config 参数在 vLLM 中用于为模型加载器提供额外的配置信息。这些配置信息将传递给与所选 load_format 对应的模型加载器。该参数的值应该是一个 JSON 字符串,它会被解析为字典 。
参数的作用
26.1) 提供额外的加载配置: ◦ 不同的模型加载器可能需要额外的配置参数来优化加载过程或适配特定的模型格式。 ◦ 通过 --model-loader-extra-config,用户可以为特定的加载器提供这些额外的配置信息。
26.2). 灵活性和扩展性: ◦ 该参数允许用户根据具体的模型加载需求进行定制化配置,增加了 vLLM 在处理不同模型时的灵活性和扩展性
不会,拟用默认值
27)--ignore-patterns
加载模型时要忽略的模式。默认为 original/**/*,以避免重复加载 llama 的检查点。
默认值:[]
拟用默认值
28)--preemption-mode
如果为 “recompute”,当高优先级任务插入时,推理引擎会通过重新计算当前任务的部分或全部内容来执行抢占。;
如果为 “swap”,则引擎通过块交换执行抢占。这意味着引擎会将当前任务的部分计算结果暂存到其他存储空间(如 CPU 内存或显存),然后切换到高优先级任务。
默认值 recompute
拟用默认值
29)
--served-model-name
API 中使用的模型名称。如果提供了多个名称,则服务器将响应任何提供的名称。响应的模型字段中的模型名称将是列表中的第一个名称。如果未指定,则模型名称将与 --model 参数相同。请注意,此名称也将用于 prometheus 指标的 model_name 标签内容中,如果提供了多个名称,则指标标签将采用第一个名称。
--served-model-name Qwen2.5-7B
30)下面这些应该和性能没关系,拟用默认值
--otlp-traces-endpoint
OpenTelemetry 跟踪将发送到的目标 URL。
--collect-detailed-traces
有效选项为 model,worker,all。仅当设置了 --otlp-traces-endpoint 时,设置此选项才有意义。如果设置,它将收集指定模块的详细跟踪。这涉及使用可能代价高昂和/或阻塞的操作,因此可能会对性能产生影响。
--disable-async-output-proc
禁用异步输出处理。这可能会导致性能降低。
--scheduling-policy
可选值:fcfs, priority
要使用的调度策略。“fcfs”(先到先服务,即请求按到达顺序处理;默认值)或 “priority”(请求根据给定的优先级(值越低表示越早处理)和到达时间来处理,以决定任何平局)。
默认值:“fcfs”
--scheduler-cls
要使用的调度器类。“vllm.core.scheduler.Scheduler” 是默认调度器。可以直接是类,也可以是 “mod.custom_class” 形式的类路径。
默认值:“vllm.core.scheduler.Scheduler”
--override-neuron-config
覆盖或设置 neuron 设备配置。例如 {"cast_logits_dtype": "bloat16"}。
--override-pooler-config
覆盖或设置池化模型的池化方法。例如 {"pooling_type": "mean", "normalize": false}。
--compilation-config, -O
模型的 torch.compile 配置。当它是一个数字(0, 1, 2, 3)时,它将被解释为优化级别。注意:级别 0 是没有任何优化的默认级别。级别 1 和 2 仅用于内部测试。级别 3 是推荐的生产级别。要指定完整的编译配置,请使用 JSON 字符串。按照传统编译器的约定,也支持使用 -O 而不带空格。 -O3 等同于 -O 3。
--kv-transfer-config
分布式 KV 缓存传输的配置。应为 JSON 字符串。
31)
--worker-cls
用于分布式执行的工作节点类。
默认值:“auto”
认情况下,vLLM 使用内置的工作节点类进行分布式执行。 ◦ 用户可以通过 --worker-cls 参数指定一个自定义的工作节点类,以实现更高效的分布式推理或适配特定的硬件环境
我不会,拟用默认值
32)--generation-config
生成配置的文件夹路径。默认为 None,不加载生成配置,将使用 vLLM 默认值。如果设置为 “auto”,则将从模型路径加载生成配置。如果设置为文件夹路径,则将从指定的文件夹路径加载生成配置。如果在生成配置中指定了 max_new_tokens,则它会为所有请求设置服务器范围的输出令牌数量限制。
拟用默认值
33)
--enable-sleep-mode
为引擎启用睡眠模式。(仅支持 cuda 平台)
参数用于启用 vLLM 引擎的睡眠模式,该模式仅支持 CUDA 平台。启用睡眠模式后,引擎可以在空闲时进入低功耗状态,从而节省资源
默认值:False,即睡眠模式默认是关闭的
我们暂不需要节约这个,拟用默认值
三、整体命令行拟使用为:
vllm serve Qwen/Qwen2.5-7B-Instruct --task generate --tokenizer /path/to/token --trust-remote-code --max-model-len 128000 --tensor-parallel-size 8 --max-parallel-loading-workers 4 --block-size 128 --max-num-batched-tokens 16384 --max-num-seqs 512 --device cuda --num-scheduler-steps 4 --served-model-name Qwen2.5-7B
四、其他
设置
CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7
五、实践结果
待续