SGLang 中的多模态编码器数据并行 (DP)#
典型的 VLM 架构包含两个主要组件:一个多模态编码器和一个文本解码器。
大多数 VLM 使用 Vision Transformer (ViT) 作为其多模态编码器,它负责处理视觉数据、提取特征(对象、颜色、纹理等),并将其转换为模型可以理解的格式。
文本解码器基于 LLM。它处理文本数据,并根据编码后的视觉特征生成输出。
然而,由于 ViT 的规模与语言解码器相比非常小,张量并行 (TP) 带来的收益相对较少。另一方面,由于每一层之后都要执行 all-reduce 操作,TP 会产生显著的通信开销。
将 ViT 置于数据并行 (DP) 模式,同时保持 LLM 处于张量并行 (TP) 模式,可以持续降低首字延迟 (TTFT) 并提高端到端吞吐量。在这种混合布局中,视觉前端变得并行且轻量化,而稀缺的互联带宽和集合通信操作则留给 LLM 使用。
数据并行在多个 GPU 组中复制整个模型,并并行处理不同的请求批次。
命令示例#
您可以通过设置 mm-enable-dp-encoder 来启用批处理级 DP,例如:
python3 -m sglang.launch_server \
--model-path Qwen/Qwen2.5-VL-7B-Instruct \
--tp 2 \
--mm-enable-dp-encoder
已知支持的模型#
Qwen2.5-VL (sgl-project/sglang#13126)
Qwen3-VL (sgl-project/sglang#13724)
InternVL (sgl-project/sglang#13925)
GLM-4.5V & GLM-4.6V (sgl-project/sglang#14097)