支持的模型#

vLLM 支持跨各种任务的生成模型池化模型。 如果一个模型支持多个任务,您可以通过 --task 参数设置任务。

对于每个任务,我们列出了 vLLM 中已实现的模型架构。 在每个架构旁边,我们列出了一些使用它的流行模型。

模型实现#

vLLM#

如果 vLLM 本地支持某个模型,则可以在 vllm/model_executor/models 中找到其实现。

这些模型是我们在 文本语言模型列表多模态语言模型列表 中列出的模型。

Transformers#

vLLM 也支持 Transformers 中可用的模型实现。 这目前并非适用于所有模型,但大多数解码器语言模型都受到支持,并且正在计划视觉语言模型支持!

要检查建模后端是否为 Transformers,您可以简单地执行以下操作

from vllm import LLM
llm = LLM(model=..., task="generate")  # Name or path of your model
llm.apply_model(lambda model: print(type(model)))

如果它是 TransformersForCausalLM,则表示它基于 Transformers!

提示

您可以通过为 离线推理 设置 model_impl="transformers" 或为 OpenAI 兼容服务器 设置 --model-impl transformers 来强制使用 TransformersForCausalLM

注意

vLLM 可能没有完全优化 Transformers 实现,因此如果将 vLLM 中的原生模型与 Transformers 模型进行比较,您可能会看到性能下降。

支持的特性#

Transformers 建模后端显式支持以下特性

远程代码#

如果您的模型既不受 vLLM 本地支持也不受 Transformers 支持,您仍然可以在 vLLM 中运行它!

只需设置 trust_remote_code=True,vLLM 即可在 Model Hub 上运行任何与 Transformers 兼容的模型。 如果模型编写者以兼容的方式实现了他们的模型,这意味着您可以在新模型在 Transformers 或 vLLM 中获得官方支持之前运行它们!

from vllm import LLM
llm = LLM(model=..., task="generate", trust_remote_code=True)  # Name or path of your model
llm.apply_model(lambda model: print(model.__class__))

为了使您的模型与 Transformers 后端兼容,它需要

modeling_my_model.py#
from transformers import PreTrainedModel
from torch import nn

class MyAttention(nn.Module):

  def forward(self, hidden_states, **kwargs): # <- kwargs are required
    ...
    attention_interface = ALL_ATTENTION_FUNCTIONS[self.config._attn_implementation]
    attn_output, attn_weights = attention_interface(
      self,
      query_states,
      key_states,
      value_states,
      **kwargs,
    )
    ...

class MyModel(PreTrainedModel):
  _supports_attention_backend = True

以下是后台发生的事情

  1. 配置已加载

  2. MyModel Python 类从 auto_map 加载,并且我们检查模型 _supports_attention_backend

  3. 使用 TransformersForCausalLM 后端。 请参阅 vllm/model_executor/models/transformers.py,它利用 self.config._attn_implementation = "vllm",因此需要使用 ALL_ATTENTION_FUNCTION

就是这样!

为了使您的模型与 vLLM 的张量并行和/或流水线并行特性兼容,您必须将 base_model_tp_plan 和/或 base_model_pp_plan 添加到模型的配置类中

configuration_my_model.py#
from transformers import PretrainedConfig

class MyConfig(PretrainedConfig):
  base_model_tp_plan = {
    "layers.*.self_attn.k_proj": "colwise",
    "layers.*.self_attn.v_proj": "colwise",
    "layers.*.self_attn.o_proj": "rowwise",
    "layers.*.mlp.gate_proj": "colwise",
    "layers.*.mlp.up_proj": "colwise",
    "layers.*.mlp.down_proj": "rowwise",
  }
  base_model_pp_plan = {
    "embed_tokens": (["input_ids"], ["inputs_embeds"]),
    "layers": (["hidden_states", "attention_mask"], ["hidden_states"]),
    "norm": (["hidden_states"], ["hidden_states"]),
  }
  • base_model_tp_plan 是一个 dict,它将完全限定的层名称模式映射到张量并行样式(目前仅支持 "colwise""rowwise")。

  • base_model_pp_plan 是一个 dict,它将直接子层名称映射到 tuple 类型的 list 类型的 str 类型的列表

    • 您只需要对并非存在于所有流水线阶段的层执行此操作

    • vLLM 假设只有一个 nn.ModuleList,它分布在各个流水线阶段

    • tuple 的第一个元素中的 list 包含输入参数的名称

    • tuple 的最后一个元素中的 list 包含层在您的建模代码中输出到的变量的名称

加载模型#

Hugging Face Hub#

默认情况下,vLLM 从 Hugging Face (HF) Hub 加载模型。

要确定给定的模型是否受到本地支持,您可以检查 HF 仓库内的 config.json 文件。 如果 "architectures" 字段包含下面列出的模型架构,则应受到本地支持。

模型 *不一定需要* 受到本地支持才能在 vLLM 中使用。 Transformers 后端使您能够直接使用其 Transformers 实现(甚至 Hugging Face Model Hub 上的远程代码!)来运行模型。

提示

检查您的模型在运行时是否真的受到支持的最简单方法是运行以下程序

from vllm import LLM

# For generative models (task=generate) only
llm = LLM(model=..., task="generate")  # Name or path of your model
output = llm.generate("Hello, my name is")
print(output)

# For pooling models (task={embed,classify,reward,score}) only
llm = LLM(model=..., task="embed")  # Name or path of your model
output = llm.encode("Hello, my name is")
print(output)

如果 vLLM 成功返回文本(对于生成模型)或隐藏状态(对于池化模型),则表明您的模型受到支持。

否则,请参阅 添加新模型 以获取有关如何在 vLLM 中实现模型的说明。 或者,您可以 在 GitHub 上打开一个 issue 以请求 vLLM 支持。

使用代理#

以下是使用代理从 Hugging Face 加载/下载模型的一些技巧

  • 为您的会话全局设置代理(或在配置文件中设置)

export http_proxy=http://your.proxy.server:port
export https_proxy=http://your.proxy.server:port
  • 仅为当前命令设置代理

https_proxy=http://your.proxy.server:port huggingface-cli download <model_name>

# or use vllm cmd directly
https_proxy=http://your.proxy.server:port  vllm serve <model_name> --disable-log-requests
  • 在 Python 解释器中设置代理

import os

os.environ['http_proxy'] = 'http://your.proxy.server:port'
os.environ['https_proxy'] = 'http://your.proxy.server:port'

ModelScope#

要使用来自 ModelScope 而不是 Hugging Face Hub 的模型,请设置一个环境变量

export VLLM_USE_MODELSCOPE=True

并与 trust_remote_code=True 一起使用。

from vllm import LLM

llm = LLM(model=..., revision=..., task=..., trust_remote_code=True)

# For generative models (task=generate) only
output = llm.generate("Hello, my name is")
print(output)

# For pooling models (task={embed,classify,reward,score}) only
output = llm.encode("Hello, my name is")
print(output)

文本语言模型列表#

生成模型#

有关如何使用生成模型的更多信息,请参阅 此页面

文本生成 (--task generate)#

架构

模型

示例 HF 模型

LoRA

PP

AquilaForCausalLM

Aquila, Aquila2

BAAI/Aquila-7B, BAAI/AquilaChat-7B, etc.

✅︎

✅︎

ArcticForCausalLM

Arctic

Snowflake/snowflake-arctic-base, Snowflake/snowflake-arctic-instruct, etc.

✅︎

BaiChuanForCausalLM

Baichuan2, Baichuan

baichuan-inc/Baichuan2-13B-Chat, baichuan-inc/Baichuan-7B, etc.

✅︎

✅︎

BambaForCausalLM

Bamba

ibm-ai-platform/Bamba-9B-fp8, ibm-ai-platform/Bamba-9B

BloomForCausalLM

BLOOM, BLOOMZ, BLOOMChat

bigscience/bloom, bigscience/bloomz, etc.

✅︎

BartForConditionalGeneration

BART

facebook/bart-base, facebook/bart-large-cnn, etc.

ChatGLMModel, ChatGLMForConditionalGeneration

ChatGLM

THUDM/chatglm2-6b, THUDM/chatglm3-6b, ShieldLM-6B-chatglm3, etc.

✅︎

✅︎

CohereForCausalLM, Cohere2ForCausalLM

Command-R

CohereForAI/c4ai-command-r-v01, CohereForAI/c4ai-command-r7b-12-2024, etc.

✅︎

✅︎

DbrxForCausalLM

DBRX

databricks/dbrx-base, databricks/dbrx-instruct, etc.

✅︎

DeciLMForCausalLM

DeciLM

nvidia/Llama-3_3-Nemotron-Super-49B-v1, etc.

✅︎

DeepseekForCausalLM

DeepSeek

deepseek-ai/deepseek-llm-67b-base, deepseek-ai/deepseek-llm-7b-chat etc.

✅︎

DeepseekV2ForCausalLM

DeepSeek-V2

deepseek-ai/DeepSeek-V2, deepseek-ai/DeepSeek-V2-Chat etc.

✅︎

DeepseekV3ForCausalLM

DeepSeek-V3

deepseek-ai/DeepSeek-V3-Base, deepseek-ai/DeepSeek-V3 etc.

✅︎

ExaoneForCausalLM

EXAONE-3

LGAI-EXAONE/EXAONE-3.0-7.8B-Instruct, etc.

✅︎

✅︎

FalconForCausalLM

Falcon

tiiuae/falcon-7b, tiiuae/falcon-40b, tiiuae/falcon-rw-7b, etc.

✅︎

FalconMambaForCausalLM

FalconMamba

tiiuae/falcon-mamba-7b, tiiuae/falcon-mamba-7b-instruct, etc.

✅︎

✅︎

GemmaForCausalLM

Gemma

google/gemma-2b, google/gemma-7b, etc.

✅︎

✅︎

Gemma2ForCausalLM

Gemma 2

google/gemma-2-9b, google/gemma-2-27b, etc.

✅︎

✅︎

Gemma3ForCausalLM

Gemma 3

google/gemma-3-1b-it, etc.

✅︎

✅︎

GlmForCausalLM

GLM-4

THUDM/glm-4-9b-chat-hf, etc.

✅︎

✅︎

Glm4ForCausalLM

GLM-4-0414

THUDM/GLM-4-32B-Chat-0414, etc.

✅︎

✅︎

GPT2LMHeadModel

GPT-2

gpt2, gpt2-xl, etc.

✅︎

GPTBigCodeForCausalLM

StarCoder, SantaCoder, WizardCoder

bigcode/starcoder, bigcode/gpt_bigcode-santacoder, WizardLM/WizardCoder-15B-V1.0, etc.

✅︎

✅︎

GPTJForCausalLM

GPT-J

EleutherAI/gpt-j-6b, nomic-ai/gpt4all-j, etc.

✅︎

GPTNeoXForCausalLM

GPT-NeoX, Pythia, OpenAssistant, Dolly V2, StableLM

EleutherAI/gpt-neox-20b, EleutherAI/pythia-12b, OpenAssistant/oasst-sft-4-pythia-12b-epoch-3.5, databricks/dolly-v2-12b, stabilityai/stablelm-tuned-alpha-7b, etc.

✅︎

GraniteForCausalLM

Granite 3.0, Granite 3.1, PowerLM

ibm-granite/granite-3.0-2b-base, ibm-granite/granite-3.1-8b-instruct, ibm/PowerLM-3b, etc.

✅︎

✅︎

GraniteMoeForCausalLM

Granite 3.0 MoE, PowerMoE

ibm-granite/granite-3.0-1b-a400m-base, ibm-granite/granite-3.0-3b-a800m-instruct, ibm/PowerMoE-3b, etc.

✅︎

✅︎

GraniteMoeSharedForCausalLM

Granite MoE Shared

ibm-research/moe-7b-1b-active-shared-experts (测试模型)

✅︎

✅︎

GritLM

GritLM

parasail-ai/GritLM-7B-vllm.

✅︎

✅︎

Grok1ModelForCausalLM

Grok1

hpcai-tech/grok-1.

✅︎

✅︎

InternLMForCausalLM

InternLM

internlm/internlm-7b, internlm/internlm-chat-7b, etc.

✅︎

✅︎

InternLM2ForCausalLM

InternLM2

internlm/internlm2-7b, internlm/internlm2-chat-7b, etc.

✅︎

✅︎

InternLM3ForCausalLM

InternLM3

internlm/internlm3-8b-instruct, etc.

✅︎

✅︎

JAISLMHeadModel

Jais

inceptionai/jais-13b, inceptionai/jais-13b-chat, inceptionai/jais-30b-v3, inceptionai/jais-30b-chat-v3, etc.

✅︎

JambaForCausalLM

Jamba

ai21labs/AI21-Jamba-1.5-Large, ai21labs/AI21-Jamba-1.5-Mini, ai21labs/Jamba-v0.1, etc.

✅︎

✅︎

LlamaForCausalLM

Llama 3.1, Llama 3, Llama 2, LLaMA, Yi

meta-llama/Meta-Llama-3.1-405B-Instruct, meta-llama/Meta-Llama-3.1-70B, meta-llama/Meta-Llama-3-70B-Instruct, meta-llama/Llama-2-70b-hf, 01-ai/Yi-34B, etc.

✅︎

✅︎

MambaForCausalLM

Mamba

state-spaces/mamba-130m-hf, state-spaces/mamba-790m-hf, state-spaces/mamba-2.8b-hf, etc.

✅︎

MiniCPMForCausalLM

MiniCPM

openbmb/MiniCPM-2B-sft-bf16, openbmb/MiniCPM-2B-dpo-bf16, openbmb/MiniCPM-S-1B-sft, etc.

✅︎

✅︎

MiniCPM3ForCausalLM

MiniCPM3

openbmb/MiniCPM3-4B, etc.

✅︎

✅︎

MistralForCausalLM

Mistral, Mistral-Instruct

mistralai/Mistral-7B-v0.1, mistralai/Mistral-7B-Instruct-v0.1, etc.

✅︎

✅︎

MixtralForCausalLM

Mixtral-8x7B, Mixtral-8x7B-Instruct

mistralai/Mixtral-8x7B-v0.1, mistralai/Mixtral-8x7B-Instruct-v0.1, mistral-community/Mixtral-8x22B-v0.1, etc.

✅︎

✅︎

MPTForCausalLM

MPT, MPT-Instruct, MPT-Chat, MPT-StoryWriter

mosaicml/mpt-7b, mosaicml/mpt-7b-storywriter, mosaicml/mpt-30b, etc.

✅︎

NemotronForCausalLM

Nemotron-3, Nemotron-4, Minitron

nvidia/Minitron-8B-Base, mgoin/Nemotron-4-340B-Base-hf-FP8, etc.

✅︎

✅︎

OLMoForCausalLM

OLMo

allenai/OLMo-1B-hf, allenai/OLMo-7B-hf, etc.

✅︎

OLMo2ForCausalLM

OLMo2

allenai/OLMo2-7B-1124, etc.

✅︎

OLMoEForCausalLM

OLMoE

allenai/OLMoE-1B-7B-0924, allenai/OLMoE-1B-7B-0924-Instruct, etc.

✅︎

✅︎

OPTForCausalLM

OPT, OPT-IML

facebook/opt-66b, facebook/opt-iml-max-30b, etc.

✅︎

OrionForCausalLM

Orion

OrionStarAI/Orion-14B-Base, OrionStarAI/Orion-14B-Chat, etc.

✅︎

PhiForCausalLM

Phi

microsoft/phi-1_5, microsoft/phi-2, etc.

✅︎

✅︎

Phi3ForCausalLM

Phi-4, Phi-3

microsoft/Phi-4-mini-instruct, microsoft/Phi-4, microsoft/Phi-3-mini-4k-instruct, microsoft/Phi-3-mini-128k-instruct, microsoft/Phi-3-medium-128k-instruct, etc.

✅︎

✅︎

Phi3SmallForCausalLM

Phi-3-Small

microsoft/Phi-3-small-8k-instruct, microsoft/Phi-3-small-128k-instruct, etc.

✅︎

PhiMoEForCausalLM

Phi-3.5-MoE

microsoft/Phi-3.5-MoE-instruct, etc.

✅︎

✅︎

PersimmonForCausalLM

Persimmon

adept/persimmon-8b-base, adept/persimmon-8b-chat, etc.

✅︎

QWenLMHeadModel

Qwen

Qwen/Qwen-7B, Qwen/Qwen-7B-Chat, etc.

✅︎

✅︎

Qwen2ForCausalLM

QwQ, Qwen2

Qwen/QwQ-32B-Preview, Qwen/Qwen2-7B-Instruct, Qwen/Qwen2-7B, etc.

✅︎

✅︎

Qwen2MoeForCausalLM

Qwen2MoE

Qwen/Qwen1.5-MoE-A2.7B, Qwen/Qwen1.5-MoE-A2.7B-Chat, etc.

✅︎

Qwen3ForCausalLM

Qwen3

Qwen/Qwen3-8B, etc.

✅︎

✅︎

Qwen3MoeForCausalLM

Qwen3MoE

Qwen/Qwen3-MoE-15B-A2B, etc.

✅︎

✅︎

StableLmForCausalLM

StableLM

stabilityai/stablelm-3b-4e1t, stabilityai/stablelm-base-alpha-7b-v2, etc.

✅︎

Starcoder2ForCausalLM

Starcoder2

bigcode/starcoder2-3b, bigcode/starcoder2-7b, bigcode/starcoder2-15b, etc.

✅︎

SolarForCausalLM

Solar Pro

upstage/solar-pro-preview-instruct, etc.

✅︎

✅︎

TeleChat2ForCausalLM

TeleChat2

Tele-AI/TeleChat2-3B, Tele-AI/TeleChat2-7B, Tele-AI/TeleChat2-35B, etc.

✅︎

✅︎

TeleFLMForCausalLM

TeleFLM

CofeAI/FLM-2-52B-Instruct-2407, CofeAI/Tele-FLM, etc.

✅︎

✅︎

XverseForCausalLM

XVERSE

xverse/XVERSE-7B-Chat, xverse/XVERSE-13B-Chat, xverse/XVERSE-65B-Chat, etc.

✅︎

✅︎

MiniMaxText01ForCausalLM

MiniMax-Text

MiniMaxAI/MiniMax-Text-01, etc.

✅︎

Zamba2ForCausalLM

Zamba2

Zyphra/Zamba2-7B-instruct, Zyphra/Zamba2-2.7B-instruct, Zyphra/Zamba2-1.2B-instruct, etc.

注意

目前,ROCm 版本的 vLLM 仅支持 Mistral 和 Mixtral,上下文长度最长为 4096。

池化模型#

有关如何使用池化模型的更多信息,请参阅 此页面

重要提示

由于某些模型架构同时支持生成任务和池化任务,因此您应显式指定任务类型,以确保模型在池化模式下使用而不是生成模式。

文本嵌入 (--task embed)#

架构

模型

示例 HF 模型

LoRA

PP

BertModel

基于 BERT

BAAI/bge-base-en-v1.5, etc.

Gemma2Model

基于 Gemma 2

BAAI/bge-multilingual-gemma2, etc.

✅︎

GritLM

GritLM

parasail-ai/GritLM-7B-vllm.

✅︎

✅︎

LlamaModel, LlamaForCausalLM, MistralModel, etc.

基于 Llama

intfloat/e5-mistral-7b-instruct, etc.

✅︎

✅︎

Qwen2Model, Qwen2ForCausalLM

基于 Qwen2

ssmits/Qwen2-7B-Instruct-embed-base (请参阅注释), Alibaba-NLP/gte-Qwen2-7B-instruct (请参阅注释), etc.

✅︎

✅︎

RobertaModel, RobertaForMaskedLM

基于 RoBERTa

sentence-transformers/all-roberta-large-v1, sentence-transformers/all-roberta-large-v1, etc.

XLMRobertaModel

基于 XLM-RoBERTa

intfloat/multilingual-e5-large, jinaai/jina-reranker-v2-base-multilingual, etc.

注意

ssmits/Qwen2-7B-Instruct-embed-base 具有未正确定义的 Sentence Transformers 配置。 您应该通过传递 --override-pooler-config '{"pooling_type": "MEAN"}' 手动设置平均池化。

注意

Alibaba-NLP/gte-Qwen2-1.5B-instruct 的 HF 实现被硬编码为使用因果注意力,尽管 config.json 中显示的内容并非如此。 为了比较 vLLM 与 HF 的结果,您应该在 vLLM 中设置 --hf-overrides '{"is_causal": true}',以便两个实现彼此一致。

对于 1.5B 和 7B 变体,您还需要启用 --trust-remote-code 才能加载正确的 tokenizer。 请参阅 HF Transformers 上的相关 issue

如果您的模型不在上面的列表中,我们将尝试使用 as_embedding_model() 自动转换模型。 默认情况下,整个提示的嵌入是从与最后一个 token 对应的归一化隐藏状态中提取的。

奖励建模 (--task reward)#

架构

模型

示例 HF 模型

LoRA

PP

InternLM2ForRewardModel

基于 InternLM2

internlm/internlm2-1_8b-reward, internlm/internlm2-7b-reward, etc.

✅︎

✅︎

LlamaForCausalLM

基于 Llama

peiyi9979/math-shepherd-mistral-7b-prm, etc.

✅︎

✅︎

Qwen2ForRewardModel

基于 Qwen2

Qwen/Qwen2.5-Math-RM-72B, etc.

✅︎

✅︎

Qwen2ForProcessRewardModel

基于 Qwen2

Qwen/Qwen2.5-Math-PRM-7B, Qwen/Qwen2.5-Math-PRM-72B, etc.

✅︎

✅︎

如果您的模型不在上面的列表中,我们将尝试使用 as_reward_model() 自动转换模型。 默认情况下,我们直接返回每个 token 的隐藏状态。

重要提示

对于过程监督奖励模型,例如 peiyi9979/math-shepherd-mistral-7b-prm,应显式设置池化配置,例如:--override-pooler-config '{"pooling_type": "STEP", "step_tag_id": 123, "returned_token_ids": [456, 789]}'

分类 (--task classify)#

架构

模型

示例 HF 模型

LoRA

PP

JambaForSequenceClassification

Jamba

ai21labs/Jamba-tiny-reward-dev, etc.

✅︎

✅︎

Qwen2ForSequenceClassification

基于 Qwen2

jason9693/Qwen2.5-1.5B-apeach, 等等。

✅︎

✅︎

如果您的模型不在上述列表中,我们将尝试使用 as_classification_model() 自动转换模型。默认情况下,类别概率从对应于最后一个 token 的 softmax 隐藏状态中提取。

句子对评分 (--task score)#

架构

模型

示例 HF 模型

LoRA

PP

BertForSequenceClassification

基于 BERT

cross-encoder/ms-marco-MiniLM-L-6-v2, 等等。

RobertaForSequenceClassification

基于 RoBERTa

cross-encoder/quora-roberta-base, 等等。

XLMRobertaForSequenceClassification

基于 XLM-RoBERTa

BAAI/bge-reranker-v2-m3, 等等。

多模态语言模型列表#

以下模态取决于模型而支持

  • 本 (Text)

  • 像 (Image)

  • 频 (Video)

  • 频 (Audio)

支持由 + 连接的任何模态组合。

  • 例如:T + I 表示该模型支持仅文本、仅图像以及文本与图像结合的输入。

另一方面,由 / 分隔的模态是互斥的。

  • 例如:T / I 表示该模型支持仅文本和仅图像输入,但不支持文本与图像结合的输入。

请参阅此页面,了解如何将多模态输入传递给模型。

重要提示

要为每个文本提示启用多个多模态项目,您必须设置 limit_mm_per_prompt(离线推理)或 --limit-mm-per-prompt(在线服务)。例如,要启用每个文本提示最多传递 4 张图像

离线推理

llm = LLM(
    model="Qwen/Qwen2-VL-7B-Instruct",
    limit_mm_per_prompt={"image": 4},
)

在线服务

vllm serve Qwen/Qwen2-VL-7B-Instruct --limit-mm-per-prompt image=4

注意

vLLM 目前仅支持将 LoRA 添加到多模态语言模型的主干网络。

生成模型#

有关如何使用生成模型的更多信息,请参阅 此页面

文本生成 (--task generate)#

架构

模型

输入

示例 HF 模型

LoRA

PP

V1

AriaForConditionalGeneration

Aria

T + I+

rhymes-ai/Aria

✅︎

✅︎

AyaVisionForConditionalGeneration

Aya Vision

T + I+

CohereForAI/aya-vision-8b, CohereForAI/aya-vision-32b, 等等。

✅︎

✅︎

Blip2ForConditionalGeneration

BLIP-2

T + IE

Salesforce/blip2-opt-2.7b, Salesforce/blip2-opt-6.7b, 等等。

✅︎

✅︎

ChameleonForConditionalGeneration

Chameleon

T + I

facebook/chameleon-7b 等等。

✅︎

✅︎

DeepseekVLV2ForCausalLM^

DeepSeek-VL2

T + I+

deepseek-ai/deepseek-vl2-tiny, deepseek-ai/deepseek-vl2-small, deepseek-ai/deepseek-vl2 等等。

✅︎

✅︎

Florence2ForConditionalGeneration

Florence-2

T + I

microsoft/Florence-2-base, microsoft/Florence-2-large 等等。

FuyuForCausalLM

Fuyu

T + I

adept/fuyu-8b 等等。

✅︎

✅︎

Gemma3ForConditionalGeneration

Gemma 3

T + I+

google/gemma-3-4b-it, google/gemma-3-27b-it, 等等。

✅︎

✅︎

⚠️

GLM4VForCausalLM^

GLM-4V

T + I

THUDM/glm-4v-9b, THUDM/cogagent-9b-20241220 等等。

✅︎

✅︎

✅︎

H2OVLChatModel

H2OVL

T + IE+

h2oai/h2ovl-mississippi-800m, h2oai/h2ovl-mississippi-2b, 等等。

✅︎

✅︎*

Idefics3ForConditionalGeneration

Idefics3

T + I

HuggingFaceM4/Idefics3-8B-Llama3 等等。

✅︎

✅︎

InternVLChatModel

InternVideo 2.5, InternVL 2.5, Mono-InternVL, InternVL 2.0

T + IE+

OpenGVLab/InternVideo2_5_Chat_8B, OpenGVLab/InternVL2_5-4B, OpenGVLab/Mono-InternVL-2B, OpenGVLab/InternVL2-4B, 等等。

✅︎

✅︎

Llama4ForConditionalGeneration

Llama-4-17B-Omni-Instruct

T + I+

meta-llama/Llama-4-Scout-17B-16E-Instruct, meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8, meta-llama/Llama-4-Maverick-17B-128E-Instruct, 等等。

✅︎

✅︎

LlavaForConditionalGeneration

LLaVA-1.5

T + IE+

llava-hf/llava-1.5-7b-hf, TIGER-Lab/Mantis-8B-siglip-llama3 (见注释), 等等。

✅︎

✅︎

LlavaNextForConditionalGeneration

LLaVA-NeXT

T + IE+

llava-hf/llava-v1.6-mistral-7b-hf, llava-hf/llava-v1.6-vicuna-7b-hf, 等等。

✅︎

✅︎

LlavaNextVideoForConditionalGeneration

LLaVA-NeXT-Video

T + V

llava-hf/LLaVA-NeXT-Video-7B-hf, 等等。

✅︎

✅︎

LlavaOnevisionForConditionalGeneration

LLaVA-Onevision

T + I+ + V+

llava-hf/llava-onevision-qwen2-7b-ov-hf, llava-hf/llava-onevision-qwen2-0.5b-ov-hf, 等等。

✅︎

✅︎

MiniCPMO

MiniCPM-O

T + IE+ + VE+ + AE+

openbmb/MiniCPM-o-2_6, 等等。

✅︎

✅︎

✅︎

MiniCPMV

MiniCPM-V

T + IE+ + VE+

openbmb/MiniCPM-V-2 (见注释), openbmb/MiniCPM-Llama3-V-2_5, openbmb/MiniCPM-V-2_6, 等等。

✅︎

✅︎

✅︎

Mistral3ForConditionalGeneration

Mistral3

T + I+

mistralai/Mistral-Small-3.1-24B-Instruct-2503, 等等。

✅︎

✅︎

MllamaForConditionalGeneration

Llama 3.2

T + I+

meta-llama/Llama-3.2-90B-Vision-Instruct, meta-llama/Llama-3.2-11B-Vision, 等等。

MolmoForCausalLM

Molmo

T + I+

allenai/Molmo-7B-D-0924, allenai/Molmo-7B-O-0924, 等等。

✅︎

✅︎

✅︎

NVLM_D_Model

NVLM-D 1.0

T + I+

nvidia/NVLM-D-72B, 等等。

✅︎

✅︎

PaliGemmaForConditionalGeneration

PaliGemma, PaliGemma 2

T + IE

google/paligemma-3b-pt-224, google/paligemma-3b-mix-224, google/paligemma2-3b-ft-docci-448, 等等。

✅︎

⚠️

Phi3VForCausalLM

Phi-3-Vision, Phi-3.5-Vision

T + IE+

microsoft/Phi-3-vision-128k-instruct, microsoft/Phi-3.5-vision-instruct, 等等。

✅︎

✅︎

Phi4MMForCausalLM

Phi-4-multimodal

T + I+ / T + A+ / I+ + A+

microsoft/Phi-4-multimodal-instruct, 等等。

✅︎

PixtralForConditionalGeneration

Pixtral

T + I+

mistralai/Mistral-Small-3.1-24B-Instruct-2503, mistral-community/pixtral-12b, 等等。

✅︎

✅︎

QwenVLForConditionalGeneration^

Qwen-VL

T + IE+

Qwen/Qwen-VL, Qwen/Qwen-VL-Chat, 等等。

✅︎

✅︎

✅︎

Qwen2AudioForConditionalGeneration

Qwen2-Audio

T + A+

Qwen/Qwen2-Audio-7B-Instruct

✅︎

✅︎

Qwen2VLForConditionalGeneration

QVQ, Qwen2-VL

T + IE+ + VE+

Qwen/QVQ-72B-Preview, Qwen/Qwen2-VL-7B-Instruct, Qwen/Qwen2-VL-72B-Instruct, 等等。

✅︎

✅︎

✅︎

Qwen2_5_VLForConditionalGeneration

Qwen2.5-VL

T + IE+ + VE+

Qwen/Qwen2.5-VL-3B-Instruct, Qwen/Qwen2.5-VL-72B-Instruct, 等等。

✅︎

✅︎

✅︎

SkyworkR1VChatModel

Skywork-R1V-38B

T + I

Skywork/Skywork-R1V-38B

✅︎

✅︎

SmolVLMForConditionalGeneration

SmolVLM2

T + I

SmolVLM2-2.2B-Instruct

✅︎

✅︎

UltravoxModel

Ultravox

T + AE+

fixie-ai/ultravox-v0_5-llama-3_2-1b

✅︎

✅︎

✅︎

^ 您需要通过 --hf-overrides 设置架构名称,以匹配 vLLM 中的架构名称。
    • 例如,要使用 DeepSeek-VL2 系列模型
      --hf-overrides '{"architectures": ["DeepseekVLV2ForCausalLM"]}'
E 预计算的嵌入可以作为此模态的输入。
+ 每个文本提示可以为此模态输入多个项目。

重要提示

V0(而非 V1)目前支持平移和扫描图像预处理。您可以通过传递 --mm-processor-kwargs '{"do_pan_and_scan": True}' 来启用它。

警告

V0 和 V1 都支持 Gemma3ForConditionalGeneration 用于仅文本输入。但是,它们处理文本 + 图像输入的方式存在差异

V0 正确实现了模型的注意力模式

  • 在对应于同一图像的图像 token 之间使用双向注意力

  • 对其他 token 使用因果注意力

  • 通过(朴素的)带有掩码张量的 PyTorch SDPA 实现

  • 注意:对于带有图像的长提示,可能会占用大量内存

V1 目前使用简化的注意力模式

  • 对所有 token 使用因果注意力,包括图像 token

  • 生成合理的输出,但不匹配原始模型对于文本 + 图像输入的注意力,尤其是在 {"do_pan_and_scan": True} 的情况下

  • 未来将更新以支持正确的行为

存在此限制是因为 vLLM 的注意力后端尚不支持该模型的混合注意力模式(图像双向,否则因果)。

注意

一旦我们支持 FlashAttention 以外的后端,h2oai/h2ovl-mississippi-2b 将在 V1 中可用。

注意

要使用 TIGER-Lab/Mantis-8B-siglip-llama3,您在运行 vLLM 时必须传递 --hf_overrides '{"architectures": ["MantisForConditionalGeneration"]}'

注意

官方的 openbmb/MiniCPM-V-2 尚不可用,因此我们目前需要使用一个分支 (HwwwH/MiniCPM-V-2)。有关更多详细信息,请参阅:Pull Request #4087

警告

对于 V0 和 V1,我们的 PaliGemma 实现都存在与 Gemma 3 相同的问题(见上文)。

池化模型#

有关如何使用池化模型的更多信息,请参阅 此页面

重要提示

由于某些模型架构同时支持生成任务和池化任务,因此您应显式指定任务类型,以确保模型在池化模式下使用而不是生成模式。

文本嵌入 (--task embed)#

任何文本生成模型都可以通过传递 --task embed 转换为嵌入模型。

注意

为了获得最佳结果,您应该使用专门为此训练的池化模型。

下表列出了 vLLM 中测试过的模型。

架构

模型

输入

示例 HF 模型

LoRA

PP

LlavaNextForConditionalGeneration

基于 LLaVA-NeXT

T / I

royokong/e5-v

✅︎

Phi3VForCausalLM

基于 Phi-3-Vision

T + I

TIGER-Lab/VLM2Vec-Full

🚧

✅︎

Qwen2VLForConditionalGeneration

基于 Qwen2-VL

T + I

MrLight/dse-qwen2-2b-mrl-v1

✅︎

转录 (--task transcription)#

专门为自动语音识别训练的 Speech2Text 模型。

架构

模型

示例 HF 模型

LoRA

PP

Whisper

基于 Whisper

openai/whisper-large-v3-turbo

🚧

🚧


模型支持策略#

在 vLLM,我们致力于促进第三方模型在我们生态系统中的集成和支持。我们的方法旨在平衡稳健性的需求和支持各种模型的实际限制。以下是我们如何管理第三方模型支持:

  1. 社区驱动的支持:我们鼓励社区为添加新模型做出贡献。当用户请求对新模型提供支持时,我们欢迎来自社区的拉取请求 (PR)。这些贡献的评估主要基于它们生成的输出的合理性,而不是与 transformers 等现有实现的严格一致性。贡献征集:非常感谢模型供应商直接提交 PR!

  2. 尽力保持一致性:虽然我们的目标是在 vLLM 中实现的模型与 transformers 等其他框架之间保持一定程度的一致性,但完全对齐并不总是可行的。加速技术和低精度计算的使用等因素可能会引入差异。我们的承诺是确保已实现的模型功能正常并产生合理的结果。

    提示

    当比较 Hugging Face Transformers 中 model.generate 的输出与 vLLM 中 llm.generate 的输出时,请注意前者读取模型的生成配置文​​件(即 generation_config.json)并应用默认的生成参数,而后者仅使用传递给函数的参数。比较输出时,请确保所有采样参数都相同。

  3. 问题解决和模型更新:鼓励用户报告他们在使用第三方模型时遇到的任何错误或问题。建议的修复应通过 PR 提交,并清楚地解释问题和建议解决方案背后的原理。如果一个模型的修复影响到另一个模型,我们依靠社区来强调和解决这些跨模型依赖关系。注意:对于 bugfix PR,告知原始作者以征求他们的反馈是一种良好的礼仪。

  4. 监控和更新:对特定模型感兴趣的用户应监控这些模型的提交历史记录(例如,通过跟踪 main/vllm/model_executor/models 目录中的更改)。这种积极主动的方法有助于用户及时了解可能影响他们使用的模型的更新和更改。

  5. 选择性关注:我们的资源主要 направлены 在用户兴趣和影响显著的模型上。使用频率较低的模型可能会受到较少的关注,我们依靠社区在其维护和改进中发挥更积极的作用。

通过这种方法,vLLM 营造了一个协作环境,核心开发团队和更广泛的社区共同为我们生态系统中支持的第三方模型的稳健性和多样性做出贡献。

请注意,作为推理引擎,vLLM 不会引入新模型。因此,vLLM 支持的所有模型在这方面都是第三方模型。

我们对模型进行以下级别的测试

  1. 严格一致性:我们将模型的输出与 HuggingFace Transformers 库中在贪婪解码下的模型输出进行比较。这是最严格的测试。请参阅 模型测试,了解已通过此测试的模型。

  2. 输出合理性:我们通过测量输出的困惑度并检查是否有明显的错误来检查模型的输出是否合理和连贯。这是一个不太严格的测试。

  3. 运行时功能:我们检查模型是否可以加载和运行而不会出错。这是最不严格的测试。请参阅 功能测试示例,了解已通过此测试的模型。

  4. 社区反馈:我们依靠社区提供有关模型的反馈。如果模型已损坏或未按预期工作,我们鼓励用户提出 issue 报告或打开拉取请求以修复它。其余模型属于此类别。