支持的模型#

vLLM 支持 HuggingFace Transformers 中的各种生成式 Transformer 模型。以下是 vLLM 当前支持的模型架构列表。在每个架构旁边,我们还列出了一些使用该架构的流行模型。


仅解码器语言模型#

架构

模型

示例 HuggingFace 模型

LoRA

AquilaForCausalLM

Aquila & Aquila2

BAAI/Aquila-7B, BAAI/AquilaChat-7B, 等。

✅︎

ArcticForCausalLM

Arctic

Snowflake/snowflake-arctic-base, Snowflake/snowflake-arctic-instruct, 等。

BaiChuanForCausalLM

Baichuan & Baichuan2

baichuan-inc/Baichuan2-13B-Chat, baichuan-inc/Baichuan-7B, 等。

✅︎

BloomForCausalLM

BLOOM, BLOOMZ, BLOOMChat

bigscience/bloom, bigscience/bloomz, 等。

ChatGLMModel

ChatGLM

THUDM/chatglm2-6b, THUDM/chatglm3-6b, 等。

✅︎

CohereForCausalLM

Command-R

CohereForAI/c4ai-command-r-v01, 等。

DbrxForCausalLM

DBRX

databricks/dbrx-base, databricks/dbrx-instruct, 等。

DeciLMForCausalLM

DeciLM

Deci/DeciLM-7B, Deci/DeciLM-7B-instruct, 等。

ExaoneForCausalLM

EXAONE-3

LGAI-EXAONE/EXAONE-3.0-7.8B-Instruct, 等。

✅︎

FalconForCausalLM

Falcon

tiiuae/falcon-7b, tiiuae/falcon-40b, tiiuae/falcon-rw-7b, 等。

GemmaForCausalLM

Gemma

google/gemma-2b, google/gemma-7b, 等。

✅︎

Gemma2ForCausalLM

Gemma2

google/gemma-2-9b, google/gemma-2-27b, 等。

✅︎

GPT2LMHeadModel

GPT-2

gpt2, gpt2-xl, 等。

GPTBigCodeForCausalLM

StarCoder, SantaCoder, WizardCoder

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

✅︎

GPTJForCausalLM

GPT-J

EleutherAI/gpt-j-6b, nomic-ai/gpt4all-j, 等。

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, 等。

InternLMForCausalLM

InternLM

internlm/internlm-7b, internlm/internlm-chat-7b, 等。

✅︎

InternLM2ForCausalLM

InternLM2

internlm/internlm2-7b, internlm/internlm2-chat-7b, 等。

JAISLMHeadModel

Jais

core42/jais-13b, core42/jais-13b-chat, core42/jais-30b-v3, core42/jais-30b-chat-v3, 等。

JambaForCausalLM

Jamba

ai21labs/Jamba-v0.1, 等。

✅︎

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, 等。

✅︎

MiniCPMForCausalLM

MiniCPM

openbmb/MiniCPM-2B-sft-bf16, openbmb/MiniCPM-2B-dpo-bf16, 等。

MistralForCausalLM

Mistral,Mistral-Instruct

mistralai/Mistral-7B-v0.1, mistralai/Mistral-7B-Instruct-v0.1, 等。

✅︎

MixtralForCausalLM

Mixtral-8x7B,Mixtral-8x7B-Instruct

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

✅︎

MPTForCausalLM

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

mosaicml/mpt-7b, mosaicml/mpt-7b-storywriter, mosaicml/mpt-30b, 等。

NemotronForCausalLM

Nemotron-3,Nemotron-4,Minitron

nvidia/Minitron-8B-Base, mgoin/Nemotron-4-340B-Base-hf-FP8, 等。

✅︎

OLMoForCausalLM

OLMo

allenai/OLMo-1B-hf, allenai/OLMo-7B-hf, 等。

OPTForCausalLM

OPT,OPT-IML

facebook/opt-66bfacebook/opt-iml-max-30b 等。

OrionForCausalLM

Orion

OrionStarAI/Orion-14B-BaseOrionStarAI/Orion-14B-Chat 等。

PhiForCausalLM

Phi

microsoft/phi-1_5microsoft/phi-2 等。

✅︎

Phi3ForCausalLM

Phi-3

microsoft/Phi-3-mini-4k-instructmicrosoft/Phi-3-mini-128k-instructmicrosoft/Phi-3-medium-128k-instruct 等。

Phi3SmallForCausalLM

Phi-3-Small

microsoft/Phi-3-small-8k-instructmicrosoft/Phi-3-small-128k-instruct 等。

PhiMoEForCausalLM

Phi-3.5-MoE

microsoft/Phi-3.5-MoE-instruct 等。

PersimmonForCausalLM

Persimmon

adept/persimmon-8b-baseadept/persimmon-8b-chat 等。

QWenLMHeadModel

Qwen

Qwen/Qwen-7BQwen/Qwen-7B-Chat 等。

Qwen2ForCausalLM

Qwen2

Qwen/Qwen2-beta-7BQwen/Qwen2-beta-7B-Chat 等。

✅︎

Qwen2MoeForCausalLM

Qwen2MoE

Qwen/Qwen1.5-MoE-A2.7BQwen/Qwen1.5-MoE-A2.7B-Chat 等。

StableLmForCausalLM

StableLM

stabilityai/stablelm-3b-4e1t/stabilityai/stablelm-base-alpha-7b-v2 等。

Starcoder2ForCausalLM

Starcoder2

bigcode/starcoder2-3bbigcode/starcoder2-7bbigcode/starcoder2-15b 等。

XverseForCausalLM

Xverse

xverse/XVERSE-7B-Chatxverse/XVERSE-13B-Chatxverse/XVERSE-65B-Chat 等。

备注

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

多模态语言模型#

架构

模型

模态

示例 HuggingFace 模型

LoRA

Blip2ForConditionalGeneration

BLIP-2

图像E

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

ChameleonForConditionalGeneration

Chameleon

图像

facebook/chameleon-7b 等。

FuyuForCausalLM

Fuyu

图像

adept/fuyu-8b 等。

InternVLChatModel

InternVL2

图像E+

OpenGVLab/InternVL2-4BOpenGVLab/InternVL2-8B 等。

LlavaForConditionalGeneration

LLaVA-1.5

图像E+

llava-hf/llava-1.5-7b-hf, llava-hf/llava-1.5-13b-hf 等。

LlavaNextForConditionalGeneration

LLaVA-NeXT

图像E+

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

LlavaNextVideoForConditionalGeneration

LLaVA-NeXT-Video

视频

llava-hf/LLaVA-NeXT-Video-7B-hf 等。(参见说明)

MiniCPMV

MiniCPM-V

图像+

openbmb/MiniCPM-V-2`(参见说明), :code:`openbmb/MiniCPM-Llama3-V-2_5, openbmb/MiniCPM-V-2_6 等。

PaliGemmaForConditionalGeneration

PaliGemma

图像E

google/paligemma-3b-pt-224, google/paligemma-3b-mix-224 等。

Phi3VForCausalLM

Phi-3-Vision, Phi-3.5-Vision

图像E+

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

PixtralForConditionalGeneration

Pixtral

图像+

mistralai/Pixtral-12B-2409

QWenLMHeadModel

Qwen-VL

图像E+

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

Qwen2VLForConditionalGeneration

Qwen2-VL(参见说明)

图像+ / 视频+

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

UltravoxModel

Ultravox

音频E+

fixie-ai/ultravox-v0_3

E 此模式可以输入预先计算的嵌入。
+ 此模式可以为每个文本提示输入多个项目。

备注

对于 openbmb/MiniCPM-V-2,官方仓库目前尚不可用,因此我们目前需要使用一个分支(HwwwH/MiniCPM-V-2)。有关更多详细信息,请参见:vllm-project/vllm#4087

备注

对于 LLaVA-NeXT-VideoQwen2-VL,最新版本的 huggingface/transformers 目前尚不可用,因此我们目前需要使用开发人员版本(21fac7abba2a37fae86106f87fcf9974fd1e3830)。可以通过运行以下命令安装它:

pip install git+https://github.com/huggingface/transformers.git@21fac7abba2a37fae86106f87fcf9974fd1e3830

如果你的模型使用上述模型架构之一,你可以无缝地使用 vLLM 运行你的模型。否则,请参考 添加新模型启用多模态输入 获取有关如何实现对你的模型的支持的说明。或者,你可以在我们的 GitHub 项目上提出问题。

小技巧

检查你的模型是否受支持的最简单方法是运行以下程序:

from vllm import LLM

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

如果 vLLM 成功生成文本,则表明你的模型受支持。

小技巧

要使用来自 ModelScope 的模型而不是 HuggingFace Hub,请设置环境变量:

$ export VLLM_USE_MODELSCOPE=True

并使用 trust_remote_code=True

from vllm import LLM

llm = LLM(model=..., revision=..., trust_remote_code=True)  # Name or path of your model
output = llm.generate("Hello, my name is")
print(output)

模型支持策略#

在 vLLM,我们致力于促进第三方模型在我们生态系统中的集成和支持。我们的方法旨在平衡对鲁棒性的需求和支持广泛模型的实际限制。以下是我们管理第三方模型支持的方式:

  1. 社区驱动支持: 我们鼓励社区为添加新模型做出贡献。当用户请求对新模型的支持时,我们欢迎来自社区的拉取请求 (PR)。这些贡献主要根据它们生成的输出的合理性进行评估,而不是严格一致性,例如 transformers 中的实现。呼吁贡献: 来自模型供应商的 PR 将受到高度赞赏!

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

  3. Issue Resolution and Model Updates: Users are encouraged to report any bugs or issues they encounter with third-party models. Proposed fixes should be submitted via PRs, with a clear explanation of the problem and the rationale behind the proposed solution. If a fix for one model impacts another, we rely on the community to highlight and address these cross-model dependencies. Note: for bugfix PRs, it is good etiquette to inform the original author to seek their feedback.

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

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

选择性关注: 我们的资源主要用于对用户兴趣和影响力较大的模型。使用频率较低的模型可能获得较少的关注,我们依靠社区在维护和改进方面发挥更积极的作用。

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

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

  1. 我们对模型有以下级别的测试:

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

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

  4. 社区反馈: 我们依靠社区提供有关模型的反馈。如果模型出现故障或无法按预期工作,我们鼓励用户提出问题以报告问题或打开拉取请求以修复问题。其余模型属于此类别。