强烈建议:在大模型开发中,要熟悉各种顶级的AI大模型的使用和微调。包括:gpt-4o gpt-o1-mini gpt-o3claude-3.5-sonnetclaude-3.7-sonnetgemini-1.5,  deepseek系列,  qwen系列。

1Deepseek-V3

2Qwen3

4月29日,发布了 Qwen3 系列模型。我们的旗舰模型**Qwen3-235B-A22B**在编码、数学、通用能力等基准测试中,与 DeepSeek-R1、o1、o3-mini、Grok-3 和 Gemini-2.5-Pro 等其他顶级模型相比,取得了极具竞争力的成绩。此外,小型 MoE 模型**Qwen3-30B-A3B 的**激活参数量是 QwQ-32B 的 10 倍,即使是像 Qwen3-4B 这样的微型模型,其性能也能与 Qwen2.5-72B-Instruct 相媲美。

开源的Qwen3-235B-A22B是一个大型模型,总参数量达 2350 亿,激活参数量达 220 亿;Qwen3-30B-A3B是一个较小的 MoE 模型,总参数量达 300 亿,激活参数量达 30 亿。此外,六个Dense模型也已开源,包括 Qwen3-32BQwen3-14BQwen3-8BQwen3-4B 、Qwen3-1.7B 和 Qwen3-0.6B ,它们均遵循 Apache 2.0 许可证。

Qwen3 的亮点包括:

  • 各种尺寸的密集和混合专家 (MoE) 模型 ,有 0.6B、1.7B、4B、8B、14B、32B 和 30B-A3B、235B-A22B 可供选择。
  • 思维模式(用于复杂的逻辑推理、数学和编码)和 非思维模式 (用于高效、通用的聊天)之间的无缝切换,确保在各种场景下实现最佳性能。
  • 推理能力大幅增强 ,在数学、代码生成、常识逻辑推理等方面超越了之前的QwQ(思维模式)和Qwen2.5指令模型(非思维模式)。
  • 卓越的人类偏好一致性 ,擅长创意写作、角色扮演、多轮对话和指令遵循,提供更自然、更具吸引力和身临其境的对话体验。
  • 精通Agent能力 ,能够以思考和非思考两种模式与外部工具精准集成,并增强了对 MCP 的支持,在基于Agent的复杂任务中取得开源模型的领先性能。
  • 支持 100 多种语言和方言,支持119 种语言和方言

3、私有化部署

显存计算器

  • 大模型显存需求分析工具 | LlamaFactory | LlamaFactory:

https://www.llamafactory.cn/tools/gpu-memory-estimation.html

一、下载模型

打开网站:https://www.modelscope.cn/organization/Qwen?tab=collection

Shell
from modelscope import snapshot_download

# model_dir = snapshot_download('ZhipuAI/glm-4-9b-chat', cache_dir='/root/autodl-tmp/models', revision='master')
# model_dir = snapshot_download('deepseek-ai/DeepSeek-R1-Distill-Qwen-7B', cache_dir='/root/autodl-tmp/models', revision='master')
# model_dir = snapshot_download('LLM-Research/Meta-Llama-3.1-8B-Instruct', cache_dir='/root/autodl-tmp/models', revision='master')
# model_dir = snapshot_download('Qwen/Qwen2.5-7B-Instruct', cache_dir='/root/autodl-tmp/models', revision='master')

#模型下载
# from modelscope import snapshot_download
# model_dir = snapshot_download('LLM-Research/Meta-Llama-3.1-8B-Instruct')

# model_dir = snapshot_download('Qwen/Qwen3-8B', cache_dir='/root/autodl-tmp/models', revision='master')

model_dir = snapshot_download('Qwen/Qwen2.5-Omni-3B', cache_dir='/root/autodl-tmp/models', revision='master')

二、通过vllm server命令部署

企业生产环境中,不要使用Ollama部署

以下是Ollama和vLLM在部署方面的对比表格:

对比维度

Ollama

vLLM

定位

轻量化本地部署工具,适合个人开发者和快速原型验证

高性能推理框架,面向企业级生产环境和高并发场景

部署复杂度

低,支持一键安装和运行(如 ollama run命令)

中高,需配置Python环境、API服务接口和分布式集群

硬件要求

支持CPU/GPU,最低配置为16GB内存(运行7B模型)

强制需要GPU(如NVIDIA Tesla系列),显存要求较高

并发能力

有限,适合单会话或少量并发

支持高并发,通过连续批处理(Continuous Batching)优化吞吐量1

资源占用

单机环境下资源占用低,启动快

资源占用高但利用率优,支持多机多卡扩展

延迟表现

实时交互场景延迟更低

通过批处理平衡延迟与吞吐,适合高吞吐场景

生态支持

丰富的预置模型(如Llama系列),支持跨平台(Windows/macOS/Linux)

聚焦推理优化,企业级功能丰富(如分布式推理、量化支持)

典型安装命令

curl -fsSL https://ollama.com/install.sh | sh(Linux)1

pip install vllm + 配置API服务

适用场景

快速原型验证、本地开发、教育演示、资源受限环境

企业级API服务、高并发聊天机器人、多GPU集群任务

模型格式支持

GGUF格式(适合量化与跨平台)

HuggingFace Transformers格式(.bin/.safetensors)

长上下文支持

默认4K-8K tokens

支持32K-128K tokens(依赖PagedAttention技术)

量化支持

自动支持Q4_0、Q5_K等量化格式

需外部工具(如bitsandbytes)实现量化

vllm的命令说明

首先需要安装: pip install vllm

OpenAI 兼容服务器 — vLLM 文档

usage: vllm serve [-h] [--host HOST] [--port PORT]

[--uvicorn-log-level {debug,info,warning,error,critical,trace}]

[--disable-uvicorn-access-log] [--allow-credentials]

[--allowed-origins ALLOWED_ORIGINS]

[--allowed-methods ALLOWED_METHODS]

[--allowed-headers ALLOWED_HEADERS] [--api-key API_KEY]

[--lora-modules LORA_MODULES [LORA_MODULES ...]]

[--prompt-adapters PROMPT_ADAPTERS [PROMPT_ADAPTERS ...]]

[--chat-template CHAT_TEMPLATE]

[--chat-template-content-format {auto,string,openai}]

[--response-role RESPONSE_ROLE] [--ssl-keyfile SSL_KEYFILE]

[--ssl-certfile SSL_CERTFILE] [--ssl-ca-certs SSL_CA_CERTS]

[--enable-ssl-refresh] [--ssl-cert-reqs SSL_CERT_REQS]

[--root-path ROOT_PATH] [--middleware MIDDLEWARE]

[--return-tokens-as-token-ids]

[--disable-frontend-multiprocessing]

[--enable-request-id-headers] [--enable-auto-tool-choice]

[--tool-call-parser {granite-20b-fc,granite,hermes,internlm,jamba,llama3_json,mistral,phi4_mini_json,pythonic} or name registered in --tool-parser-plugin]

[--tool-parser-plugin TOOL_PARSER_PLUGIN] [--model MODEL]

[--task {auto,generate,embedding,embed,classify,score,reward,transcription}]

[--tokenizer TOKENIZER] [--hf-config-path HF_CONFIG_PATH]

[--skip-tokenizer-init] [--revision REVISION]

[--code-revision CODE_REVISION]

[--tokenizer-revision TOKENIZER_REVISION]

[--tokenizer-mode {auto,slow,mistral,custom}]

[--trust-remote-code]

[--allowed-local-media-path ALLOWED_LOCAL_MEDIA_PATH]

[--download-dir DOWNLOAD_DIR]

[--load-format {auto,pt,safetensors,npcache,dummy,tensorizer,sharded_state,gguf,bitsandbytes,mistral,runai_streamer,fastsafetensors}]

[--config-format {auto,hf,mistral}]

[--dtype {auto,half,float16,bfloat16,float,float32}]

[--kv-cache-dtype {auto,fp8,fp8_e5m2,fp8_e4m3}]

[--max-model-len MAX_MODEL_LEN]

[--guided-decoding-backend GUIDED_DECODING_BACKEND]

[--logits-processor-pattern LOGITS_PROCESSOR_PATTERN]

[--model-impl {auto,vllm,transformers}]

[--distributed-executor-backend {ray,mp,uni,external_launcher}]

[--pipeline-parallel-size PIPELINE_PARALLEL_SIZE]

[--tensor-parallel-size TENSOR_PARALLEL_SIZE]

[--data-parallel-size DATA_PARALLEL_SIZE]

[--enable-expert-parallel]

[--max-parallel-loading-workers MAX_PARALLEL_LOADING_WORKERS]

[--ray-workers-use-nsight] [--block-size {8,16,32,64,128}]

[--enable-prefix-caching | --no-enable-prefix-caching]

[--prefix-caching-hash-algo {builtin,sha256}]

[--disable-sliding-window] [--use-v2-block-manager]

[--num-lookahead-slots NUM_LOOKAHEAD_SLOTS] [--seed SEED]

[--swap-space SWAP_SPACE] [--cpu-offload-gb CPU_OFFLOAD_GB]

[--gpu-memory-utilization GPU_MEMORY_UTILIZATION]

[--num-gpu-blocks-override NUM_GPU_BLOCKS_OVERRIDE]

[--max-num-batched-tokens MAX_NUM_BATCHED_TOKENS]

[--max-num-partial-prefills MAX_NUM_PARTIAL_PREFILLS]

[--max-long-partial-prefills MAX_LONG_PARTIAL_PREFILLS]

[--long-prefill-token-threshold LONG_PREFILL_TOKEN_THRESHOLD]

[--max-num-seqs MAX_NUM_SEQS] [--max-logprobs MAX_LOGPROBS]

[--disable-log-stats]

[--quantization {aqlm,awq,deepspeedfp,tpu_int8,fp8,ptpc_fp8,fbgemm_fp8,modelopt,nvfp4,marlin,gguf,gptq_marlin_24,gptq_marlin,awq_marlin,gptq,compressed-tensors,bitsandbytes,qqq,hqq,experts_int8,neuron_quant,ipex,quark,moe_wna16,torchao,None}]

[--rope-scaling ROPE_SCALING] [--rope-theta ROPE_THETA]

[--hf-token [HF_TOKEN]] [--hf-overrides HF_OVERRIDES]

[--enforce-eager]

[--max-seq-len-to-capture MAX_SEQ_LEN_TO_CAPTURE]

[--disable-custom-all-reduce]

[--tokenizer-pool-size TOKENIZER_POOL_SIZE]

[--tokenizer-pool-type TOKENIZER_POOL_TYPE]

[--tokenizer-pool-extra-config TOKENIZER_POOL_EXTRA_CONFIG]

[--limit-mm-per-prompt LIMIT_MM_PER_PROMPT]

[--mm-processor-kwargs MM_PROCESSOR_KWARGS]

[--disable-mm-preprocessor-cache] [--enable-lora]

[--enable-lora-bias] [--max-loras MAX_LORAS]

[--max-lora-rank MAX_LORA_RANK]

[--lora-extra-vocab-size LORA_EXTRA_VOCAB_SIZE]

[--lora-dtype {auto,float16,bfloat16}]

[--long-lora-scaling-factors LONG_LORA_SCALING_FACTORS]

[--max-cpu-loras MAX_CPU_LORAS] [--fully-sharded-loras]

[--enable-prompt-adapter]

[--max-prompt-adapters MAX_PROMPT_ADAPTERS]

[--max-prompt-adapter-token MAX_PROMPT_ADAPTER_TOKEN]

[--device {auto,cuda,neuron,cpu,tpu,xpu,hpu}]

[--num-scheduler-steps NUM_SCHEDULER_STEPS]

[--use-tqdm-on-load | --no-use-tqdm-on-load]

[--multi-step-stream-outputs [MULTI_STEP_STREAM_OUTPUTS]]

[--scheduler-delay-factor SCHEDULER_DELAY_FACTOR]

[--enable-chunked-prefill [ENABLE_CHUNKED_PREFILL]]

[--speculative-config SPECULATIVE_CONFIG]

[--model-loader-extra-config MODEL_LOADER_EXTRA_CONFIG]

[--ignore-patterns IGNORE_PATTERNS]

[--preemption-mode PREEMPTION_MODE]

[--served-model-name SERVED_MODEL_NAME [SERVED_MODEL_NAME ...]]

[--qlora-adapter-name-or-path QLORA_ADAPTER_NAME_OR_PATH]

[--show-hidden-metrics-for-version SHOW_HIDDEN_METRICS_FOR_VERSION]

[--otlp-traces-endpoint OTLP_TRACES_ENDPOINT]

[--collect-detailed-traces COLLECT_DETAILED_TRACES]

[--disable-async-output-proc]

[--scheduling-policy {fcfs,priority}]

[--scheduler-cls SCHEDULER_CLS]

[--override-neuron-config OVERRIDE_NEURON_CONFIG]

[--override-pooler-config OVERRIDE_POOLER_CONFIG]

[--compilation-config COMPILATION_CONFIG]

[--kv-transfer-config KV_TRANSFER_CONFIG]

[--worker-cls WORKER_CLS]

[--worker-extension-cls WORKER_EXTENSION_CLS]

[--generation-config GENERATION_CONFIG]

[--override-generation-config OVERRIDE_GENERATION_CONFIG]

[--enable-sleep-mode] [--calculate-kv-scales]

[--additional-config ADDITIONAL_CONFIG] [--enable-reasoning]

[--reasoning-parser {deepseek_r1,granite}]

[--disable-cascade-attn]

[--disable-chunked-mm-input [DISABLE_CHUNKED_MM_INPUT]]

[--disable-log-requests] [--max-log-len MAX_LOG_LEN]

[--disable-fastapi-docs] [--enable-prompt-tokens-details]

[--enable-server-load-tracking]

命名参数详解
  • --host主机名。
  • --port端口号。

默认值:8000

  • --uvicorn-log-level可能选项:debug, info, warning, error, critical, trace

uvicorn 的日志级别。

默认值:“info”

  • --disable-uvicorn-access-log禁用 uvicorn 访问日志。

默认值:False

  • --allow-credentials允许凭据。

默认值:False

  • --allowed-origins允许的来源。

默认值:[‘*’]

  • --allowed-methods允许的方法。

默认值:[‘*’]

  • --allowed-headers允许的标头。

默认值:[‘*’]

  • --api-key如果提供,服务器将要求在标头中提供此密钥。
  • --lora-modules:LoRA 模块配置,格式为 ‘name=path’ 或 JSON 格式。示例(旧格式):<span class="pre">'name=path'</span> 示例(新格式):<span class="pre">{"name":</span><span> </span><span class="pre">"name",</span><span> </span><span class="pre">"path":</span><span> </span><span class="pre">"lora_path",</span><span> </span><span class="pre">"base_model_name":</span><span> </span><span class="pre">"id"}</span>
  • --prompt-adapters提示适配器配置,格式为 name=path。可以指定多个适配器。
  • --chat-template指定模型的聊天模板文件路径或单行形式的模板。
  • --chat-template-content-format可能选项:auto, string, openai

在聊天模板中渲染消息内容的格式。

  • “string” 将内容渲染为字符串。示例:<span class="pre">"Hello</span><span> </span><span class="pre">World"</span>
  • “openai” 将内容渲染为字典列表,类似于 OpenAI 模式。示例:<span class="pre">[{"type":</span><span> </span><span class="pre">"text",</span><span> </span><span class="pre">"text":</span><span> </span><span class="pre">"Hello</span><span> </span><span class="pre">world!"}]</span>

默认值:“auto”

  • --response-role如果 <span class="pre">request.add_generation_prompt=true</span>,则返回的角色名称。

默认值:assistant

  • --ssl-keyfileSSL 密钥文件的文件路径。
  • --ssl-certfileSSL 证书文件的文件路径。
  • --ssl-ca-certsCA 证书文件。
  • --enable-ssl-refresh当 SSL 证书文件更改时刷新 SSL 上下文

默认值:False

  • --ssl-cert-reqs是否需要客户端证书(请参阅 stdlib ssl 模块)。

默认值:0

  • --root-path当应用程序位于基于路径的路由代理之后时,FastAPI root_path。
  • --middleware要应用于应用程序的其他 ASGI 中间件。我们接受多个 --middleware 参数。该值应为导入路径。如果提供了函数,vLLM 将使用 <span class="pre">@app.middleware('http')</span> 将其添加到服务器。如果提供了类,vLLM 将使用 <span class="pre">app.add_middleware()</span> 将其添加到服务器。

默认值:[]

  • --return-tokens-as-token-ids当指定 <span class="pre">--max-logprobs</span> 时,将单个 token 表示为 ‘token_id:{token_id}’ 形式的字符串,以便可以识别不可 JSON 编码的 token。

默认值:False

  • --disable-frontend-multiprocessing如果指定,将在与模型服务引擎相同的进程中运行 OpenAI 前端服务器。

默认值:False

  • --enable-request-id-headers如果指定,API 服务器将在响应中添加 X-Request-Id 标头。注意:在高 QPS 下,这会降低性能。

默认值:False

  • --enable-auto-tool-choice为支持的模型启用自动工具选择。使用 <span class="pre">--tool-call-parser</span> 指定要使用的解析器。

默认值:False

  • --tool-call-parser根据您使用的模型选择工具调用解析器。这用于将模型生成的工具调用解析为 OpenAI API 格式。<span class="pre">--enable-auto-tool-choice</span> 需要此参数。
  • --tool-parser-plugin指定工具解析器插件,用于将模型生成的工具解析为 OpenAI API 格式,在此插件中注册的名称可在 <span class="pre">--tool-call-parser</span> 中使用。

默认值:“”

  • --model 要使用的 huggingface 模型的名称或路径。

默认值:“facebook/opt-125m”

  • --task可能选项:auto, generate, embedding, embed, classify, score, reward, transcription

模型要执行的任务。即使同一个模型可以用于多个任务,每个 vLLM 实例也仅支持一个任务。当模型仅支持一个任务时,可以使用 <span class="pre">"auto"</span> 选择它;否则,您必须明确指定要使用的任务。

默认值:“auto”

  • --tokenizer要使用的 huggingface 分词器的名称或路径。如果未指定,将使用模型名称或路径。
  • --hf-config-path要使用的 huggingface 配置的名称或路径。如果未指定,将使用模型名称或路径。
  • --skip-tokenizer-init跳过分词器和反分词器的初始化。期望输入中提供有效的 prompt_token_ids,并且 prompt 为 None。生成的输出将包含 token ID。

默认值:False

  • --revision要使用的特定模型版本。它可以是分支名称、标签名称或提交 ID。如果未指定,将使用默认版本。
  • --code-revision用于 Hugging Face Hub 上模型代码的特定修订版本。它可以是分支名称、标签名称或提交 ID。如果未指定,将使用默认版本。
  • --tokenizer-revision要使用的 huggingface 分词器的修订版本。它可以是分支名称、标签名称或提交 ID。如果未指定,将使用默认版本。
  • --tokenizer-mode可能选项:auto, slow, mistral, custom

分词器模式。

  • “auto” 将在可用时使用快速分词器。
  • “slow” 将始终使用慢速分词器。
  • “mistral” 将始终使用 mistral_common 分词器。
  • “custom” 将使用 –tokenizer 选择预注册的分词器。

默认值:“auto”

  • --trust-remote-code信任来自 huggingface 的远程代码。

默认值:False

  • --allowed-local-media-path允许 API 请求从服务器文件系统指定的目录读取本地图像或视频。这是一个安全风险。仅应在受信任的环境中启用。
  • --download-dir下载和加载权重的目录。
  • --load-format可能选项:auto, pt, safetensors, npcache, dummy, tensorizer, sharded_state, gguf, bitsandbytes, mistral, runai_streamer, fastsafetensors

要加载的模型权重的格式。

  • “auto” 将尝试加载 safetensors 格式的权重,如果 safetensors 格式不可用,则回退到 pytorch bin 格式。
  • “pt” 将加载 pytorch bin 格式的权重。
  • “safetensors” 将加载 safetensors 格式的权重。
  • “npcache” 将加载 pytorch 格式的权重,并存储 numpy 缓存以加速加载。
  • “dummy” 将使用随机值初始化权重,主要用于性能分析。
  • “tensorizer” 将使用 CoreWeave 的 tensorizer 加载权重。有关更多信息,请参阅“示例”部分中的“张量化 vLLM 模型”脚本。
  • “runai_streamer” 将使用 Run:ai Model Streamer 加载 Safetensors 权重。
  • “bitsandbytes” 将使用 bitsandbytes 量化加载权重。
  • “sharded_state” 将从预分片检查点文件加载权重,支持高效加载张量并行模型
  • “gguf” 将从 GGUF 格式文件加载权重(详细信息请参阅 ggml-org/ggml)。
  • “mistral” 将从 Mistral 模型使用的合并 safetensors 文件加载权重。

默认值:“auto”

  • --config-format可能选项:auto, hf, mistral

要加载的模型配置的格式。

  • “auto” 将尝试加载 hf 格式的配置,如果不可用,则尝试加载 mistral 格式

默认值:“ConfigFormat.AUTO”

  • --dtype可能选项:auto, half, float16, bfloat16, float, float32

模型权重和激活的数据类型。

  • “auto” 将对 FP32 和 FP16 模型使用 FP16 精度,对 BF16 模型使用 BF16 精度。
  • “half” 表示 FP16。推荐用于 AWQ 量化。
  • “float16” 与 “half” 相同。
  • “bfloat16” 在精度和范围之间取得平衡。
  • “float” 是 FP32 精度的简写。
  • “float32” 表示 FP32 精度。

默认值:“auto”

  • --kv-cache-dtype可能选项:auto, fp8, fp8_e5m2, fp8_e4m3

kv 缓存存储的数据类型。如果为 “auto”,将使用模型数据类型。CUDA 11.8+ 支持 fp8 (=fp8_e4m3) 和 fp8_e5m2。ROCm (AMD GPU) 支持 fp8 (=fp8_e4m3)

默认值:“auto”

  • --max-model-len模型上下文长度。如果未指定,将自动从模型配置中派生。支持 k/m/g/K/M/G 人类可读格式。示例:- 1k → 1000 - 1K → 1024
  • --guided-decoding-backend默认情况下,哪个引擎将用于引导解码(JSON 模式/正则表达式等)。当前支持 mlc-ai/xgrammarguidance-ai/llguidance.Valid。有效的后端值包括 “xgrammar”、“guidance” 和 “auto”。使用 “auto” 时,我们将根据请求内容和后端库当前支持的内容做出有主见的决定,因此行为可能会在每个版本中更改。

默认值:“xgrammar”

  • --logits-processor-pattern可选的正则表达式模式,用于指定可以使用 logits_processors 额外完成参数传递的有效 logits 处理器限定名称。默认为 None,表示不允许任何处理器
  • --model-impl可能选项:auto, vllm, transformers

要使用的模型实现。

  • “auto” 将尝试使用 vLLM 实现(如果存在),如果 vLLM 实现不可用,则回退到 Transformers 实现。
  • “vllm” 将使用 vLLM 模型实现。
  • “transformers” 将使用 Transformers 模型实现。

默认值:“auto”

  • --distributed-executor-backend可能选项:ray, mp, uni, external_launcher

用于分布式模型工作程序的后端,可以是 “ray” 或 “mp”(多进程)。如果 pipeline_parallel_size 和 tensor_parallel_size 的乘积小于或等于可用 GPU 的数量,“mp” 将用于保持在单个主机上处理。否则,如果安装了 Ray,则默认为 “ray”,否则将失败。请注意,tpu 仅支持 Ray 进行分布式推理。

  • --pipeline-parallel-size, -pp流水线并行阶段数。

默认值:1

  • --tensor-parallel-size, -tp张量并行副本数。

默认值:1

  • --data-parallel-size, -dp数据并行副本数。MoE 层将根据 tensor-parallel-size 和 data-parallel-size 的乘积进行分片。

默认值:1

  • --enable-expert-parallel对 MoE 层使用专家并行而不是张量并行。

默认值:False

  • --max-parallel-loading-workers在多个批次中顺序加载模型,以避免在使用张量并行和大型模型时出现 RAM OOM。
  • --ray-workers-use-nsight如果指定,则使用 nsight 分析 Ray 工作程序。

默认值:False

  • --block-size可能选项:8, 16, 32, 64, 128

token 块大小,用于 token 的连续块。在 neuron 设备上将被忽略,并设置为 <span class="pre">--max-model-len</span>。在 CUDA 设备上,仅支持最大为 32 的块大小。在 HPU 设备上,块大小默认为 128。

  • --enable-prefix-caching, --no-enable-prefix-caching启用自动前缀缓存。使用 <span class="pre">--no-enable-prefix-caching</span> 显式禁用。
  • --prefix-caching-hash-algo可能选项:builtin, sha256

设置前缀缓存的哈希算法。选项包括 ‘builtin’(Python 的内置哈希)或 ‘sha256’(抗冲突但具有一定开销)。

默认值:“builtin”

  • --disable-sliding-window禁用滑动窗口,限制为滑动窗口大小。

默认值:False

  • --use-v2-block-manager[已弃用] 块管理器 v1 已被删除,SelfAttnBlockSpaceManager(即块管理器 v2)现在是默认设置。将此标志设置为 True 或 False 对 vLLM 行为没有影响。

默认值:True

  • --num-lookahead-slots推测解码所需的实验性调度配置。这将在未来被推测配置取代;它目前的存在是为了启用正确性测试。

默认值:0

  • --seed操作的随机种子。
  • --swap-space每个 GPU 的 CPU 交换空间大小 (GiB)。

默认值:4

  • --cpu-offload-gb每个 GPU 要卸载到 CPU 的空间,以 GiB 为单位。默认值为 0,表示不卸载。直观地看,此参数可以看作是增加 GPU 内存大小的虚拟方法。例如,如果您有一个 24 GB GPU 并将其设置为 10,则实际上可以将其视为 34 GB GPU。然后,您可以加载一个 13B 模型和 BF16 权重,这至少需要 26GB GPU 内存。请注意,这需要快速的 CPU-GPU 互连,因为模型的一部分在每次模型前向传递中都会从 CPU 内存动态加载到 GPU 内存。

默认值:0

  • --gpu-memory-utilization用于模型执行器的 GPU 内存的比例,范围为 0 到 1。例如,值为 0.5 表示 50% 的 GPU 内存利用率。如果未指定,将使用默认值 0.9。这是一个按实例限制,仅适用于当前的 vLLM 实例。如果您在同一 GPU 上运行另一个 vLLM 实例,则无关紧要。例如,如果您在同一 GPU 上运行两个 vLLM 实例,则可以将每个实例的 GPU 内存利用率设置为 0.5。

默认值:0.9

  • --num-gpu-blocks-override如果指定,则忽略 GPU 性能分析结果,并使用此 GPU 块数。用于测试抢占。
  • --max-num-batched-tokens每次迭代的最大批处理 token 数。
  • --max-num-partial-prefills对于分块预填充,最大并发部分预填充数。

默认值:1

  • --max-long-partial-prefills对于分块预填充,将并发预填充的最大提示数(提示长度超过 –long-prefill-token-threshold)。将此值设置得小于 –max-num-partial-prefills 将允许较短的提示在某些情况下跳过较长提示的队列,从而提高延迟。

默认值:1

  • --long-prefill-token-threshold对于分块预填充,如果提示长度超过此 token 数,则该请求被认为是长的。

默认值:0

  • --max-num-seqs每次迭代的最大序列数。
  • --max-logprobs要返回的最大对数概率数,logprobs 在 SamplingParams 中指定。

默认值:20

  • --disable-log-stats禁用日志统计信息。

默认值:False

  • --quantization, -q可选选项:aqlm, awq, deepspeedfp, tpu_int8, fp8, ptpc_fp8, fbgemm_fp8, modelopt, nvfp4, marlin, gguf, gptq_marlin_24, gptq_marlin, awq_marlin, gptq, compressed-tensors, bitsandbytes, qqq, hqq, experts_int8, neuron_quant, ipex, quark, moe_wna16, torchao, None

用于量化权重的技术。如果为 None,我们首先检查模型配置文件中的 quantization_config 属性。如果该属性也为 None,我们则假定模型权重未被量化,并使用 dtype 来确定权重的data type(数据类型)。

  • --rope-scalingRoPE scaling(RoPE 缩放)配置,JSON 格式。例如:<span class="pre">{"rope_type":"dynamic","factor":2.0}</span>
  • --rope-thetaRoPE theta。与 rope_scaling 配合使用。在某些情况下,更改 RoPE theta 可以提高缩放模型的性能。
  • --hf-token用作远程文件 HTTP bearer authorization(持有者授权)的token(令牌)。如果为 True,将使用运行 huggingface-cli login 时生成的token(存储在 ~/.huggingface 中)。
  • --hf-overridesHuggingFace 配置的额外参数。这应该是一个 JSON 字符串,将被解析为一个字典。
  • --enforce-eager始终使用 eager-mode(eager 模式) PyTorch。如果为 False,将结合使用 eager mode 和 CUDA graph(CUDA 图)以获得最大的性能和灵活性。

默认值:False

  • --max-seq-len-to-captureCUDA graphs(CUDA 图)覆盖的最大序列长度。当序列的上下文长度大于此值时,我们将回退到 eager mode(eager 模式)。此外,对于 encoder-decoder(编码器-解码器)模型,如果 encoder input(编码器输入)的序列长度大于此值,我们也将回退到 eager mode(eager 模式)。

默认值:8192

  • --disable-custom-all-reduce请参阅 ParallelConfig。

默认值:False

--tokenizer-pool-size用于异步 tokenization(分词)的 tokenizer pool(分词器池)的大小。如果为 0,将使用同步 tokenization(分词)。

默认值:0

--tokenizer-pool-type用于异步 tokenization(分词)的 tokenizer pool(分词器池)的类型。如果 tokenizer_pool_size 为 0,则忽略此项。

默认值:“ray”

--tokenizer-pool-extra-configtokenizer pool(分词器池)的额外配置。这应该是一个 JSON 字符串,将被解析为一个字典。如果 tokenizer_pool_size 为 0,则忽略此项。

--limit-mm-per-prompt对于每个 multimodal plugin(多模态插件),限制每个 prompt(提示)允许的输入实例数量。期望一个逗号分隔的项目列表,例如:image=16,video=2 允许每个 prompt(提示)最多 16 张图像和 2 个视频。默认为每种模态 1。

--mm-processor-kwargs多模态输入映射/处理的覆盖设置,例如,图像处理器。例如:<span class="pre">{"num_crops":</span><span> </span><span class="pre">4}</span>

--disable-mm-preprocessor-cache如果为 true,则禁用 multi-modal preprocessor/mapper(多模态预处理器/映射器)的缓存。(不推荐)

默认值:False

--enable-lora如果为 True,启用 LoRA adapters(LoRA 适配器)的处理。

默认值:False

--enable-lora-bias如果为 True,为 LoRA adapters(LoRA 适配器)启用 bias(偏置)。

默认值:False

--max-loras单个 batch(批次)中 LoRA 的最大数量。

默认值:1

--max-lora-rankLoRA rank(LoRA 秩)的最大值

默认值:16

--lora-extra-vocab-sizeLoRA adapter(LoRA 适配器)中可能存在的额外 vocabulary(词汇表)的最大大小(添加到基础模型 vocabulary(词汇表))。

默认值:256

--lora-dtype可选选项:auto, float16, bfloat16

LoRA 的data type(数据类型)。如果为 auto,将默认为基础模型 dtype。

默认值:“auto”

--long-lora-scaling-factors指定多个 scaling factors(缩放因子)(可以与基础模型 scaling factor 不同 - 请参阅例如 Long LoRA),以允许同时使用使用这些 scaling factors 训练的多个 LoRA adapters(LoRA 适配器)。如果未指定,则仅允许使用使用基础模型 scaling factor 训练的 adapters(适配器)。

--max-cpu-loras存储在 CPU 内存中的 LoRA 的最大数量。必须 >= max_loras。

--fully-sharded-loras默认情况下,只有一半的 LoRA 计算通过 tensor parallelism(张量并行)进行分片。启用此选项将使用 fully sharded layers(完全分片层)。在高序列长度、最大 rank(秩)或 tensor parallel size(张量并行大小)下,这可能更快。

默认值:False

--enable-prompt-adapter如果为 True,启用 PromptAdapters(Prompt 适配器)的处理。

默认值:False

--max-prompt-adapters一个 batch(批次)中 PromptAdapters(Prompt 适配器)的最大数量。

默认值:1

--max-prompt-adapter-tokenPromptAdapters tokens(Prompt 适配器令牌)的最大数量

默认值:0

--device可选选项:auto, cuda, neuron, cpu, tpu, xpu, hpu

vLLM 执行的 device type(设备类型)。

默认值:“auto”

--num-scheduler-steps每个 scheduler call(调度器调用)的最大 forward steps(前向步骤)数。

默认值:1

--use-tqdm-on-load, --no-use-tqdm-on-load加载模型权重时是否启用/禁用进度条。

默认值:True

--multi-step-stream-outputs如果为 False,则 multi-step(多步)将在所有步骤结束时 stream outputs(流式输出)

默认值:True

--scheduler-delay-factor在调度下一个 prompt(提示)之前,应用延迟(延迟因子乘以先前的 prompt latency(提示延迟))。

默认值:0.0

--enable-chunked-prefill如果设置,prefill requests(预填充请求)可以基于 max_num_batched_tokens 进行分块。

--speculative-configspeculative decoding(推测解码)的配置。应为 JSON 字符串。

--model-loader-extra-configmodel loader(模型加载器)的额外配置。这将传递给与所选 load_format(加载格式)对应的 model loader(模型加载器)。这应该是一个 JSON 字符串,将被解析为一个字典。

--ignore-patterns加载模型时要忽略的 pattern(模式)。默认值为 original/**/*,以避免重复加载 llama 的 checkpoints(检查点)。

默认值:[]

--preemption-mode如果为 ‘recompute’,引擎通过重新计算执行 preemption(抢占);如果为 ‘swap’,引擎通过 block swapping(块交换)执行 preemption(抢占)。

--served-model-nameAPI 中使用的 model name(s)(模型名称)。如果提供了多个名称,服务器将响应任何提供的名称。响应的 model 字段中的模型名称将是列表中的第一个名称。如果未指定,模型名称将与 <span class="pre">--model</span> 参数相同。请注意,如果提供多个名称,此名称也将用于 prometheus metrics(普罗米修斯指标)的 model_name tag content(标签内容)中,metrics tag(指标标签)将采用第一个名称。

--qlora-adapter-name-or-pathQLoRA adapter(QLoRA 适配器)的名称或路径。

--show-hidden-metrics-for-version启用自指定版本以来已隐藏的 deprecated(已弃用) Prometheus metrics(普罗米修斯指标)。例如,如果先前已弃用的 metric(指标)自 v0.7.0 版本以来已被隐藏,您可以使用 –show-hidden-metrics-for-version=0.7 作为临时应急方案,同时迁移到新 metrics(指标)。该 metric(指标)很可能在即将发布的版本中被完全删除。

--otlp-traces-endpointOpenTelemetry traces(OpenTelemetry 追踪)将被发送到的目标 URL。

--collect-detailed-traces有效选项为 model, worker, all。仅当设置了 <span class="pre">--otlp-traces-endpoint</span> 时,设置此项才有意义。如果设置,它将为指定的模块收集 detailed traces(详细追踪)。这涉及使用可能代价高昂和/或阻塞的操作,因此可能会对性能产生影响。

--disable-async-output-proc禁用 async output processing(异步输出处理)。这可能会导致性能降低。

默认值:False

--scheduling-policy可选选项:fcfs, priority

要使用的 scheduling policy(调度策略)。“fcfs”(先到先服务,即按照到达顺序处理请求;默认)或 “priority”(基于给定的 priority(优先级)处理请求(值越低表示越早处理),并以到达时间决定任何并列情况)。

默认值:“fcfs”

--scheduler-cls要使用的 scheduler class(调度器类)。“vllm.core.scheduler.Scheduler” 是默认的 scheduler(调度器)。可以是直接的类,也可以是 “mod.custom_class” 形式的类路径。

默认值:“vllm.core.scheduler.Scheduler”

--override-neuron-config覆盖或设置 neuron device configuration(neuron 设备配置)。例如:<span class="pre">{"cast_logits_dtype":</span><span> </span><span class="pre">"bloat16"}</span>

--override-pooler-config覆盖或设置 pooling models(池化模型)的 pooling method(池化方法)。例如:<span class="pre">{"pooling_type":</span><span> </span><span class="pre">"mean",</span><span> </span><span class="pre">"normalize":</span><span> </span><span class="pre">false}</span>

--compilation-config, -O模型的 torch.compile 配置。当它是一个数字(0, 1, 2, 3)时,它将被解释为 optimization level(优化级别)。注意:级别 0 是默认级别,没有任何优化。级别 1 和 2 仅用于内部测试。级别 3 是推荐用于生产的级别。要指定完整的 compilation config(编译配置),请使用 JSON 字符串。按照传统编译器的惯例,也支持不带空格地使用 -O。-O3 等同于 -O 3。

--kv-transfer-configdistributed KV cache transfer(分布式 KV 缓存传输)的配置。应为 JSON 字符串。

--worker-cls用于 distributed execution(分布式执行)的 worker class(工作进程类)。

默认值:“auto”

--worker-extension-clsworker cls(工作进程类)之上的 worker extension class(工作进程扩展类),如果您只想向 worker class(工作进程类)添加新功能而不更改现有功能,这将非常有用。

默认值:“”

--generation-configgeneration config(生成配置)的文件夹路径。默认为 ‘auto’,generation config(生成配置)将从模型路径加载。如果设置为 ‘vllm’,则不加载 generation config(生成配置),将使用 vLLM 默认值。如果设置为文件夹路径,generation config(生成配置)将从指定的文件夹路径加载。如果在 generation config(生成配置)中指定了 max_new_tokens,则它将为所有请求设置服务器范围内的输出 tokens(令牌)数量限制。

默认值:auto

--override-generation-config以 JSON 格式覆盖或设置 generation config(生成配置)。例如:<span class="pre">{"temperature":</span><span> </span><span class="pre">0.5}</span>。如果与 –generation-config=auto 一起使用,override parameters(覆盖参数)将与模型的默认配置合并。如果 generation-config 为 None,则仅使用 override parameters(覆盖参数)。

--enable-sleep-mode为引擎启用 sleep mode(睡眠模式)。(仅支持 cuda 平台)

默认值:False

--calculate-kv-scales当 kv-cache-dtype 为 fp8 时,启用 k_scale 和 v_scale 的动态计算。如果 calculate-kv-scales 为 false,则 scales(缩放)将从模型 checkpoint(检查点)加载(如果可用)。否则,scales(缩放)将默认为 1.0。

默认值:False

--additional-configJSON 格式的指定平台的 additional config(附加配置)。不同的平台可能支持不同的配置。确保配置对于您正在使用的平台有效。输入格式类似于 ‘{“config_key”:”config_value”}’

--enable-reasoning是否为模型启用 reasoning_content(推理内容)。如果启用,模型将能够生成 reasoning content(推理内容)。

默认值:False

--reasoning-parser可选选项:deepseek_r1, granite

根据您正在使用的模型选择 reasoning parser(推理解析器)。这用于将 reasoning content(推理内容)解析为 OpenAI API 格式。 <span class="pre">--enable-reasoning</span> 需要此项。

--disable-cascade-attn为 V1 禁用 cascade attention(级联注意力)。虽然 cascade attention(级联注意力)不会改变数学上的正确性,但禁用它可以用于防止潜在的数值问题。请注意,即使将其设置为 False,cascade attention(级联注意力)也仅在 heuristic(启发式)表明它有利时才使用。

默认值:False

--disable-chunked-mm-input为 V1 禁用 multimodal input chunking attention(多模态输入分块注意力)。如果设置为 true 并且启用了 chunked prefill(分块预填充),我们不希望部分调度 multimodal item(多模态项目)。这确保了如果一个请求具有混合 prompt(提示)(例如文本 tokens TTTT 后跟图像 tokens IIIIIIIIII),其中只能调度一些图像 tokens(例如 TTTTIIIII,留下 IIIII),它将分步调度为 TTTT 和 IIIIIIIIII。

默认值:False

--disable-log-requests禁用 logging requests(请求日志记录)。

默认值:False

--max-log-len日志中打印的最大 prompt characters(提示字符)或 prompt ID numbers(提示 ID 号)数量。默认值 None 表示无限制。

--disable-fastapi-docs禁用 FastAPI 的 OpenAPI schema(OpenAPI 模式)、Swagger UI 和 ReDoc endpoint(ReDoc 端点)。

默认值:False

--enable-prompt-tokens-details如果设置为 True,则在 usage(用量)中启用 prompt_tokens_details。

默认值:False

--enable-server-load-tracking如果设置为 True,则在 app state(应用状态)中启用 tracking server_load_metrics(跟踪服务器负载指标)。

默认值:False

Qwen3的部署命令和API调用
Plain Text
python -m vllm.entrypoints.openai.api_server \
  --model /root/autodl-tmp/models/Qwen/Qwen3-8B \
  --served-model-name qwen3-8b \
  --max-model-len 8k \
  --host 0.0.0.0 \
  --port 6006 \
  --dtype bfloat16 \
  --gpu-memory-utilization 0.8 \
  --enable-auto-tool-choice \
  --tool-call-parser hermes \
  

  --enable-reasoning \
  --reasoning-parser deepseek_r1 \
  
  
  python -m vllm.entrypoints.openai.api_server \
  --model /root/autodl-tmp/models/Qwen/Qwen2___5-Omni-3B \
  --served-model-name qwen-omni-3b \
  --max-model-len 16k \
  --host 0.0.0.0 \
  --port 6006 \
  --dtype float16 \
  --gpu-memory-utilization 0.8
  
  
  -- deepseek-r1-0528-qwen3-8B
  python -m vllm.entrypoints.openai.api_server \
  --model /root/autodl-tmp/models/deepseek-ai/DeepSeek-R1-0528-Qwen3-8B \
  --served-model-name ds-qwen3-8b \
  --max-model-len 8k \
  --host 0.0.0.0 \
  --port 6006 \
  --dtype bfloat16 \
  --gpu-memory-utilization 0.8 \
  --enable-auto-tool-choice \
  --tool-call-parser hermes

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐