【运维】SGLang服务器参数配置详解_sglang server参数
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--tokenizer-path--tokenizer-mode--skip-tokenizer-init--load-format--trust-remote-code--context-length--is-embedding--enable-multimodal--revision--model-implHTTP服务器参数
--host--port--allow-credentials--allowed-origins--allowed-methods--allowed-headers--max-request-size--max-queue-size--max-batch-size--max-batch-delay--max-concurrent-requests量化和数据类型参数
--dtype--quantization--kv-cache-dtype--rope-scaling--max-model-len--block-size--swap-space--gpu-memory-utilization--max-paddings--disable-log-stats--disable-log-requests内存和调度参数
--max-num-batched-tokens--max-num-seqs--max-paddings--max-lora-rank--max-lora-max-rank--max-rolling-batch-size--max-rolling-batch-delay--max-rolling-batch-preempt--max-rolling-batch-attention--max-rolling-batch-cache--max-rolling-batch-cache-size运行时选项
--seed--max-model-len--block-size--swap-space--gpu-memory-utilization--max-paddings--disable-log-stats--disable-log-requests--max-lora-rank--max-lora-max-rank日志参数
--log-level--log-file--log-format--log-interval--log-requests--log-stats--log-timestampsAPI相关参数
--api-key--api-key-file--api-key-header--api-key-prefix--api-key-suffix--api-key-format--api-key-encoding--api-key-hash--api-key-salt--api-key-iterations数据并行参数
--dp--dp-backend--dp-address--dp-port--dp-world-size--dp-rank--dp-timeout--dp-retry--dp-verbose多节点分布式服务参数
--nnodes--node-rank--dist-init-addr--dist-init-port--dist-timeout--dist-backend--dist-world-size--dist-rank张量并行参数
--tp--tp-backend--tp-address--tp-port--tp-world-size--tp-rank--tp-timeout--tp-retry--tp-verbose流水线并行参数
--pp--pp-backend--pp-address--pp-port--pp-world-size--pp-rank--pp-timeout--pp-retry--pp-verbose专家并行参数
--ep--ep-backend--ep-address--ep-port--ep-world-size--ep-rank--ep-timeout--ep-retry--ep-verbose优化和调试选项
--disable-radix-cache--cuda-graph-max-bs--cuda-graph-bs--disable-cuda-graph--disable-cuda-graph-padding--enable-profile-cuda-graph--enable-nccl-nvls--enable-tokenizer-batch-encode--disable-outlines-disk-cache--disable-custom-all-reduce--enable-mscclpp--disable-overlap-schedule--enable-mixed-chunk--enable-dp-attention--enable-dp-lm-head--enable-two-batch-overlap--enable-torch-compile--torch-compile-max-bs--torchao-config--enable-nan-detection--enable-p2p-check--triton-attention-reduce-in-fp32--triton-attention-num-kv-splits--num-continuous-decode-steps--delete-ckpt-after-loading--enable-memory-saver--allow-auto-truncate--enable-custom-logit-processor--flashinfer-mla-disable-ragged--disable-shared-experts-fusion--disable-chunked-prefix-cache--disable-fast-image-processor--enable-return-hidden-states--enable-triton-kernel-moe实际配置示例
基础推理服务器
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
多节点分布式
# 节点0python -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# 节点1python -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
参数调优建议
内存优化
- GPU内存使用率: 根据GPU显存大小调整
gpu-memory-utilization - 模型长度: 根据实际需求设置
max-model-len - 批处理大小: 平衡
max-num-batched-tokens和max-num-seqs - 交换空间: 设置合适的
swap-space值 
性能优化
- 数据类型: 优先使用
bfloat16或float16 - 量化: 对于大模型考虑使用量化
 - 日志: 生产环境禁用不必要的日志
 - CUDA图: 启用CUDA图优化
 
并发优化
- 序列数: 根据GPU计算能力调整
max-num-seqs - 批处理: 合理设置
max-num-batched-tokens - 并行: 多GPU环境下使用张量并行
 - 数据并行: 使用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提供了丰富的参数配置选项,开发者可以根据实际需求进行精细调优。关键是要在性能、内存使用和并发能力之间找到平衡点。建议在生产环境中进行充分的压力测试,找到最适合的参数组合。通过合理配置这些参数,可以显著提升大语言模型的推理性能和资源利用率。


