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