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
📌 注意:以上参数值为推荐值,实际使用中需根据具体硬件、模型和负载进行调整。建议从默认参数开始,逐步优化。