> 技术文档 > 【运维】SGLang服务器参数配置详解_sglang server参数

【运维】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 模型权重路径,支持本地文件夹或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

多节点分布式

# 节点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

参数调优建议

内存优化

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