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 |