多模态语言模型#

这些模型接受多模态输入(如图像和文本)并生成文本输出。它们通过多模态编码器增强了语言模型的能力。

启动命令示例#

python3 -m sglang.launch_server \
  --model-path meta-llama/Llama-3.2-11B-Vision-Instruct \  # example HF/local path
  --host 0.0.0.0 \
  --port 30000 \

有关如何发送多模态请求的信息,请参阅 OpenAI APIs 章节

支持的模型#

下表总结了支持的模型。

如果您不确定是否已实现特定的架构,可以通过 GitHub 进行搜索。例如,要搜索 Qwen2_5_VLForConditionalGeneration,请在

repo:sgl-project/sglang path:/^python\/sglang\/srt\/models\// Qwen2_5_VLForConditionalGeneration

GitHub 搜索栏中使用该表达式。

模型家族(变体)

HuggingFace 标识符示例

描述

注意事项

Qwen-VL

Qwen/Qwen3-VL-235B-A22B-Instruct

阿里巴巴 Qwen 的视觉语言扩展;例如,Qwen2.5-VL(7B 及更大变体)可以分析图像内容并进行对话。

DeepSeek-VL2

deepseek-ai/deepseek-vl2

DeepSeek 的视觉语言变体(带有专用图像处理器),能够对图像和文本输入进行高级多模态推理。

Janus-Pro (1B, 7B)

deepseek-ai/Janus-Pro-7B

DeepSeek 的开源多模态模型,具备图像理解和生成能力。Janus-Pro 采用解耦架构,拥有独立的视觉编码路径,从而提升了在这两项任务中的性能。

MiniCPM-V / MiniCPM-o

openbmb/MiniCPM-V-2_6

MiniCPM-V (2.6, ~8B) 支持图像输入,MiniCPM-o 增加了音频/视频支持;这些多模态大模型针对移动端/边缘设备的部署进行了优化。

Llama 3.2 Vision (11B)

meta-llama/Llama-3.2-11B-Vision-Instruct

Llama 3 (11B) 的视觉增强变体,接受图像输入以进行视觉问答和其他多模态任务。

LLaVA (v1.5 & v1.6)

例如 liuhaotian/llava-v1.5-13b

开源视觉对话模型,在 LLaMA/Vicuna(如 LLaMA2 13B)基础上添加了图像编码器,用于遵循多模态指令提示。

LLaVA-NeXT (8B, 72B)

lmms-lab/llava-next-72b

改进的 LLaVA 模型(包含 8B Llama3 版本和 72B 版本),在多模态基准测试上提供更强的视觉指令遵循能力和准确性。

LLaVA-OneVision

lmms-lab/llava-onevision-qwen2-7b-ov

增强的 LLaVA 变体,集成了 Qwen 作为骨干网络;通过兼容 OpenAI Vision API 的格式支持多图(甚至视频帧)输入。

Gemma 3 (多模态)

google/gemma-3-4b-it

Gemma 3 的较大模型(4B, 12B, 27B)可在总计 128K 令牌的上下文中,将图像(每张图像编码为 256 令牌)与文本一同接受。

Kimi-VL (A3B)

moonshotai/Kimi-VL-A3B-Instruct

Kimi-VL 是一款多模态模型,能够根据图像理解并生成文本。

Mistral-Small-3.1-24B

mistralai/Mistral-Small-3.1-24B-Instruct-2503

Mistral 3.1 是一款多模态模型,可以根据文本或图像输入生成文本。它还支持工具调用和结构化输出。

Phi-4-multimodal-instruct

microsoft/Phi-4-multimodal-instruct

Phi-4-multimodal-instruct 是 Phi-4-mini 模型的多模态变体,通过 LoRA 增强了多模态能力。它在 SGLang 中支持文本、视觉和音频模态。

MiMo-VL (7B)

XiaomiMiMo/MiMo-VL-7B-RL

小米开发的紧凑且强大的视觉语言模型,采用原生分辨率 ViT 编码器以捕捉精细视觉细节,使用 MLP 投影器进行跨模态对齐,并搭载针对复杂推理任务优化的 MiMo-7B 语言模型。

GLM-4.5V (106B) / GLM-4.1V(9B)

zai-org/GLM-4.5V

GLM-4.5V 与 GLM-4.1V-Thinking:通过可扩展强化学习实现通用的多模态推理。

使用 --chat-template glm-4v

DotsVLM (通用/OCR)

rednote-hilab/dots.vlm1.inst

小红书开发的视觉语言模型,基于 1.2B 视觉编码器和 DeepSeek V3 语言模型构建,采用从零训练的 NaViT 视觉编码器,支持动态分辨率,并通过结构化图像数据训练增强了 OCR 能力。

DotsVLM-OCR

rednote-hilab/dots.ocr

DotsVLM 的专用 OCR 变体,针对光学字符识别任务进行了优化,具备增强的文本提取和文档理解能力。

请勿使用 --trust-remote-code

NVILA (8B, 15B, Lite-2B, Lite-8B, Lite-15B)

Efficient-Large-Model/NVILA-8B

chatml

NVILA 探索了多模态设计的全栈效率,实现了更廉价的训练、更快的部署和更好的性能。

NVIDIA Nemotron Nano 2.0 VL

nvidia/NVIDIA-Nemotron-Nano-12B-v2-VL-BF16

NVIDIA Nemotron Nano v2 VL 支持多图推理和视频理解,以及强大的文档智能、视觉问答和摘要能力。它构建在 Nemotron Nano V2(一种混合 Mamba-Transformer 语言模型)之上,旨在长文档和视频场景中实现更高的推理吞吐量。

使用 --trust-remote-code。您可能需要调整 --max-mamba-cache-size [默认值为 512] 以适应显存限制。

JetVLM

JetVLM 是一个视觉语言模型,旨在处理高性能多模态理解和生成任务,基于 Jet-Nemotron 构建。

即将推出

视频输入支持#

SGLang 支持视觉语言模型 (VLM) 的视频输入,从而能够执行时间推理任务,如视频问答、字幕生成和整体场景理解。视频剪辑被解码、关键帧被采样,生成的张量与文本提示符一起批处理,从而使多模态推理能够整合视觉和语言上下文。

模型家族

示例标识符

视频说明

Qwen-VL (Qwen2-VL, Qwen2.5-VL, Qwen3-VL, Qwen3-Omni)

Qwen/Qwen3-VL-235B-A22B-Instruct

处理器收集 video_data,运行 Qwen 的帧采样器,并在推理前将生成的特征与文本令牌合并。

GLM-4v (4.5V, 4.1V, MOE)

zai-org/GLM-4.5V

视频剪辑使用 Decord 读取,转换为张量,并与元数据一起传递给模型以进行旋转位置处理。

NVILA (完整版 & 轻量版)

Efficient-Large-Model/NVILA-8B

当存在 video_data 时,运行时会为每个剪辑采样八帧,并将其附加到多模态请求中。

LLaVA 视频变体 (LLaVA-NeXT-Video, LLaVA-OneVision)

lmms-lab/LLaVA-NeXT-Video-7B

处理器将视频提示路由到启用了视频的 LlavaVid 架构,提供的示例展示了如何使用 sgl.video(...) 剪辑进行查询。

NVIDIA Nemotron Nano 2.0 VL

nvidia/NVIDIA-Nemotron-Nano-12B-v2-VL-BF16

对于视频,处理器配置为以 2 FPS 采样,最高 128 帧,符合模型训练标准。

JetVLM

当存在 video_data 时,运行时会为每个剪辑采样八帧,并将其附加到多模态请求中。

在构建提示时使用 sgl.video(path, num_frames) 从您的 SGLang 程序中附加视频剪辑。

发送视频剪辑的兼容 OpenAI 的请求示例

import requests

url = "https://:30000/v1/chat/completions"

data = {
    "model": "Qwen/Qwen3-VL-30B-A3B-Instruct",
    "messages": [
        {
            "role": "user",
            "content": [
                {"type": "text", "text": "What’s happening in this video?"},
                {
                    "type": "video_url",
                    "video_url": {
                        "url": "https://github.com/sgl-project/sgl-test-files/raw/refs/heads/main/videos/jobs_presenting_ipod.mp4"
                    },
                },
            ],
        }
    ],
    "max_tokens": 300,
}

response = requests.post(url, json=data)
print(response.text)

使用说明#

性能优化#

对于多模态模型,您可以使用 --keep-mm-feature-on-device 标志,以增加 GPU 显存使用为代价来优化延迟。

  • 默认行为:多模态特征张量在处理后移动到 CPU,以节省 GPU 显存。

  • 开启 --keep-mm-feature-on-device:特征张量保留在 GPU 上,减少了设备到主机的拷贝开销并改善了延迟,但会消耗更多 GPU 显存。

当您有充足的 GPU 显存并希望最大限度地降低多模态推理延迟时,请使用此标志。

多模态输入限制#

  • 使用 --mm-process-config '{"image":{"max_pixels":1048576},"video":{"fps":3,"max_pixels":602112,"max_frames":60}}':设置 image (图像)、video (视频) 和 audio (音频) 的输入限制。

这可以减少 GPU 显存使用,提高推理速度,并有助于避免 OOM(显存溢出),但可能会影响模型性能,因此请根据您的具体使用场景设置合适的值。目前,仅 qwen_vl 支持此配置。请参阅 qwen_vl 处理器 以了解各参数的含义。