目 录CONTENT

文章目录

【LLM】SGLang服务器参数配置详解

EulerBlind
2025-07-22 / 0 评论 / 0 点赞 / 0 阅读 / 0 字

SGLang是一个高性能的大语言模型推理框架,提供了丰富的服务器参数配置选项。本文将基于官方文档详细介绍SGLang服务器的各种参数配置,帮助开发者更好地优化模型推理性能。

常用启动命令

多GPU张量并行

python -m sglang.launch_server --model-path meta-llama/Meta-Llama-3-8B-Instruct --tp 2

多GPU数据并行

python -m sglang_router.launch_server --model-path meta-llama/Meta-Llama-3-8B-Instruct --dp 2 --tp 2

内存优化

python -m sglang.launch_server --model-path meta-llama/Meta-Llama-3-8B-Instruct --mem-fraction-static 0.7

长提示词优化

python -m sglang.launch_server --model-path meta-llama/Meta-Llama-3-8B-Instruct --chunked-prefill-size 4096

模型和分词器参数

参数 描述 默认值
--model-path 模型权重路径,支持本地文件夹或Hugging Face仓库ID None
--tokenizer-path 分词器路径 None
--tokenizer-mode 分词器模式:'auto'使用快速分词器,'slow'使用慢速分词器 auto
--skip-tokenizer-init 跳过分词器初始化,在生成请求中传递input_ids False
--load-format 模型权重加载格式:'auto'、'pt'、'safetensors'、'npcache'、'dummy'、'gguf'、'bitsandbytes'、'layered' auto
--trust-remote-code 是否允许在Hub上使用自定义模型定义 False
--context-length 模型最大上下文长度,默认使用模型config.json中的值 None
--is-embedding 是否将CausalLM用作嵌入模型 False
--enable-multimodal 启用多模态功能 None
--revision 使用的特定模型版本 None
--model-impl 模型实现:'auto'、'sglang'、'transformers' auto

HTTP服务器参数

参数 描述 默认值
--host 服务器主机地址 0.0.0.0
--port 服务器端口 30000
--allow-credentials 允许跨域凭据 False
--allowed-origins 允许的跨域来源 *
--allowed-methods 允许的HTTP方法 GET, POST, OPTIONS
--allowed-headers 允许的HTTP头 *
--max-request-size 最大请求大小(字节) 1048576
--max-queue-size 最大队列大小 1000
--max-batch-size 最大批处理大小 1000
--max-batch-delay 最大批处理延迟(秒) 0.1
--max-concurrent-requests 最大并发请求数 1000

量化和数据类型参数

参数 描述 默认值
--dtype 模型数据类型:'auto'、'half'、'float16'、'bfloat16'、'float'、'float32' auto
--quantization 量化方法:'awq'、'gptq'、'squeezellm'、'marlin'、'aqlm'、'exl2'、'quip'、'eetq'、'fp8' None
--kv-cache-dtype KV缓存数据类型 auto
--rope-scaling RoPE缩放配置 None
--max-model-len 模型最大长度 None
--block-size 块大小 None
--swap-space 交换空间大小(GB) 4
--gpu-memory-utilization GPU内存使用率 0.9
--max-paddings 最大填充长度 8192
--disable-log-stats 禁用日志统计 False
--disable-log-requests 禁用请求日志 False

内存和调度参数

参数 描述 默认值
--max-num-batched-tokens 批处理的最大token数量 2048
--max-num-seqs 最大序列数 256
--max-paddings 最大填充长度 8192
--max-lora-rank 最大LoRA秩 None
--max-lora-max-rank 最大LoRA最大秩 None
--max-rolling-batch-size 最大滚动批处理大小 None
--max-rolling-batch-delay 最大滚动批处理延迟 None
--max-rolling-batch-preempt 最大滚动批处理抢占 None
--max-rolling-batch-attention 最大滚动批处理注意力 None
--max-rolling-batch-cache 最大滚动批处理缓存 None
--max-rolling-batch-cache-size 最大滚动批处理缓存大小 None

运行时选项

参数 描述 默认值
--seed 随机种子 0
--max-model-len 模型最大长度 None
--block-size 块大小 None
--swap-space 交换空间大小(GB) 4
--gpu-memory-utilization GPU内存使用率 0.9
--max-paddings 最大填充长度 8192
--disable-log-stats 禁用日志统计 False
--disable-log-requests 禁用请求日志 False
--max-lora-rank 最大LoRA秩 None
--max-lora-max-rank 最大LoRA最大秩 None

日志参数

参数 描述 默认值
--log-level 日志级别 INFO
--log-file 日志文件路径 None
--log-format 日志格式 None
--log-interval 日志间隔 10
--log-requests 记录请求日志 True
--log-stats 记录统计日志 True
--log-timestamps 记录时间戳 False

API相关参数

参数 描述 默认值
--api-key API密钥 None
--api-key-file API密钥文件路径 None
--api-key-header API密钥头名称 Authorization
--api-key-prefix API密钥前缀 Bearer
--api-key-suffix API密钥后缀 None
--api-key-format API密钥格式 None
--api-key-encoding API密钥编码 None
--api-key-hash API密钥哈希 None
--api-key-salt API密钥盐值 None
--api-key-iterations API密钥迭代次数 None

数据并行参数

参数 描述 默认值
--dp 数据并行大小 1
--dp-backend 数据并行后端 None
--dp-address 数据并行地址 None
--dp-port 数据并行端口 None
--dp-world-size 数据并行世界大小 None
--dp-rank 数据并行秩 None
--dp-timeout 数据并行超时 None
--dp-retry 数据并行重试 None
--dp-verbose 数据并行详细模式 False

多节点分布式服务参数

参数 描述 默认值
--nnodes 节点数量 1
--node-rank 节点秩 0
--dist-init-addr 分布式初始化地址 None
--dist-init-port 分布式初始化端口 None
--dist-timeout 分布式超时 None
--dist-backend 分布式后端 None
--dist-world-size 分布式世界大小 None
--dist-rank 分布式秩 None

张量并行参数

参数 描述 默认值
--tp 张量并行大小 1
--tp-backend 张量并行后端 None
--tp-address 张量并行地址 None
--tp-port 张量并行端口 None
--tp-world-size 张量并行世界大小 None
--tp-rank 张量并行秩 None
--tp-timeout 张量并行超时 None
--tp-retry 张量并行重试 None
--tp-verbose 张量并行详细模式 False

流水线并行参数

参数 描述 默认值
--pp 流水线并行大小 1
--pp-backend 流水线并行后端 None
--pp-address 流水线并行地址 None
--pp-port 流水线并行端口 None
--pp-world-size 流水线并行世界大小 None
--pp-rank 流水线并行秩 None
--pp-timeout 流水线并行超时 None
--pp-retry 流水线并行重试 None
--pp-verbose 流水线并行详细模式 False

专家并行参数

参数 描述 默认值
--ep 专家并行大小 1
--ep-backend 专家并行后端 None
--ep-address 专家并行地址 None
--ep-port 专家并行端口 None
--ep-world-size 专家并行世界大小 None
--ep-rank 专家并行秩 None
--ep-timeout 专家并行超时 None
--ep-retry 专家并行重试 None
--ep-verbose 专家并行详细模式 False

优化和调试选项

参数 描述 默认值
--disable-radix-cache 禁用RadixAttention前缀缓存 False
--cuda-graph-max-bs CUDA图最大批处理大小 None
--cuda-graph-bs CUDA图批处理大小列表 None
--disable-cuda-graph 禁用CUDA图 False
--disable-cuda-graph-padding 禁用CUDA图填充 False
--enable-profile-cuda-graph 启用CUDA图分析 False
--enable-nccl-nvls 启用NCCL NVLS False
--enable-tokenizer-batch-encode 启用分词器批处理编码 False
--disable-outlines-disk-cache 禁用outlines磁盘缓存 False
--disable-custom-all-reduce 禁用自定义all-reduce内核 False
--enable-mscclpp 启用mscclpp False
--disable-overlap-schedule 禁用重叠调度器 False
--enable-mixed-chunk 启用混合块 False
--enable-dp-attention 启用数据并行注意力 False
--enable-dp-lm-head 启用数据并行语言模型头 False
--enable-two-batch-overlap 启用双批处理重叠 False
--enable-torch-compile 启用torch.compile优化 False
--torch-compile-max-bs torch.compile最大批处理大小 32
--torchao-config torchao配置 None
--enable-nan-detection 启用NaN检测 False
--enable-p2p-check 启用P2P检查 False
--triton-attention-reduce-in-fp32 Triton注意力在fp32中归约 False
--triton-attention-num-kv-splits Triton注意力KV分割数 8
--num-continuous-decode-steps 连续解码步数 1
--delete-ckpt-after-loading 加载后删除检查点 False
--enable-memory-saver 启用内存节省器 False
--allow-auto-truncate 允许自动截断 False
--enable-custom-logit-processor 启用自定义logit处理器 False
--flashinfer-mla-disable-ragged 禁用Flashinfer MLA ragged处理 False
--disable-shared-experts-fusion 禁用共享专家融合 False
--disable-chunked-prefix-cache 禁用分块前缀缓存 False
--disable-fast-image-processor 禁用快速图像处理器 False
--enable-return-hidden-states 启用返回隐藏状态 False
--enable-triton-kernel-moe 启用Triton MoE内核 False

实际配置示例

基础推理服务器

python -m sglang.launch_server \
    --model-path meta-llama/Meta-Llama-3-8B-Instruct \
    --host 0.0.0.0 \
    --port 30000 \
    --max-num-batched-tokens 4096 \
    --max-num-seqs 256

高性能推理服务器

python -m sglang.launch_server \
    --model-path meta-llama/Meta-Llama-3-8B-Instruct \
    --dtype bfloat16 \
    --gpu-memory-utilization 0.9 \
    --max-model-len 8192 \
    --max-num-batched-tokens 8192 \
    --max-num-seqs 512 \
    --disable-log-stats

量化模型服务器

python -m sglang.launch_server \
    --model-path meta-llama/Meta-Llama-3-8B-Instruct \
    --quantization awq \
    --load-format awq \
    --gpu-memory-utilization 0.8 \
    --max-model-len 4096

多GPU张量并行

python -m sglang.launch_server \
    --model-path meta-llama/Meta-Llama-3-8B-Instruct \
    --tp 2 \
    --enable-p2p-check

多节点分布式

# 节点0
python -m sglang.launch_server \
    --model-path meta-llama/Meta-Llama-3-8B-Instruct \
    --tp 4 \
    --dist-init-addr sgl-dev-0:50000 \
    --nnodes 2 \
    --node-rank 0

# 节点1
python -m sglang.launch_server \
    --model-path meta-llama/Meta-Llama-3-8B-Instruct \
    --tp 4 \
    --dist-init-addr sgl-dev-0:50000 \
    --nnodes 2 \
    --node-rank 1

参数调优建议

内存优化

  1. GPU内存使用率: 根据GPU显存大小调整 gpu-memory-utilization
  2. 模型长度: 根据实际需求设置 max-model-len
  3. 批处理大小: 平衡 max-num-batched-tokensmax-num-seqs
  4. 交换空间: 设置合适的 swap-space

性能优化

  1. 数据类型: 优先使用 bfloat16float16
  2. 量化: 对于大模型考虑使用量化
  3. 日志: 生产环境禁用不必要的日志
  4. CUDA图: 启用CUDA图优化

并发优化

  1. 序列数: 根据GPU计算能力调整 max-num-seqs
  2. 批处理: 合理设置 max-num-batched-tokens
  3. 并行: 多GPU环境下使用张量并行
  4. 数据并行: 使用SGLang Router进行数据并行

常见问题解决

内存不足

  • 降低 gpu-memory-utilization
  • 减少 max-model-len
  • 使用量化模型
  • 增加 swap-space

性能瓶颈

  • 增加 max-num-batched-tokens
  • 调整 max-num-seqs
  • 使用更高效的数据类型
  • 启用CUDA图优化

并发限制

  • 增加 max-num-seqs
  • 优化批处理策略
  • 使用分布式推理
  • 调整服务器资源分配

GPU访问问题

  • 添加 --enable-p2p-check参数
  • 检查GPU驱动和CUDA版本
  • 验证GPU间连接

总结

SGLang提供了丰富的参数配置选项,开发者可以根据实际需求进行精细调优。关键是要在性能、内存使用和并发能力之间找到平衡点。建议在生产环境中进行充分的压力测试,找到最适合的参数组合。通过合理配置这些参数,可以显著提升大语言模型的推理性能和资源利用率。

0

评论区