云计算百科
云计算领域专业知识百科平台

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

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

参数调优建议

内存优化

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

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » 【运维】SGLang服务器参数配置详解
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!