本地部署LLM的优势:
- 一次性消费,不用按token用量付费
(网费和电费当然也能算钱,但是跟某些大模型的报价比起来就可以不算钱了;显卡也其实会损耗的,但是我们先假设显卡是只用买一次的吧......) - 安全,你的数据不会上传到别人的服务器里。这对很多保密要求严格的公司和行业很重要
- 断网也可以使用大模型。
比如说如果你在笔记本电脑上部署了一个LLM的话(虽然一般消费级显卡能部署的模型不会太大),那你就可以在坐飞机的时候也用LLM来进行学习和工作了,在坐火车的时候也不用担心信号不好了。
(我之前看好像东航还是南航出了机上WiFi。但是要额外花钱买,好,我们公司不会报销这个的,我们领导不会让我在飞机上突然开始参会的!) - 你可以部署一些神奇的大模型,输出不会因为企业的风控机制而说到一半突然撤回。
- 也不用在乎API厂商的速率限制了,现在推理的速度完全取决于你自己的硬件和网络了。
- 也不用在乎某些公司一夜之间突然把你一直在用的模型版本换了......
对于某些聊出感情的用户来说,这样能保证你的赛博老友一直装在你自己的电脑里;对于学术研究人员来说,这也意味着你的可复现性会更强。(虽然大模型本身的随机性,即使temperature为0时也仍然不能保证绝对可复现) - 也不用担心某些公司突然把你的号封了
本地部署LLM的劣势:
- 需要有硬件和网络、安全防护和电力支持,普通用户可能没有所需的资源。
这里的硬件主要指的就是AI显卡,即用于神经网络计算的处理器(主要是GPU,也有用TPU、NPU或者CPU的)。大家都知道现在国际上GPU还是比较贵的。而国产显卡在能力上还是需要追赶国际先进水平的。而且现在的大模型基本上都是默认支持NVIDIA系的cuda工具,如果换成别的显卡,一方面是需要重新适配,另一方面可能会出现效果的下降。而且国产显卡也贵。当然国产显卡也在努力,让我们期待吧!
你能够部署的大模型的尺寸,也受限于你的硬件配置。如果你的GPU太小了,你就不能部署很大的模型。
网络和安全防护支持主要是考虑到一般人家里不会专门组服务器,对外暴露公网很危险,如果是内网环境要做内网穿透的话也很麻烦,所以如果你想在外面访问你家里部署的大模型还是比较麻烦的,如果不麻烦就要冒一点安全风险。 - 一般人只有消费级显卡,就无法部署各种"满血版"大模型,即使通过量化、压缩、优化,效果依然很可能不如云端大模型。
- 很多大模型厂商的前沿最强模型依然没有开源,只能通过API调用来使用。
本文主要考虑的是在你自己的电脑上运行LLM推理服务,但是下文会介绍的llama.cpp、vllm等工具事实上在企业级生产服务中也很常用。功能不仅局限于个人消费级使用。
另外本文介绍的是从"别人发布的开源大模型"到"在本地部署起LLM推理服务并进行调用"的这个过程。
文中除了用GUI界面的LM Studio和Jan之外都主要通过命令行来部署服务。
事实上还有很多像cherry studio、ChatBot乃至于OpenClaw之类的工具,可以用来将你在本地部署的LLM服务(当然也可以调用云端的大模型API)来放到一个对话框中,让你能够通过图形界面(比如一个像ChatGPT官网那样的)来与LLM对话,甚至访问你的知识库、文件系统,帮你完成工作。
类似这样的更多任务请待后续博文分解。
本系列不会更新微调、预训练、强化学习相关内容,因为 (1) 我觉得需要这些内容的读者应该不太算是小白了吧。(2) 问就是无脑建议选llama-factory
(本篇也会持续更新的)
文章目录
- 一、工具速查表
- 二、选型必读:工具优劣势深度对比
-
- [🔧 Ollama------开发者最爱的"LLM 版 Docker"](#🔧 Ollama——开发者最爱的“LLM 版 Docker”)
- [⚡ llama.cpp------低配设备的"性能魔法师"](#⚡ llama.cpp——低配设备的“性能魔法师”)
- [🚀 vLLM------生产环境吞吐王者](#🚀 vLLM——生产环境吞吐王者)
- [🎨 LM Studio------非技术用户的"可视化助手"](#🎨 LM Studio——非技术用户的“可视化助手”)
- [📦 其他值得关注的工具](#📦 其他值得关注的工具)
- 三、实战操作指南
-
- [🚀 场景一:用 Ollama 快速启动一个本地 API 服务](#🚀 场景一:用 Ollama 快速启动一个本地 API 服务)
- [⚙️ 场景二:在低配设备上通过 llama.cpp 运行模型](#⚙️ 场景二:在低配设备上通过 llama.cpp 运行模型)
- [🏭 场景三:用 vLLM 搭建高并发生产级推理服务](#🏭 场景三:用 vLLM 搭建高并发生产级推理服务)
- [🖥️ 场景四:通过 LM Studio 零代码体验本地模型](#🖥️ 场景四:通过 LM Studio 零代码体验本地模型)
- 四、选型决策树
- 五、性能基准参考
- 写在最后
一、工具速查表
| 工具 | 一句话定位 | 最佳场景 | 上手难度 |
|---|---|---|---|
| Ollama | 一行命令部署LLM | 开发者快速集成与原型开发 | ⭐ 极低 |
| llama.cpp | 低配设备的LLM极致压缩 | 极致性能调优与边缘设备部署 | ⭐⭐⭐ 中等 |
| vLLM | 生产级服务引擎 | 高并发 API 服务 | ⭐⭐⭐ 中等 |
| LM Studio | 开箱即用的桌面 GUI | 模型探索与可视化交互 | ⭐ 极低 |
| TensorRT-LLM | NVIDIA 官方的极致性能推理库 | 大规模生产环境 + 纯 NVIDIA 集群 | ⭐⭐⭐⭐ 较难 |
| TGI | Hugging Face 生产级服务工具包 | 企业级部署(但官方建议转向 vLLM/SGLang) | ⭐⭐⭐ 中等 |
| SGLang | 高性能服务框架,擅长多轮对话与复杂推理 | 多轮对话、结构化生成、长上下文场景 | ⭐⭐⭐ 中等 |
| Jan | 跨平台桌面应用 | 日常使用与简单对话 | ⭐ 极低 |
| LocalAI | 容器化 OpenAI 替代 | Docker 环境集成 | ⭐⭐ 较低 |
| GPT4All | 轻量桌面聊天应用 | 普通用户的本地聊天需求 | ⭐ 极低 |
| MLX | Apple 官方框架 | Mac 极致优化 | ⭐⭐⭐ 中等 |
vLLM文档:https://docs.vllm.ai/en/stable/getting_started/quickstart/
二、选型必读:工具优劣势深度对比
🔧 Ollama------开发者最爱的"LLM 版 Docker"
核心定位: 以最少的配置成本跑起来。Ollama 把模型管理抽象成了极简的 CLI,一条命令就能完成下载、运行、API 暴露全过程。
优点:
- 体验极致简单 :
ollama pull llama3即可拉取模型,ollama run直接对话,几乎没有学习曲线。 - 内置 OpenAI 兼容 API :原生提供
http://localhost:11434/v1端点,LangChain、Semantic Kernel 等框架开箱即用。 - 跨平台 + Apple Silicon 加速:在 Mac、Windows、Linux 上都能跑,且对 M 系列芯片做了深度优化。
- 生态活跃:GitHub 超 12 万 star,内置模型市场支持 200+ 预量化模型。
缺点:
- 生产级性能不足:学术测评显示,Ollama 在吞吐量和首 token 时延(TTFT)上明显落后于 vLLM 等专用推理引擎。
- 高级功能受限:多 GPU 支持和微调选项比较基础,不适合需要精细调优的场景。
- 模型库局限:主要支持 Ollama 官方模型库,不如直接浏览 Hugging Face 丰富。
💡 一句话总结:如果你是开发者,想快速把 LLM 集成到自己的应用里做原型验证,Ollama 就是最佳答案。但请别把它当生产级服务引擎用。
⚡ llama.cpp------低配设备的"性能魔法师"
核心定位: 一个纯 C/C++ 实现的 LLM 推理引擎,通过量化技术把大模型"压缩"到可以在普通 CPU 上运行的程度。
优点:
- 资源占用极致低:量化后 7B 模型仅需 4GB 内存,树莓派 5 都能跑 Mistral-7B。
- 多后端加速:支持 AVX2/NEON 指令集(CPU 提速 3-5 倍)、CUDA、Metal、OpenCL 等多种加速后端。
- 极高自由度:命令行参数精细可控,可以灵活分配 CPU/GPU 负载,支持 20+ 种模型架构。
- 生态基石地位:GitHub 近 7.5 万 star,Ollama、LM Studio 等工具底层都依赖它。
缺点:
- 纯命令行操作:没有 GUI,需要熟悉 CLI 和编译流程,对非技术用户不友好。
- 上手成本高:从源码编译到模型格式转换,需要一定的技术功底。
- 文档较分散:官方文档偏技术性,很多最佳实践需要从社区摸索。
💡 一句话总结:如果你手上只有老旧设备、树莓派或工控机,llama.cpp 就是你的"救星"。但它的目标是极致性能,不是易用性。
🚀 vLLM------生产环境吞吐王者
核心定位: 专为高并发 LLM 服务设计的企业级推理引擎,由 UC Berkeley 开发,Anyscale、IBM、Databricks 等公司在生产环境使用。
优点:
- 吞吐量惊人:通过独创的 PagedAttention 技术减少 60-80% 显存浪费,相比传统框架吞吐量提升 14-24 倍。
- 连续批处理:动态混合新旧请求,GPU 利用率可达 90%+,不留闲置周期。
- OpenAI 兼容 API:应用代码无需改动即可切换后端。
- 企业级特性:支持张量并行、流水线并行、推测解码和多种量化方案。
缺点:
- 只支持Linux系统
- 显存消耗大:vLLM 本身需要较多的 GPU 显存开销,在边缘设备上部署有压力。
- 不支持苹果M系显卡
- 非交互场景优化:学术研究显示,vLLM 更擅长高吞吐批处理,但在单用户低延迟场景下,吞吐表现反而可能不如 TGI 等竞品。
💡 一句话总结:需要为成百上千用户提供 API 服务?vLLM 是当前工业界的事实标准。个人开发者请绕道。
🎨 LM Studio------非技术用户的"可视化助手"
核心定位: 一款带有精美 GUI 的桌面应用,让你像使用普通软件一样浏览、下载、运行本地 LLM。
优点:
- 零命令行:全部操作通过图形界面完成,非技术人员也能轻松上手。
- 模型发现友好:内置 Hugging Face 模型浏览,清晰展示模型大小、量化级别和性能预估,不用猜哪个 GGUF 文件该下。
- 实时参数调优:对话过程中可以随时调整 temperature、top-p 等参数,立即看到效果。
- 内置 API 服务:提供 OpenAI 兼容的本地 API,可被 LangChain 等框架调用。
缺点:
- 闭源:代码不开放,对需要审计合规的团队是个隐患。
- 资源占用偏高:GUI 本身占用约 500MB 内存,且一次只能运行一个模型。
- 自动化集成弱:纯 GUI 操作很难融入 CI/CD 或自动化脚本。
💡 一句话总结:如果你是产品经理、设计师,或者就想在 Mac 上随意玩玩各种模型,LM Studio 是最舒服的选择。
📦 其他值得关注的工具
- TensorRT-LLM:NVIDIA 官方极致性能引擎,缺点是上手门槛较高,且仅支持 NVIDIA GPU。适合追求极致性能、有专业运维团队且完全基于 NVIDIA 基础设施的大规模生产场景。
- TGI :Hugging Face 开发的生产级服务工具包,在生产环境为 Hugging Chat 和 Inference API 提供后端支撑。重要提醒:TGI 目前已进入维护模式,Hugging Face 官方推荐新项目转向 vLLM 和 SGLang,本地场景则推荐 llama.cpp 或 MLX。如果你的项目已基于 TGI 稳定运行,可以继续使用;如果是新项目,建议优先评估 vLLM 或 SGLang。
- SGLang:综合吞吐量表现属于第一梯队,特别适合多轮对话、复杂推理和长上下文生成任务。
- Jan:跨平台桌面应用,开源且界面简洁,类似 LM Studio 的开源替代版。
- LocalAI:容器优先的设计哲学,通过 Docker 提供 OpenAI 兼容 API,适合与现有容器化基础设施集成。
- GPT4All:轻量桌面聊天应用,主打普通用户日常使用,对硬件要求极低。
- MLX:Apple 官方为 M 系列芯片设计的机器学习框架,学术研究显示其在 Apple Silicon 上持续生成吞吐量最高,但生态成熟度仍有待提升。
三、实战操作指南
🚀 场景一:用 Ollama 快速启动一个本地 API 服务
这是"从零到 ChatGPT"最快的方式。
安装(macOS):
bash
brew install ollama
Windows/Linux 用户请前往 https://ollama.com 下载安装包。
拉取并运行模型:
bash
# 拉取模型(自动下载最新版本)
ollama pull llama4
# 直接对话
ollama run llama4 "用 Python 实现一个快速排序"
# 如果运行`ollama run llama4`将开始交互式对话
# 启动 API 服务(默认后台运行)
ollama serve
通过 API 调用:
bash
curl http://localhost:11434/api/generate -d '{
"model": "llama4",
"prompt": "为什么本地运行 LLM 更安全?",
"stream": false
}'
Ollama 默认暴露 OpenAI 兼容端点 http://localhost:11434/v1,你的 LangChain 或 AutoGen 代码可以直接对接。
这里的参数格式就跟OpenAI的接口一致。
模型管理:
bash
ollama list # 查看已下载模型
ollama show llama4 # 查看模型的参数、格式、尺寸
ollama rm llama4 # 删除模型
可以通过Modelfile自定义模型行为,就像LLM版的Dockerfile:
# Save as Modelfile.codereview
FROM llama4
SYSTEM """
You are an expert code reviewer. Analyze code for bugs, security issues, and performance problems.
Be concise and actionable. Format your response as a numbered list of findings.
"""
PARAMETER temperature 0.2
PARAMETER num_ctx 8192
PARAMETER top_p 0.9
bash
# Create a named model from the Modelfile
ollama create codereview -f Modelfile.codereview
# Run it
ollama run codereview
⚙️ 场景二:在低配设备上通过 llama.cpp 运行模型
即便你手头只有一台老旧笔记本,llama.cpp 也能让它跑起大模型。
编译安装:
bash
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
make -j # CPU 版本,简单粗暴
# 如果有 NVIDIA GPU,启用 CUDA:
make LLAMA_CUDA=1 -j
获取量化模型(GGUF 格式):
bash
# 从 Hugging Face 下载预量化模型
# 以 Qwen2.5-7B 的 Q4_K_M 量化版本为例
huggingface-cli download Qwen/Qwen2.5-7B-Instruct-GGUF qwen2.5-7b-instruct-q4_k_m.gguf \
--local-dir ./models/
运行推理:
bash
# 基础推理
./main -m ./models/qwen2.5-7b-instruct-q4_k_m.gguf \
-p "解释一下量子计算的基本原理" \
-n 256
# 启用 GPU 加速(假设有 NVIDIA 显卡)
./main -m ./models/model.Q4_K_M.gguf \
-ngl 32 \ # 将 32 层加载到 GPU
-p "写一首关于编程的短诗" \
-n 512 \
-t 8 # 使用 8 个 CPU 线程
# 启动一个简易聊天服务器
./server -m ./models/model.Q4_K_M.gguf --host 0.0.0.0 --port 8080
量化等级选择建议:Q2(极致省内存,质量损失大)→ Q4(平衡选择,推荐)→ Q8(质量高,内存占用翻倍)。通常 Q4_K_M 是最佳权衡点。
🏭 场景三:用 vLLM 搭建高并发生产级推理服务
当你需要服务成百上千用户时,vLLM 是最靠谱的选择。
vLLM官方推荐用uv安装,可以参考:https://docs.vllm.ai/en/stable/getting_started/installation/
离线批处理推理:
python
from vllm import LLM, SamplingParams
prompts = [
"Hello, my name is",
"The president of the United States is",
"The capital of France is",
"The future of AI is",
]
sampling_params = SamplingParams(temperature=0.8, top_p=0.95)
llm = LLM(model="facebook/opt-125m")
outputs = llm.generate(prompts, sampling_params)
for output in outputs:
prompt = output.prompt
generated_text = output.outputs[0].text
print(f"Prompt: {prompt!r}, Generated text: {generated_text!r}")
(需要注意llm.generate()函数不会自动应用LLM本身的提示词模版。但是你可以用llm.chat()函数然后传OpenAI格式的参数)
命令行方式启动 OpenAI 兼容 API 服务:
huggingface模型:
bash
vllm serve meta-llama/Llama-4-Scout-17B-16E-Instruct \
--quantization awq \
--max-model-len 8192 \
--port 8000
启动后,你的应用可以直接用 OpenAI SDK 访问本地服务:
python
from openai import OpenAI
client = OpenAI(base_url="http://localhost:8000/v1", api_key="your-api-key")
response = client.chat.completions.create(
model="meta-llama/Llama-2-7b-chat-hf",
messages=[{"role": "user", "content": "你好!"}]
)
print(response.choices[0].message.content)
🖥️ 场景四:通过 LM Studio 零代码体验本地模型
这是最简单的方式,全程不需要敲任何代码。
步骤 1:安装
访问 https://lmstudio.ai,下载对应平台的安装包并安装。
步骤 2:搜索模型
打开 LM Studio,点击左侧的"Search"标签页,在 Hugging Face 模型库中搜索你感兴趣的模型(如 Llama-3.2-3B),LM Studio 会自动显示模型大小和量化选项,一目了然。
步骤 3:下载并加载
选择好量化版本后点击"Download",下载完成后回到"Chat"界面,从下拉菜单选择模型并点击"Load Model"。
步骤 4:开始对话
在聊天框输入文字即可,右侧可以实时调整 temperature、top_p 等参数。
步骤 5:暴露 API 服务
如果需要让其他程序调用这个模型,在 LM Studio 中点击"Local Inference Server"选项卡,启动服务,然后用 OpenAI SDK 指向 http://localhost:1234/v1 即可。
四、选型决策树
根据你的实际需求,这里有一条清晰的决策路径:
开始
│
├─ 你是开发者,想快速集成到自己的应用?
│ └─ ✅ Ollama(最简单,原型首选)
│
├─ 你需要服务大量并发用户(50+ 同时请求)?
│ └─ ✅ vLLM(生产级吞吐之王)
│
└─ 你需要处理多轮对话、结构化输出或复杂推理任务?
│ └─ ✅ SGLang(兼顾性能和灵活性)
│
├─ 你的设备很老旧(树莓派/老旧PC/无独显)?
│ └─ ✅ llama.cpp(极致的资源优化)
│
├─ 你是非技术用户,想直观体验各种模型?
│ └─ ✅ LM Studio 或 Jan
│
├─ 你用 Mac,且追求极致性能?
│ └─ ✅ MLX(Apple 官方优化)
│
└─ 你的项目已经在用 Docker,希望无缝集成?
│ └─ ✅ LocalAI(容器优先)
│
└─ 你的业务完全依赖 NVIDIA GPU 且追求极致吞吐量?
│ └─ ✅ TensorRT‑LLM(但需要专门的工程团队支持)
│
五、性能基准参考
根据 2026 年的公开评测数据(在 A100/H100 上测试 Llama-70B 类模型):
| 引擎 | 吞吐量 (token/s) | 上手难度 | 适用场景 |
|---|---|---|---|
| vLLM | 1000-2000 | 中等 | 高并发生产服务 |
| TensorRT-LLM | 2500-4000+ | 困难 | NVIDIA 极致优化 |
| TGI | 800-1500 | 中等 | 企业级部署 |
| SGLang | 很高 | 中等 | 长文本生成 |
| llama.cpp | 80-100* | 中等 | 通用本地推理 |
| Ollama | 较低 | 极低 | 开发与原型 |
*注:llama.cpp 数据来自 7B 模型在 M2 Ultra 上的测试(CPU/Metal),与 GPU 服务器数据不可直接比较。
⚠️ 重要提醒:吞吐量不是唯一指标。vLLM 在高并发场景下表现最佳,但在单用户低延迟场景中可能不如 TGI。llama.cpp 的吞吐量数字看似较低,但它在 CPU 和边缘设备上的表现无可替代------关键是找准自己的场景。
写在最后
本地运行 LLM 已经从"能不能跑"进化到了"怎么跑更好"。今天的工具生态已经足够成熟,无论你的技术背景如何、硬件条件怎样,都能找到适合自己的解决方案。
不过,一个务实的提醒:本地 8B 参数模型在复杂推理任务上依然无法匹敌 GPT-4o 或 Claude 3.5 Sonnet。如果你的业务依赖顶级的推理能力,云服务仍然不可替代。反之,如果你注重数据隐私、希望控制长期成本、或者需要离线运行能力,本地部署就是当前的最优解。
选择合适的工具,让你的数据留在你的机器上,让 AI 能力为你所用,而不是成为另一笔持续的支出。
