当前位置: 首页 > news >正文

【运维】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仓库IDNone
--tokenizer-path分词器路径None
--tokenizer-mode分词器模式:'auto’使用快速分词器,'slow’使用慢速分词器auto
--skip-tokenizer-init跳过分词器初始化,在生成请求中传递input_idsFalse
--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-dtypeKV缓存数据类型auto
--rope-scalingRoPE缩放配置None
--max-model-len模型最大长度None
--block-size块大小None
--swap-space交换空间大小(GB)4
--gpu-memory-utilizationGPU内存使用率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-utilizationGPU内存使用率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-keyAPI密钥None
--api-key-fileAPI密钥文件路径None
--api-key-headerAPI密钥头名称Authorization
--api-key-prefixAPI密钥前缀Bearer
--api-key-suffixAPI密钥后缀None
--api-key-formatAPI密钥格式None
--api-key-encodingAPI密钥编码None
--api-key-hashAPI密钥哈希None
--api-key-saltAPI密钥盐值None
--api-key-iterationsAPI密钥迭代次数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-bsCUDA图最大批处理大小None
--cuda-graph-bsCUDA图批处理大小列表None
--disable-cuda-graph禁用CUDA图False
--disable-cuda-graph-padding禁用CUDA图填充False
--enable-profile-cuda-graph启用CUDA图分析False
--enable-nccl-nvls启用NCCL NVLSFalse
--enable-tokenizer-batch-encode启用分词器批处理编码False
--disable-outlines-disk-cache禁用outlines磁盘缓存False
--disable-custom-all-reduce禁用自定义all-reduce内核False
--enable-mscclpp启用mscclppFalse
--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-bstorch.compile最大批处理大小32
--torchao-configtorchao配置None
--enable-nan-detection启用NaN检测False
--enable-p2p-check启用P2P检查False
--triton-attention-reduce-in-fp32Triton注意力在fp32中归约False
--triton-attention-num-kv-splitsTriton注意力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提供了丰富的参数配置选项,开发者可以根据实际需求进行精细调优。关键是要在性能、内存使用和并发能力之间找到平衡点。建议在生产环境中进行充分的压力测试,找到最适合的参数组合。通过合理配置这些参数,可以显著提升大语言模型的推理性能和资源利用率。

http://www.lryc.cn/news/596146.html

相关文章:

  • Python趣味算法:折半查找(二分查找)算法终极指南——原理、实现与优化
  • SQL Server 查询优化
  • 电子电气架构 --- 从软件质量看组织转型路径
  • 【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts) 视频教程 - 访问鉴权功能实现
  • 5G 智慧矿山监控终端
  • UE5 UI 控件切换器
  • 记录解决问题--使用maven help插件一次性上传所有依赖到离线环境,spring-boot-starter-undertow离线环境缺少依赖
  • Jenkins 多架构并发构建实战
  • gitlab私服搭建
  • wed前端简单解析
  • k8s:离线部署tomcatV11.0.9,报Cannot find /opt/bitnami/tomcat/bin/setclasspath.sh
  • 中国在远程医疗智能化方面有哪些特色发展模式?
  • 公交车客流人数统计管理解决方案:智能化技术与高效运营实践
  • DAY20 奇异值SVD分解
  • 【bug】Yolo11在使用tensorrt推理numpy报错
  • 【数据可视化-70】奶茶店销量数据可视化:打造炫酷黑金风格的可视化大屏
  • 使用qt编写上位机程序,出现串口死掉无法接受数据的bug
  • vue2 webpack 部署二级目录、根目录nginx配置及打包配置调整
  • 【深度解析】从AWS re_Invent 2025看云原生技术发展趋势
  • kafka主题管理详解 - kafka-topics.sh
  • C++ 结构体(struct)与联合体(union)
  • 逻辑回归全景解析:从数学本质到工业级优化
  • AWS PrivateLink方式访问Redis
  • NIO技术原理以及应用(AI)
  • AWS RDS 排查性能问题
  • 图像基础:从像素到 OpenCV 的入门指南
  • 基于python django深度学习的中文文本检测+识别,可以前端上传图片和后台管理图片
  • 【学习路线】Python全栈开发攻略:从编程入门到AI应用实战
  • Spring 核心知识点梳理 1
  • 2.9学习DOM和BOM (主要是获取元素的操作)