Sglang部署大模型常用参数详解
常用启动命令
要启用多GPU张量并行性,请添加 --tp 2。如果报告错误“这些设备之间不支持对等访问”,请在服务器启动命令中添加 --enable-p2p-check。
python -m sglang.launch_server --model-path meta-llama/Meta-Llama-3-8B-Instruct --tp 2
要启用多 GPU 数据并行,请添加–dp 2。如果内存足够,数据并行对吞吐量更有利。它也可以与张量并行一起使用。以下命令总共使用 4 个 GPU。我们建议使用SGLang Router进行数据并行。
python -m sglang_router.launch_server --model-path meta-llama/Meta-Llama-3-8B-Instruct --dp 2 --tp 2
如果在服务过程中出现内存不足错误,请尝试通过设置较小的值来减少 KV 缓存池的内存使用量–mem-fraction-static。默认值为0.9。
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
- 要启用torch.compile加速,请添加 --enable-torch-compile。它可以在小批量大小上加速小型模型。但目前这不适用于FP8。你可以参考“为torch.compile启用缓存”以获取更多详情。
- 要启用torchao量化,请添加 --torchao-config int4wo-128。它也支持其他的量化策略(INT8/FP8)。
- 要启用fp8权重量化,在fp16检查点上添加 --quantization fp8 或直接加载一个fp8检查点,无需指定任何参数。
- 要启用fp8 kv缓存量化,请添加 --kv-cache-dtype fp8_e5m2。
- 如果模型在Hugging Face的tokenizer中没有聊天模板,可以指定一个自定义聊天模板。
- 要在多个节点上运行张量并行,请添加 --nnodes 2。如果你有两个节点,每个节点上有两个GPU,并希望运行TP=4,假设sgl-dev-0是第一个节点的主机名且50000是一个可用端口,你可以使用以下命令。如果遇到死锁,请尝试添加 --disable-cuda-graph。
# Node 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
# Node 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
模型和分词器参数说明:
-
model_path
: 模型存放的路径,该模型将会被加载用于服务。 -
tokenizer_path
: 默认与model_path
相同。这是分词器文件所在的路径。 -
tokenizer_mode
: 默认为auto模式,具体不同模式可以参考相关文档。 -
load_format
: 权重文件的格式,默认是*.safetensors/*.bin。 -
trust_remote_code
: 如果设置为True,则使用本地缓存的配置文件;否则使用HuggingFace中的远程配置。 -
dtype
: 用于模型的数据类型,默认是bfloat16。 -
kv_cache_dtype