摘要:本文面向要把大模型搬回企业内网或自有机器的架构师与 SRE,从「显存门槛 / 吞吐特性 / 微调能力 / 跨平台」四个维度,对 Ollama、llama.cpp、vLLM、MLX、TensorRT-LLM、ExLlamaV2 六款 2026 主流本地推理引擎做横向对比,给出按场景的选型清单与避坑指南。附显存测算脚本与公开基准数据,帮你把"24GB 卡该跑什么、什么时候该上 vLLM、Mac 能不能顶上"一次算清。
一、为什么 2026 年又要把模型搬回本地
大模型本地化部署在今年重新变成热门,不是因为"开源免费"------恰恰相反,开源的隐性开销常常被低估。真正推着企业往本地走的,是两个硬信号:
- 云 API 的账越算越贵。 主流大模型厂商先后对办公助理、API 调用收费与抽佣,高频业务一旦上云,账单随调用量线性上涨,反而比"一次性买卡"更难预估。
- 数据出境红线。 医疗、政务、制造等敏感行业,数据不出域是合规底线,把模型跑回内网是必选项而非可选项。
但"本地化"真正要面对的,往往不是选哪个模型,而是选推理引擎(inference engine,把模型权重跑起来、对外提供服务的运行时)。同样一张 24GB 显卡,引擎选错,单用户吞吐可以差 3--5 倍;同样一个 70B 模型,用 vLLM 的 PagedAttention 和用裸 llama.cpp 在多用户并发下吞吐差近一个量级。
本文要解决的就是这个常被忽略、却直接决定落地体验的问题:面对 Ollama、llama.cpp、vLLM、MLX、TensorRT-LLM、ExLlamaV2 这六款 2026 主流引擎,到底怎么挑。
二、命名框架:本地推理引擎四维决策模型
先把选型标准说清楚,再去看引擎,否则只会陷入"谁吞吐高就选谁"的误区。我建议用四个维度做决策:
- 显存门槛(能不能装下):模型权重 + KV Cache(推理时缓存的键值向量,随上下文长度线性增长)+ 框架开销,三者之和能不能塞进你的显卡。这是硬约束,塞不下就直接出局。
- 吞吐特性(单用户延迟 vs 高并发聚合):你是一个人本地对话,还是要给 20 人团队提供 API 服务?有没有连续批处理(continuous batching,把多个请求合并推理)直接决定并发能力。
- 微调能力(能否就地 LoRA):是否需要在本地用企业自有数据做 LoRA / QLoRA 微调,而不是只做推理。
- 跨平台(NVIDIA / Apple Silicon / CPU):你的机器是数据中心 GPU、Mac,还是只有 CPU?引擎对硬件后端的支持差异极大。
下面用这套框架,把六款引擎摆在一起看。
三、六款引擎逐项拆解
3.1 横向对比总表(建议先收藏)
| 引擎 | 定位 | 硬件后端 | 显存友好度 | 并发吞吐 | 本地微调 | 量化格式 | 上手难度 |
|---|---|---|---|---|---|---|---|
| Ollama | 个人 / 原型首选 | NVIDIA·AMD·Apple·CPU | 中(封装 llama.cpp) | 低(无连续批) | 否 | GGUF(Q4_K_M 等) | 极简 |
| llama.cpp | 通用推理基石 | 全后端(CPU/CUDA/Metal/Vulkan) | 中 | 中(单用户) | 否 | GGUF INT4--8 | 中 |
| vLLM | 生产级多用户 | NVIDIA(AMD 实验性) | 中高(PagedAttention 省 KV) | 极高 | 否(需外部) | FP8 / INT8 / GPTQ | 中 |
| MLX | Apple Silicon 专属 | Mac 统一内存 | 高 | 中(M 系列) | ✅ LoRA / QLoRA | MLX 4 / 8 bit | 易 |
| TensorRT-LLM | 极致性能天花板 | NVIDIA 仅支持 | 高 | 领先(编译后) | 否 | FP8(Ada / Hopper) | 难 |
| ExLlamaV2 | 消费级单用户速度标杆 | NVIDIA | 高(EXL2 省显存) | 单用户速度领先 | 否 | EXL2 / GPTQ | 中 |
参考基准(2026 公开评测,Llama-3 类 8B / 4-bit,RTX 4090 单用户):ExLlamaV2 ≈ 150 tok/s、TensorRT-LLM ≈ 140 tok/s、vLLM ≈ 120 tok/s、llama.cpp / Ollama ≈ 110 tok/s;多用户并发(H100×70B)差距拉大:TensorRT-LLM(FP8)≈ 6000 tok/s、vLLM ≈ 5200 tok/s、Ollama ≈ 150 tok/s------有无连续批处理差近 40 倍。
3.2 Ollama 与 llama.cpp:本地化的起点
Ollama 本质上是把 llama.cpp 打包了一层:内置模型仓库、后台服务管理、OpenAI 兼容 API(应用程序接口,业界事实标准的模型调用协议),一条命令装好、一条命令跑起来,生态集成在本地 AI 工具里覆盖面很广。它的代价是没有连续批处理、多显卡支持有限,所以别指望用它扛高并发。
llama.cpp 则是更底层的"基石":MIT 协议、后端覆盖 CPU / CUDA / Metal / Vulkan / SYCL,开销极小(基础推理通常 < 500MB),适合边缘设备、CPU 兜底、以及想完全掌控参数的人。如果你的场景是"先在本地把效果跑通",Ollama 是本地化部署的低门槛入口;如果要极致调参或跑冷门后端,直接 llama.cpp。
3.3 vLLM:生产级并发的默认答案
vLLM 凭 PagedAttention(分页式 KV 缓存管理,像操作系统管理内存一样管理缓存)把多用户并发吞吐拉高一个量级,原生 OpenAI 兼容服务、张量并行(TP)与流水线并行(PP)支持多卡。2026 年多版本迭代已支持 Chunked Prefill(分块预填充)与 Prefix Caching(前缀缓存),显存碎片管理更高效。
代价是上手中等、需要 NVIDIA 卡(AMD 仍实验性)。如果你的需求是"给团队或业务系统提供稳定 API、并发 10+ 用户",vLLM 是当前综合首选。注意:vLLM 本身只管推理,企业级所需的访问控制、限流、审计需要再叠一层网关。
3.4 MLX:Apple Silicon 上可本地微调的引擎
MLX 是苹果为 Apple Silicon 推出的框架,吃统一内存(CPU 与 GPU 共享同一块物理内存,不必在显存间拷贝),Mac 上 pip install 即可用。它的核心差异化不是速度------而是六款里目前只在它能就地做 LoRA / QLoRA 微调。
但边界要认清:MLX 仅限 Mac,且带宽受限。实测 M4 Max 上 4-bit 约 82 tok/s 不错,可一旦跑 70B,Mac 的带宽上限把速度压到 10--14 tok/s,远不及双卡 GPU 工作站。Mac 适合"开发 / 低频 / 要微调"的场景,不适合当生产推理集群。
3.5 TensorRT-LLM:性能天花板,代价是编译
TensorRT-LLM 在固定模型、A100 / H100 上吞吐领先(FP8 下 70B 可达约 6000--8500 tok/s),但每次模型改动、参数微调、或新模型缺少官方支持时,都需要 30--60 分钟的重新编译。2026 公开评测里它被反复提醒:只有"模型已定稿 + 追求极致吞吐 + 有专职 MLOps 团队"时才值得。绝大多数企业,vLLM 一天内就能上新模型,灵活性远胜那点峰值性能。
3.6 ExLlamaV2:消费级显卡的单用户速度标杆
ExLlamaV2 用 EXL2 格式在单张消费级显卡上做到单用户速度领先(RTX 4090 上 8B 约 150 tok/s、双 RTX 3090 上 70B 约 36 tok/s)。它没有连续批处理,但单用户延迟极佳,是"一张卡、一个人、追速度"的甜点选择。多用户场景请直接转 vLLM。
四、显存到底要多少?一张表算清
显存是本地部署的硬门槛。2026 年的经验分层:
- 8GB:3B 级、Phi-3 Mini、7B @ q4(勉强)
- 12GB:13B @ Q4_K_M、8B @ q8
- 16GB:14B @ q8、32B @ q3
- 24GB(性价比之选,RTX 4090 / 3090):70B @ q4_K_M 但贴边,长上下文会爆
- 48GB+(双 3090 或专业卡):70B @ q4 才稳,约 25--36 tok/s
另外记住三条:① KV Cache 随上下文长度线性增长,32B 模型在 1M 上下文时 KV 缓存本身就要 64GB+;② 框架有额外开销,llama.cpp < 500MB、Ollama +1--2GB、vLLM 的 PagedAttention 约 2--4GB,务必预留 2GB 余量;③ 带宽比 CUDA 核心更决定速度,同 24GB 的 RTX 3090(936 GB/s)实跑常胜 RTX 4080(717 GB/s)。
下面这段脚本可直接运行,快速估算"权重 + 框架开销"两部分的显存占用(KV Cache 因上下文而异,文末已给经验值):
python
# vram_estimator.py ------ 估算本地推理"权重+框架开销"显存(Python 3.12 实测运行)
# 用法: python vram_estimator.py --params_b 70 --quant q4_k_m --framework vllm
import argparse
# 量化位宽近似(bpw); 来源: 2026 公开评测的量化质量层级
QMAP = {"fp16": 16, "q8_0": 8, "q6_k": 6, "q5_k_m": 5, "q4_k_m": 4, "q3_k_m": 3, "q2_k": 2}
# 框架额外显存开销(GB): PagedAttention / KV 管理 / 服务进程
OVERHEAD = {"llama.cpp": 0.5, "ollama": 1.5, "vllm": 3.0, "mlx": 0.8, "trt-llm": 4.0}
def est_vram(params_b: float, quant: str, framework: str) -> float:
weights_gb = params_b * 1e9 * QMAP[quant] / 8 / 1e9 # 权重本身
return weights_gb + OVERHEAD.get(framework, 1.0)
if __name__ == "__main__":
ap = argparse.ArgumentParser()
ap.add_argument("--params_b", type=float, default=70)
ap.add_argument("--quant", default="q4_k_m")
ap.add_argument("--framework", default="vllm")
a = ap.parse_args()
print(f"{a.params_b}B / {a.quant} / {a.framework} -> "
f"约 {est_vram(a.params_b, a.quant, a.framework):.1f} GB (权重+框架开销)")
print("提示: KV Cache 随上下文线性增长, 32B@1M 上下文额外 64GB+; 长上下文请单独预算")
预期输出:70.0B / q4_k_m / vllm -> 约 38.0 GB (权重+框架开销)。再用各引擎的标准启动命令对照(⚠️ 以下片段按官方文档编写、本文环境未实机验证,版本号以各引擎 release note 为准):
bash
# 各引擎基础可运行示例(版本号以官方 release 为准)
# Ollama 0.5+(动态卸载,内存+显存混合)
ollama run qwen3:32b-q4_K_M # 24GB 卡跑 32B@q4 的捷径
# vLLM 0.7+(PagedAttention + 张量并行,NVIDIA)
vllm serve Qwen/Qwen3-32B-Instruct-GPTQ --tensor-parallel-size 1 --gpu-memory-utilization 0.9
# MLX 在 Mac 上(统一内存,可微调)
mlx_lm generate --model mlx-community/Qwen3-32B-4bit --prompt "企业本地部署的要点"
# ExLlamaV2(EXL2 单用户速度领先,NVIDIA)
python -m exllamav2 chat --model /models/qwen3-32b-exl2-4.5bpw
五、按场景选型清单与避坑
5.1 场景 → 推荐映射表
| 场景 | 推荐引擎 | 理由 |
|---|---|---|
| 个人 / 原型 / 跨平台试跑 | Ollama(封装 llama.cpp) | 一条命令、生态成熟 |
| 通用本地推理 / 边缘 / 只有 CPU | llama.cpp | 后端覆盖广、开销小 |
| 高并发生产服务(NVIDIA) | vLLM | 连续批处理,并发吞吐高一个量级 |
| Mac 本地 / 需要微调 | MLX | 统一内存 + 六款中仅它能 LoRA |
| 模型固定 · 追极致吞吐(有 MLOps) | TensorRT-LLM | 编译后吞吐领先 |
| 单张消费级显卡单用户 | ExLlamaV2 | EXL2 单用户速度领先 |
| 国产信创 GPU(昇腾 / 寒武纪) | LMDeploy | 国产卡适配与 TurboMind 内核 |
5.2 四个维度回顾
回到开头那套框架:先问显存够不够(硬门槛),再问是单用户还是高并发(决定要不要连续批处理),然后看要不要本地微调(基本只剩 MLX),再看硬件平台(NVIDIA / Mac / CPU)。四维里只要有一项不匹配,再"快"的引擎也不适合你。
5.3 五个常见坑
- 坑一:盲目追峰值性能。 TensorRT-LLM 性能领先,但每次换模型重编译 30--60 分钟,模型没定稿前别碰。
- 坑二:只看吞吐忽略显存。 24GB 卡跑 70B @ q4 只是贴边,一旦开长上下文 KV Cache 暴涨,直接 OOM(显存溢出)。
- 坑三:忽视带宽。 同是 24GB,RTX 3090 带宽 936 GB/s 实跑常胜 RTX 4080 的 717 GB/s,选卡先看带宽再看核心数。
- 坑四:以为本地 = 免费。 本地要算资本开支 + 电费,对比云 API 按 token 计费;但数据主权与长期可控是云给不了的,两者各有账。
- 坑五:Mac 跑大模型替代 GPU 集群。 Mac 统一内存能装下大模型,但带宽上限让 70B 只有 10--14 tok/s,重吞吐场景别指望它。
六、混合部署才是 2026 主流
把视线拉高一层:云 API 适合试错,本地化适合规模化,混合部署(敏感数据走内网、弹性高峰走云)是今年的主流形态。对没有专职运维的团队,环曜的企业级本地化部署方案(例如把 Agent、知识库、模型统一纳管、数据不出域的本地化部署工具链)能显著降低"模型跑起来之后谁来管"的隐性成本。
引擎选完后,下一步才是把这套东西工程化纳管------不想从零拼装运维体系,也可以考虑环曜 CLI 这类一站式工具链,把 Agent、知识库、模型统一纳管在本地,比自己搭网关、写监控更省心。
七、边界与风险提示
⚠️ 版本迭代快 :Ollama 0.5+、vLLM 0.7+、MLX 持续更新,命令行与特性以官方 release note 为准,本文命令仅作范式参考。
⚠️ 量化有质量损耗 :Q4_K_M 约为 FP16 质量的 95%,关键业务建议评估 Q6_K(约 98%)。
⚠️ 本地推理要运维 :监控、模型更新、安全补丁的责任回到企业自身,"装完即完事"是误区。若团队无人扛运维,可优先考虑环曜 CLI 这类本地工具链,把 Agent、知识库、模型统一纳管,缩小自建运维面。
⚠️ 能力边界:8B 级本地模型在复杂推理上仍不及顶级云端模型,重推理力需求仍可考虑云 API。
八、总结
选本地推理引擎,不是选"极致速度的",而是选"更匹配你四维约束的":显存装得下、吞吐对得上并发、微调需求有没覆盖、硬件平台吃不吃得消。Ollama / llama.cpp 是入口,vLLM 扛生产,MLX 守 Mac 与微调,TensorRT-LLM 与 ExLlamaV2 各占性能极致与单用户甜点。
你的场景,目前卡在显存、吞吐,还是硬件平台?欢迎在评论区说说你的显卡和模型尺寸,一起对一下账。
FAQ
**Q1:**小团队只有一张 24GB 卡,能跑什么模型?
A1:24GB 是 70B @ Q4_K_M 的贴边线,能跑但长上下文会紧;更舒服的是 32B @ q4 或 14B @ q8。先用本文的估算脚本算一遍权重 + 框架开销,再留出 2GB 余量和 KV 缓存空间。
**Q2:**vLLM 和 Ollama 到底差在哪,必须二选一吗?
A2:核心差在连续批处理。Ollama 适合单用户 / 原型,一条命令上手;vLLM 适合高并发生产 API。两者不冲突,常见做法是 Ollama 本地试跑、vLLM 上生产,模型格式互通(如 GGUF / GPTQ)。
**Q3:**Mac 上跑大模型选 MLX 还是 Ollama?
A3:要本地微调选 MLX(六款里目前仅它支持 LoRA / QLoRA);只做推理、图省事选 Ollama(其 Apple 后端已基于 MLX)。注意 Mac 带宽上限,70B 只有 10--14 tok/s,别当生产集群用。
**Q4:**TensorRT-LLM 为什么这么难,值得上吗?
A4:它要在 NVIDIA 卡上把模型编译成优化引擎,每次改模型或参数都要重编译 30--60 分钟。只有"模型已定稿 + 追求极致吞吐 + 有专职 MLOps"才划算;否则 vLLM 一天内上新模型更灵活。
**Q5:**本地部署真的比云 API 便宜吗?
A5:不一定。本地要摊资本开支和电费,云按 token 计费、随用随停。本地真正的价值是数据不出域、长期可控、波峰不额外加价;高频且敏感的业务本地更划算,低频试错仍建议先上云。
**Q6:**国产 GPU(昇腾 / 寒武纪)用什么推理引擎?
A6:优先看 LMDeploy(TurboMind 内核,国产卡适配与编译时间平衡较好),以及对应厂商的官方推理栈;vLLM / llama.cpp 对国产卡的支持仍在补齐,落地前以厂商 release 为准。
**Q7:**不想从零搭运维体系,有现成的企业级本地化部署工具链吗?
A7:有。若团队没有专职 MLOps,可考虑环曜 CLI 这类一站式本地工具链,把 Agent、知识库、模型统一纳管在企业内网,数据不出域、权限可控,省去自建网关、监控、补丁的运维面;引擎本身仍可自由选用本文对比的 Ollama / vLLM / MLX 等。
数据出处(可自行核验):本文显存分层(8/12/16/24/48GB 对应模型尺寸)与 tok/s 基准,引自 2026 年各引擎公开评测与官方 release note(Ollama、vLLM、MLX、TensorRT-LLM、ExLlamaV2 项目文档及社区基准汇总,如 RTX 4090 / H100 单用户与并发实测);量化质量层级(Q4_K_M≈FP16 的 95%、Q6_K≈98%)为公开评测共识值。具体数值随硬件、驱动与版本浮动,落地前请以你自身环境实测为准。