SGLang 服务器启动参数完整总结
以下根据 SGLang 官方文档 整理的服务器启动参数完整列表,按功能分类,提供用途说明和推荐值。
📦 模型与 Tokenizer
| 参数 | 用途说明 | 推荐值/使用建议 |
|---|---|---|
--model-path / --model |
指定模型权重路径(本地目录或 Hugging Face repo ID) | meta-llama/Meta-Llama-3-8B-Instruct(必填) |
--tokenizer-path |
指定 tokenizer 路径(若与模型不同) | 默认同 --model-path |
--tokenizer-mode |
Tokenizer 模式:auto(默认,优先 fast tokenizer)、slow(总是用慢 tokenizer) |
auto |
--load-format |
模型权重加载格式:auto(默认,优先 safetensors)、safetensors、pt、gguf、bitsandbytes |
auto |
--trust-remote-code |
是否信任远程代码(用于自定义模型) | false(默认),非官方模型设为 true |
--context-length |
强制设置模型最大上下文长度 | 不建议设置,由模型 config 自动决定 |
--is-embedding |
是否将模型用作嵌入模型 | false(默认) |
--enable-multimodal |
启用多模态功能(需模型支持) | true(若模型为多模态) |
--limit-mm-data-per-request |
限制单个请求的多模态输入数量 | {"image": 1, "video": 1, "audio": 1}(示例) |
--model-impl |
模型实现方式:auto(默认,优先 SGLang 实现)、sglang、transformers |
auto |
--skip-tokenizer-init |
跳过 tokenizer 初始化(需在请求中提供 input_ids) |
false(默认),高性能场景可设为 true |
🌐 HTTP 服务
| 参数 | 用途说明 | 推荐值/使用建议 |
|---|---|---|
--host |
HTTP 服务监听地址 | 0.0.0.0(对外暴露)或 127.0.0.1(仅本地) |
--port |
HTTP 服务端口 | 30000(默认) |
--api-key |
设置 API 访问密钥(OpenAI 兼容) | 生产环境建议设置 |
--served-model-name |
自定义 /v1/models 返回的模型名 |
可用于隐藏真实模型名 |
--skip-server-warmup |
跳过服务器预热 | false(默认) |
--warmups |
自定义预热函数(逗号分隔) | warmup_name1,warmup_name2 |
--nccl-port |
NCCL 分布式环境端口 | 通常不设置,由系统自动分配 |
⚙️ 并行与分布式
| 参数 | 用途说明 | 推荐值/使用建议 |
|---|---|---|
--tensor-parallel-size / --tp-size |
张量并行 GPU 数量 | 1(默认),根据 GPU 数量设置(如 --tp 2) |
--pipeline-parallel-size / --pp-size |
流水线并行阶段数 | 1(默认),长上下文场景可设为 2-4 |
--data-parallel-size / --dp-size |
数据并行 GPU 数量 | 1(默认),内存充足时设为 2-4 |
--nnodes |
分布式节点数量 | 1(默认),多节点部署设为 2+ |
--node-rank |
节点排名 | 0(主节点),其他节点设为 1,2,... |
--dist-init-addr / --nccl-init-addr |
分布式初始化地址(如 192.168.0.2:25000) |
主节点 IP 和端口 |
--enable-p2p-check |
启用 GPU P2P 检查(解决多 GPU 问题) | false(默认),若报错 "peer access not supported" 设为 true |
💾 内存与调度
| 参数 | 用途说明 | 推荐值/使用建议 |
|---|---|---|
--mem-fraction-static |
静态内存(权重 + KV Cache)占比 | 0.9(默认),OOM 时降至 0.7 |
--max-running-requests |
最大并发请求数 | 自动计算,通常不设 |
--max-queued-requests |
最大排队请求数 | 自动计算,通常不设 |
--chunked-prefill-size |
分块预填充大小(防长 prompt OOM) | 4096(推荐),设为 -1 禁用 |
--max-prefill-tokens |
预填充最大 token 数 | 16384(默认) |
--schedule-policy |
请求调度策略:fcfs(默认)、lpm、random、dfs-weight、lof、priority |
fcfs(默认),高优先级用 priority |
--enable-priority-scheduling |
启用优先级调度 | false(默认),需配合 --schedule-policy priority |
--schedule-low-priority-values-first |
低优先级请求优先调度 | false(默认),默认高优先级先调度 |
--page-size |
KV 缓存页面大小 | 1(默认) |
🔢 量化与数据类型
| 参数 | 用途说明 | 推荐值/使用建议 |
|---|---|---|
--dtype |
模型计算精度:auto(默认,FP16/BF16)、half、float16、bfloat16、float、float32 |
auto(推荐) |
--quantization |
量化方法:awq、fp8、gptq、marlin、bitsandbytes、gguf |
fp8(显存节省,需 CUDA 11.8+) |
--kv-cache-dtype |
KV 缓存数据类型:auto、fp8_e5m2、fp8_e4m3 |
fp8_e5m2(推荐,节省显存) |
--enable-fp32-lm-head |
LM 头输出为 FP32(提升精度) | false(默认) |
--torchao-config |
torchao 量化配置:int4wo-128、int8wo、fp8wo |
int4wo-128(实验性,小模型有效) |
🚀 性能优化
| 参数 | 用途说明 | 推荐值/使用建议 |
|---|---|---|
--attention-backend |
注意力内核后端:triton、torch_native、flex_attention、flashinfer、fa3、fa4 |
flashinfer(高性能) |
--prefill-attention-backend |
预填充注意力后端 | 通常同 --attention-backend |
--decode-attention-backend |
解码注意力后端 | 通常同 --attention-backend |
--sampling-backend |
采样内核后端:flashinfer、pytorch、ascend |
flashinfer(推荐) |
--enable-torch-compile |
启用 torch.compile 加速 |
false(默认),小模型 + 小 batch 有效 |
--enable-deterministic-inference |
启用确定性推理(结果可复现) | false(默认),调试时启用 |
--disable-cuda-graph |
禁用 CUDA Graph(解决多节点死锁) | false(默认),多节点 TP 死锁时设为 true |
--num-continuous-decode-steps |
连续解码步骤数 | 1(默认),设为 2-4 提升吞吐 |
--enable-mixed-chunk |
启用混合分块(prefill + decode) | false(默认) |
📊 日志与监控
| 参数 | 用途说明 | 推荐值/使用建议 |
|---|---|---|
--log-level |
日志级别:debug、info、warning、error |
info(默认) |
--log-requests |
记录请求输入输出 | false(默认),调试时设为 true |
--log-requests-level |
请求日志详细级别:0(元数据)、1(采样参数)、2(部分输入/输出)、3(完整输入/输出) |
2(默认) |
--enable-metrics |
启用 Prometheus 指标 | false(默认),生产环境建议启用 |
--enable-metrics-for-all-schedulers |
为所有调度器启用指标 | false(默认),DP 注意力启用时设为 true |
--crash-dump-folder |
崩溃前 5 分钟请求 dump 目录 | 用于故障排查 |
--enable-trace |
启用 OpenTelemetry 跟踪 | false(默认) |
🧠 高级功能
| 参数 | 用途说明 | 推荐值/使用建议 |
|---|---|---|
--enable-lora |
启用 LoRA 支持 | false(默认),需配合 --lora-paths |
--lora-paths |
LoRA 适配器路径列表 | ["lora_path1", "lora_path2"] |
--enable-hierarchical-cache |
启用分层 KV 缓存(CPU-GPU) | false(默认),显存不足时启用 |
--hicache-ratio |
主机 KV 缓存内存池比例 | 2.0(默认) |
--speculative-algorithm |
推测解码算法:EAGLE、EAGLE3、NEXTN、STANDALONE、NGRAM |
EAGLE(推荐) |
--speculative-draft-model-path |
草稿模型路径 | meta-llama/Meta-Llama-3-8B(需搭配主模型) |
--enable-lmcache |
使用 LMCache 作为分层缓存 | false(默认) |
--enable-double-sparsity |
启用双稀疏注意力 | false(默认) |
--enable-pdmux |
启用 PD-Multiplexing | false(默认) |
📄 配置文件与部署
| 参数 | 用途说明 | 推荐值/使用建议 |
|---|---|---|
--config |
从 YAML 配置文件加载参数 | config.yaml(推荐生产环境使用) |
--enable-priority-scheduling |
启用优先级调度 | false(默认) |
--max-loras-per-batch |
单批最大 LoRA 数 | 8(默认) |
--max-loaded-loras |
最大加载的 LoRA 数 | >= --max-loras-per-batch |
⚠️ 重要提示
- OOM 问题 :若出现内存不足错误,优先尝试:
- 降低
--mem-fraction-static(如0.7) - 启用
--chunked-prefill-size 4096 - 减少
--max-running-requests
- 降低
- 多 GPU 部署 :
- 先用
--tp(张量并行),再考虑--dp(数据并行) - 多节点部署需配合
--nnodes、--node-rank和--dist-init-addr
- 先用
- 生产环境建议 :
- 启用
--enable-metrics - 设置
--api-key - 使用
--config配置文件管理参数 - 适当调整
--mem-fraction-static以平衡吞吐和内存
- 启用
- 性能优化 :
- 对于大模型,优先使用
--attention-backend flashinfer - 小模型 + 小 batch 可尝试
--enable-torch-compile - 长上下文场景考虑
--enable-hierarchical-cache
- 对于大模型,优先使用
📌 注意:以上参数值为推荐值,实际使用中需根据具体硬件、模型和负载进行调整。建议从默认参数开始,逐步优化。