支持的模型#
vLLM 支持 HuggingFace Transformers 中的多种生成式 Transformer 模型。以下是 vLLM 目前支持的模型架构列表。在每个架构旁边,我们列出了一些使用该架构的流行模型。
纯文本语言模型#
文本生成#
架构 |
模型 |
示例 HuggingFace 模型 |
||
---|---|---|---|---|
|
Aquila, Aquila2 |
|
✅︎ |
✅︎ |
|
北极 |
|
✅︎ |
|
|
百川2,百川 |
|
✅︎ |
✅︎ |
|
BLOOM, BLOOMZ, BLOOMChat |
|
✅︎ |
|
|
BART |
|
||
|
ChatGLM |
|
✅︎ |
✅︎ |
|
Command-R |
|
✅︎ |
✅︎ |
|
DBRX |
|
✅︎ |
|
|
DeciLM |
|
✅︎ |
|
|
深度探索 |
|
✅︎ |
|
|
深度探索-V2 |
|
✅︎ |
|
|
EXAONE-3 |
|
✅︎ |
✅︎ |
|
Falcon |
|
✅︎ |
|
|
Gemma |
|
✅︎ |
✅︎ |
|
Gemma2 |
|
✅︎ |
✅︎ |
|
GPT-2 |
|
✅︎ |
|
|
StarCoder, SantaCoder, WizardCoder |
|
✅︎ |
✅︎ |
|
GPT-J |
|
✅︎ |
|
|
GPT-NeoX, Pythia, OpenAssistant, Dolly V2, StableLM |
|
✅︎ |
|
|
PowerLM |
|
✅︎ |
✅︎ |
|
PowerMoE |
|
✅︎ |
✅︎ |
|
InternLM |
|
✅︎ |
✅︎ |
|
InternLM2 |
|
✅︎ |
|
|
Jais |
|
✅︎ |
|
|
Jamba |
|
✅︎ |
|
|
Llama 3.1, Llama 3, Llama 2, LLaMA, Yi |
|
✅︎ |
✅︎ |
|
Mamba |
|
✅︎ |
|
|
MiniCPM |
|
✅︎ |
✅︎ |
|
MiniCPM3 |
|
✅︎ |
✅︎ |
|
Mistral, Mistral-Instruct |
|
✅︎ |
✅︎ |
|
Mixtral-8x7B, Mixtral-8x7B-Instruct |
|
✅︎ |
✅︎ |
|
MPT, MPT-Instruct, MPT-Chat, MPT-StoryWriter |
|
✅︎ |
|
|
Nemotron-3, Nemotron-4, Minitron |
|
✅︎ |
✅︎ |
|
OLMo |
|
✅︎ |
|
|
OLMoE |
|
✅︎ |
✅︎ |
|
OPT, OPT-IML |
|
✅︎ |
|
|
猎户座 |
|
✅︎ |
|
|
Phi |
|
✅︎ |
✅︎ |
|
Phi-3 |
|
✅︎ |
✅︎ |
|
Phi-3-Small |
|
✅︎ |
|
|
Phi-3.5-MoE |
|
✅︎ |
✅︎ |
|
柿子 |
|
✅︎ |
|
|
Qwen |
|
✅︎ |
|
|
Qwen2 |
|
✅︎ |
✅︎ |
|
Qwen2MoE |
|
✅︎ |
|
|
StableLM |
|
✅︎ |
|
|
Starcoder2 |
|
✅︎ |
|
|
太阳能专业 |
|
✅︎ |
✅︎ |
|
XVERSE |
|
✅︎ |
✅︎ |
备注
目前,vLLM 的 ROCm 版本仅支持 Mistral 和 Mixtral,上下文长度最多为 4096。
文本嵌入#
奖励建模#
备注
作为一种临时措施,这些模型通过嵌入API得到支持。有关即将到来的更改,请参阅 此RFC。
多模态语言模型#
文本生成#
架构 |
模型 |
模式 |
示例 HuggingFace 模型 |
||
---|---|---|---|---|---|
|
BLIP-2 |
图像E |
|
✅︎ |
|
|
变色龙 |
图像 |
|
✅︎ |
|
|
Fuyu |
图像 |
|
✅︎ |
|
|
GLM-4V |
图像 |
|
✅︎ |
|
|
InternVL2 |
图像E+ |
|
✅︎ |
|
|
LLaVA-1.5 |
图像E+ |
|
✅︎ |
|
|
LLaVA-NeXT |
图像E+ |
|
✅︎ |
|
|
LLaVA-NeXT-Video |
视频 |
|
✅︎ |
|
|
LLaVA-Onevision |
图像+ / 视频 |
|
✅︎ |
|
|
MiniCPM-V |
图像E+ |
|
✅︎ |
✅︎ |
|
Llama 3.2 |
图像 |
|
||
|
Molmo |
图像 |
|
✅︎ |
|
|
NVLM-D 1.0 |
图像E+ |
|
✅︎ |
|
|
PaliGemma |
图像E |
|
✅︎ |
|
|
Phi-3-Vision, Phi-3.5-Vision |
图像E+ |
|
✅︎ |
|
|
Pixtral |
图像+ |
|
✅︎ |
|
|
Qwen-VL |
图像E+ |
|
✅︎ |
|
|
Qwen2-VL |
图像E+ / 视频+ |
|
✅︎ |
|
|
Ultravox |
音频E+ |
|
✅︎ |
备注
对于 openbmb/MiniCPM-V-2
,官方仓库尚未工作,因此我们目前需要使用一个分支(HwwwH/MiniCPM-V-2
)。更多详情,请参见:vllm-project/vllm#4087
如果你的模型使用了上述模型架构之一,你可以无缝地使用 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,我们致力于促进第三方模型在我们生态系统中的集成和支持。我们的方法旨在平衡对稳健性的需求和支持广泛模型的实际限制。以下是我们如何管理第三方模型支持的方式:
社区驱动的支持:我们鼓励社区为添加新模型做出贡献。当用户请求支持新模型时,我们欢迎来自社区的拉取请求(PR)。这些贡献主要根据它们生成的输出的合理性进行评估,而不是严格地与现有实现(如transformers中的实现)保持一致。呼吁贡献: 直接来自模型供应商的PR非常受欢迎!
尽力一致性:虽然我们致力于在 vLLM 中实现的模型与其他框架(如 transformers)之间保持一定程度的一致性,但完全对齐并不总是可行的。诸如加速技术和使用低精度计算等因素可能会引入差异。我们的承诺是确保所实现的模型功能正常并产生合理的结果。
问题解决和模型更新:鼓励用户报告他们在使用第三方模型时遇到的任何错误或问题。建议的修复应通过PR提交,并清楚地解释问题和建议解决方案的理由。如果一个模型的修复影响到另一个模型,我们依赖社区来突出并解决这些跨模型的依赖关系。注意:对于错误修复PR,通知原作者以寻求他们的反馈是一种良好的礼仪。
监控和更新: 对特定模型感兴趣的用户应监控这些模型的提交历史(例如,通过跟踪主目录/vllm/model_executor/models目录中的更改)。这种主动的方法有助于用户了解可能影响他们所使用模型的更新和变化。
选择性聚焦:我们的资源主要集中在用户兴趣和影响力较大的模型上。使用频率较低的模型可能得到的关注较少,我们依赖社区在维护和改进这些模型中发挥更积极的作用。
通过这种方法,vLLM 促进了一个协作环境,其中核心开发团队和更广泛的社区共同致力于我们生态系统中支持的第三方模型的稳健性和多样性。
需要注意的是,作为一个推理引擎,vLLM 并没有引入新的模型。因此,vLLM 支持的所有模型在这方面都是第三方模型。
我们对模型有以下测试级别: