Skip to content

vLLM、Transformers、Ollama:模型「跑起来」的三种工具怎么选

🕒 Published at:

前面两篇讲了怎么微调模型。可模型练好了、或者从网上下载了一个开源模型,怎么把它真正跑起来、对外提供服务? 这就轮到"推理框架/运行时"出场了。最常被拿来比较的三个是 HuggingFace Transformers、vLLM、Ollama。这篇给你讲清它们各是什么、快慢在哪、以及什么场景该用哪个。

一、先建立一个总认知

这三个东西,都是"把模型跑起来"的工具,但定位在一条光谱的不同位置——从"最灵活、适合研究"到"最快、适合生产"到"最省事、适合个人"。

Transformers最灵活 · 搞研究/训练瑞士军刀vLLM最快 · 上生产扛并发性能引擎Ollama最省事 · 个人/本地一键即用← 灵活/研究省事/个人 →快/生产

它们不是互相取代的关系,而是分工。 下面一个个讲。

二、HuggingFace Transformers:AI 界的「瑞士军刀」

它是什么:Transformers 是 HuggingFace 出的模型库 + 工具库,几乎所有开源模型(Qwen、Llama、各种 BERT……)都能用它一行代码加载。它不只是跑推理,训练、微调、研究都靠它——你上一篇微调用的 ms-swift、PEFT,底层都建在它之上。

它的定位灵活、通用、生态最全。搞研究、做实验、验证算法、跑个小 demo、做微调训练——第一选择。

跑一次推理就几行:

python
from transformers import pipeline

# 加载模型,pipeline 帮你把"分词→推理→解码"全包了
pipe = pipeline("text-generation", model="Qwen/Qwen3-0.6B")
print(pipe("用一句话解释什么是大模型", max_new_tokens=64))

优势:生态极其丰富(新模型第一时间支持)、上手简单、文档完善、和训练/微调无缝衔接。劣势:它是"通用取向"的,没有为高并发生产场景做深度优化——一次伺候很多用户时,吞吐和显存效率都不理想。所以它适合"跑起来看看",不适合"扛线上流量"。

一句话:做研究、搞训练、写原型,用它;但别直接拿它扛生产。

三、vLLM:为「生产高并发」而生的性能引擎

它是什么:vLLM 是一个专门优化推理性能的框架。同样一张显卡、同一个模型,用 vLLM 跑,吞吐量能比 Transformers 高出好几倍。它就是冲着"生产环境要同时服务成百上千个用户"这个目标去的。

为什么它这么快? 两个关键黑科技(了解概念即可):

① PagedAttention(分页注意力)。 大模型推理时要缓存大量中间结果(KV Cache),传统做法会预留一大块连续显存,用不满就浪费、还容易碎片化。vLLM 借鉴了操作系统"内存分页"的思想,把显存切成小块按需分配显存利用率大幅提升——同样的显卡能同时装下更多用户的会话。

② Continuous Batching(连续批处理)。 传统批处理要"等一批人都到齐才发车",有人生成得快、有人慢,快的就得干等慢的。vLLM 是"上车即走、下车即让"——谁生成完了就立刻把它的位置腾给新请求,GPU 一刻不闲。这是吞吐量翻倍的主要来源。

怎么用:vLLM 直接起一个 OpenAI 兼容的服务,一条命令搞定:

bash
# 启动一个 OpenAI 兼容的推理服务(默认端口 8000)
vllm serve Qwen/Qwen3-0.6B

启动后,它就在 http://localhost:8000/v1 暴露了和 OpenAI 一模一样的接口。这一点很重要——意味着你前面写的所有 LangChain / Agent 代码,把 base_url 一改就能用上自己部署的模型,一行业务逻辑都不用动。

优势:性能最优、显存效率高、并发能力强、OpenAI 兼容。劣势:部署门槛相对高一些(要装环境、通常要好点的 GPU)、有一定学习成本。

一句话:要上生产、要扛并发、要压成本,用它。

四、Ollama:个人本地跑模型的「一键神器」

它是什么:Ollama 把"在自己电脑上跑大模型"这件事简化到了极致。它之于大模型,有点像 Docker 之于容器——一条命令拉取、一条命令运行,模型的权重、配置、量化全给你打包好,不用操心任何底层细节。

怎么用:真的就一行:

bash
ollama run qwen3

第一次会自动下载(已经帮你量化好、体积小),然后你就能在终端里直接和它聊天了。它默认还会在后台起一个服务,同样提供 OpenAI 兼容接口(在 http://localhost:11434/v1),所以你的 Agent 代码照样能连上它做本地开发。

它的定位个人、本地、边缘、图省事。自己电脑上装个本地 AI 助手、离线用、在树莓派等边缘设备上跑、快速试用某个模型看看效果——它最合适。为了省事和省资源,它默认跑的是量化后的模型(体积小、普通电脑也能跑),代价是精度和性能有折损。

优势:部署极简单、硬件门槛低、跨平台(Mac/Windows/Linux 都行)、离线可用。劣势:性能有限、并发能力弱——它就不是为"同时服务很多人"设计的,你拿它扛生产流量会很快顶不住。

一句话:自己玩、本地开发、离线、边缘设备,用它。

五、一张表看懂区别

维度TransformersvLLMOllama
一句话定位研究/训练的瑞士军刀生产高并发性能引擎个人本地一键即用
主打场景实验、原型、微调训练在线服务、API、批量处理本地助手、边缘、试用
推理性能一般最强一般(量化换轻便)
并发能力
显存效率一般(PagedAttention)高(靠量化)
上手难度简单中等偏高极简
硬件门槛较高(要好 GPU)(普通电脑就行)
OpenAI 兼容接口需自己包✅ 内置✅ 内置
和训练/微调的衔接无缝主要管推理主要管推理

六、它们其实是一条流水线上的伙伴

别把它们当成"三选一的对手"。真实项目里,它们常常一起出现在一个模型的生命周期里

① 研究/微调Transformers / PEFT② 本地开发调试Ollama③ 上线扛流量vLLM

一个常见路径:用 Transformers 做研究、微调训练 → 用 Ollama 在自己电脑上快速验证效果、做本地开发 → 真正上线时用 vLLM 部署成高性能服务扛真实流量。各司其职,配合默契。

七、怎么选,一句话决策

  • 要训练、微调、做研究/实验Transformers(也只有它能干训练这活)。
  • 要上生产、对外提供 API、并发高、想压成本vLLM
  • 自己电脑本地跑、离线用、边缘设备、图省事快速试用Ollama

再给个更接地气的判断:你是"研究员"就 Transformers,你是"运维/后端上线"就 vLLM,你是"个人玩家/本地开发"就 Ollama。

八、和前面文章连起来

有个很妙的闭环值得点出来:vLLM 和 Ollama 都内置 OpenAI 兼容接口。 这意味着——

你在入门系列里写的所有代码(openai SDK、LangChain、Agent),本来连的是通义千问的云端接口。现在你把自己微调好的模型用 vLLM 或 Ollama 起成服务后,只需要把 base_url 改成本地服务地址(如 http://localhost:8000/v1),其余代码一个字都不用改,就用上了你自己的模型。

python
from openai import OpenAI
# 把 base_url 指向你本地/自建的 vLLM 或 Ollama 服务即可
client = OpenAI(base_url="http://localhost:8000/v1", api_key="EMPTY")

「微调出自己的模型 → 用 vLLM/Ollama 部署成 OpenAI 兼容服务 → 你的 Agent 代码无缝切过来」——从训练到应用的整条链路,到这里就彻底打通了。

九、小结

三个工具,一条光谱:Transformers 最灵活(研究/训练的瑞士军刀)、vLLM 最快(靠 PagedAttention + 连续批处理为生产高并发而生)、Ollama 最省事(一键在本地/边缘跑)。

它们不是对手而是搭档:研究微调用 Transformers、本地开发用 Ollama、上线扛量用 vLLM。 而 vLLM 和 Ollama 的 OpenAI 兼容接口,让你自己的模型能无缝接回前面写过的所有 Agent 代码——这就是把"训练"和"应用"缝合起来的最后一针。

想先补微调的知识,看这两篇:《模型微调从入门到实战》《Adapter 微调详解》