【学习笔记】本地化部署:Ollama 与 LM Studio 的轻量级方案(18/35)

前两篇我们聊的都是「企业级部署」——vLLM、SGLang、TensorRT-LLM,动辄需要 H100 集群。
这一篇我们换个视角,聊本地化部署——也就是在自己笔记本、台式机、小型服务器上跑大模型。
为什么这件事在 2026 年仍然重要?
✓ 数据隐私:金融、医疗、法律团队不允许数据出域
✓ 离线可用:飞机上、地铁里、内网环境也要能用
✓ 零成本试错:开发期不想花 API 费用
✓ 端侧应用:手机、PC 本地集成 AI
✓ IDE 编程助手:Cursor/Copilot 替代的隐私版
下面这些问题你一定碰过:
-
想在 4090 上跑个本地模型试试,但 vLLM 装起来太重?
-
Mac M3 能跑大模型吗?性能怎么样?
-
想给团队搭个内网 ChatGPT,怎么搞?
-
怎么让 VS Code 用本地模型当 Copilot?
-
llama.cpp、Ollama、LM Studio 到底是什么关系?
读完本文你将能:
-
区分 4 大本地化方案的差异和适用场景
-
用 Ollama / LM Studio / llama.cpp 跑起本地模型
-
配置 VS Code / Cursor 用本地模型当 Copilot
-
在 Mac M 系列上充分利用 MLX 跑大模型
-
给小团队搭一个内网 LLM 服务
我们开始。
一、本地化部署的四大方案
1.1 总览
|
方案 |
类型 |
适合用户 |
当下地位 |
| Ollama |
CLI + REST API |
开发者 |
个人最流行
⭐ |
| LM Studio |
桌面 GUI |
非技术 / 体验 |
易用首选 |
| llama.cpp |
C++ 库 / CLI |
底层定制 |
所有方案的底层 |
| MLX |
Apple 框架 |
Mac M 用户 |
Apple 平台主流 |
它们之间的关系其实是这样的:
┌─────────────────────────────────────────────────┐
│ GUI 应用层 │
│ ┌─────────────┐ ┌─────────────┐ │
│ │ LM Studio │ │ Jan / Msty │ ... │
│ └─────────────┘ └─────────────┘ │
├─────────────────────────────────────────────────┤
│ CLI + API 层 │
│ ┌─────────────┐ ┌─────────────┐ │
│ │ Ollama │ │ llamafile │ │
│ └─────────────┘ └─────────────┘ │
├─────────────────────────────────────────────────┤
│ 推理引擎层(核心) │
│ ┌─────────────────────┐ ┌─────────────────┐ │
│ │ llama.cpp │ │ MLX │ │
│ │ (跨平台 C++) │ │ (Apple Silicon) │ │
│ └─────────────────────┘ └─────────────────┘ │
└─────────────────────────────────────────────────┘
关键认知:
-
llama.cpp 是底层引擎——大多数本地工具的核心
-
Ollama / LM Studio 是上层封装——让 llama.cpp 更易用
-
MLX 是 Apple 自家的并行计算框架——Mac 上能比 llama.cpp 快 30-50%
1.2 硬件门槛
本地化部署的硬件远比想象中宽容:
|
硬件 |
能跑什么 |
| MacBook Air M2 8GB |
Qwen3-1.7B、Phi-4-mini |
| MacBook Pro M3 16GB |
Qwen3-7B INT4、Llama-3-8B Q4 |
| MacBook Pro M3 Max 64GB |
Qwen3-32B INT4、Llama-3-70B Q4_K_M |
| iPhone 15 Pro 8GB |
Qwen3-1.7B Q4 |
| PC RTX 4090 24GB |
Qwen3-32B INT4、Llama-3-70B INT3 |
| PC RTX 5090 32GB |
Qwen3-32B FP16、Qwen-MoE-A3B |
| PC 5950X + 64GB 内存(无 GPU) |
Llama-3-8B Q4(CPU 推理) |
结论:本地跑大模型不需要多贵的设备。一台 M3 Mac 或 4090 主机已经够用。
二、Ollama:个人本地化首选
2.1 Ollama 是什么
Ollama 的设计哲学是**「Docker for LLMs」**——一切照搬 Docker 的体验:
ollama pull llama3.2 # 下载(类似 docker pull)
ollama run llama3.2 # 运行(类似 docker run)
ollama list # 列出模型
ollama serve # 后台服务
为什么这么火:
-
一行命令安装
-
自动管理模型权重(统一存储 / 删除)
-
内置 OpenAI 兼容 API
-
跨 Mac / Linux / Windows
-
完全免费开源
2.2 实战:5 分钟上手
# Mac / Linux 安装
curl -fsSL https://ollama.com/install.sh | sh
# Windows 用安装包:https://ollama.com/download/windows
# 拉个模型来跑
ollama run qwen3:7b-instruct
第一次跑会自动下载模型(约 4-5 GB),之后直接进入对话:
>>> 你好
你好!有什么可以帮你的吗?
>>> /bye
退出
2.3 API 调用(OpenAI 兼容)
Ollama 后台服务默认监听 http://localhost:11434:
# 启动后台服务
ollama serve
# 用 curl 调用
curl http://localhost:11434/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3:7b-instruct",
"messages": [{"role": "user", "content": "你好"}],
"stream": false
}'
OpenAI SDK 直接接:
from openai import OpenAI
client = OpenAI(
base_url="http://localhost:11434/v1",
api_key="ollama" # 任意字符串都行
)
response = client.chat.completions.create(
model="qwen3:7b-instruct",
messages=[{"role": "user", "content": "解释 KV Cache"}]
)
2.4 内置模型库
Ollama 维护了一个模型仓库(类似 Docker Hub),常用模型一键拉取:
ollama pull qwen3:7b-instruct # Qwen3 7B
ollama pull qwen3:32b-instruct-q4_K_M # Qwen3 32B(4bit 量化)
ollama pull llama3.3:70b # Llama 3.3 70B
ollama pull deepseek-r1:8b # DeepSeek R1 蒸馏版
ollama pull gemma3:7b # Google Gemma 3
ollama pull phi4:14b # 微软 Phi-4
ollama pull qwen3-coder:14b # 代码模型
ollama pull nomic-embed-text # Embedding 模型
ollama list
# NAME SIZE MODIFIED
# qwen3:7b-instruct 4.7 GB 2 days ago
# deepseek-r1:8b 4.9 GB 3 days ago
# ...
所有模型都是 GGUF 格式 + 多种量化——Ollama 帮你选好了"性价比最优"的量化级别。
2.5 自定义 Modelfile
类似 Dockerfile,可以基于现有模型定制:
# Modelfile
FROM qwen3:7b-instruct
# 修改参数
PARAMETER temperature 0.3
PARAMETER top_p 0.9
PARAMETER num_ctx 8192
# 自定义 system prompt
SYSTEM """
你是一名资深 Python 工程师。
回答问题时严格按照 Python 最佳实践。
代码必须有类型注解。
"""
# 加 LoRA 适配器
ADAPTER ./my-lora.gguf
构建并运行:
ollama create my-python-helper -f Modelfile
ollama run my-python-helper
2.6 高级:Multi-Modal 与 Tool Use
Ollama 0.4+ 支持多模态模型:
ollama run llava:13b
>>> 这张图里有什么?/image.jpg
Tool Use(Function Calling):
response = client.chat.completions.create(
model="qwen3:7b-instruct",
messages=[...],
tools=[{
"type": "function",
"function": {
"name": "get_weather",
"parameters": {...}
}
}]
)
2.7 Ollama 性能基线
实测 Apple M3 Pro(18GB 内存)上 Ollama 性能:
|
模型 |
量化 |
显存占用 |
速度 (tok/s) |
|
Llama-3.2-3B |
Q4_K_M |
1.9 GB |
65 |
|
Qwen3-7B |
Q4_K_M |
4.3 GB |
45 |
|
Llama-3.1-8B |
Q4_K_M |
4.7 GB |
42 |
|
Qwen3-14B |
Q4_K_M |
8.2 GB |
22 |
|
Qwen3-32B |
Q4_K_M |
18 GB |
8
(极限) |
单笔记本可以跑 32B 模型——这是 2026 年的本地化能力。
三、LM Studio:桌面 GUI 友好
3.1 LM Studio 适合谁
如果你符合下列任何一条,LM Studio 比 Ollama 更适合:
-
不太想用命令行
-
想要可视化界面(聊天框、参数调节)
-
想直接浏览 / 下载 HuggingFace 模型
-
想给非技术同事推荐工具
3.2 实战
-
下载安装:https://lmstudio.ai/ —— Mac / Windows / Linux 都有
-
搜索模型:左侧 "Discover" tab,搜 "Qwen3" 或 "Llama-3",选合适量化版本(推荐 Q4_K_M)
-
下载:自动从 HuggingFace 拉 GGUF 文件
-
聊天:点 "Chat" tab,加载模型,开聊
-
API 服务:点 "Local Server" tab,启动 OpenAI 兼容 API(默认端口 1234)
3.3 LM Studio 的优势
|
优势 |
详情 |
|
易上手 |
完全 GUI,不写一行代码 |
|
模型浏览 |
直接搜 HF,看下载量、点赞 |
|
参数调节 |
滑块调节 temperature 等 |
|
多模型对比 |
同时加载多个模型对比 |
|
内置 RAG |
直接拖文档作为知识库 |
3.4 LM Studio 的劣势
-
闭源(Ollama 完全开源)
-
启动比 Ollama 慢
-
不能轻松脚本化
-
模型管理不如 Ollama 优雅
四、llama.cpp:所有方案的底层
4.1 为什么要懂 llama.cpp
Ollama 和 LM Studio 底层都用 llama.cpp。如果你想极致优化、深度定制,必须懂这一层。
llama.cpp 的核心特性:
-
纯 C++ 实现:无依赖,跨平台
-
支持各种硬件:CPU / NVIDIA / AMD / Apple Silicon / Intel
-
K-Quants 量化体系:从 Q2_K 到 Q8_0 全谱
-
GGUF 格式:单文件包含权重 + tokenizer + 配置
-
极致优化:手写 SIMD / Metal / CUDA kernel
4.2 K-Quants 量化体系
llama.cpp 的 K-Quants 是端侧部署的事实标准:
|
量化 |
平均比特 |
显存占用 (7B) |
效果 |
推荐 |
|
F16 |
16 |
14 GB |
基线 |
通用 |
|
Q8_0 |
8.5 |
7.5 GB |
几乎无损 |
中高端 |
|
Q6_K |
6.6 |
5.8 GB |
极小损失 |
平衡 |
| Q5_K_M |
5.7 |
5.1 GB |
小损失 |
推荐 |
| Q4_K_M |
4.85 |
4.4 GB |
甜蜜点 | 首选
⭐ |
|
Q4_K_S |
4.6 |
4.1 GB |
小损失 |
内存紧张 |
|
Q3_K_M |
3.9 |
3.5 GB |
中等损失 |
极限 |
|
Q2_K |
2.6 |
2.7 GB |
较大损失 |
试验 |
Q4_K_M 是端侧大模型部署的事实标准——精度损失约 1-2%,显存省 4×。
4.3 实战:直接用 llama.cpp
# 编译(Mac,使用 Metal 加速)
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
make GGML_METAL=1
# 下载 GGUF 模型(从 HF 或 Ollama 缓存复制)
# 例如:qwen3-7b-instruct-q4_k_m.gguf
# 跑推理
./llama-cli \
-m qwen3-7b-instruct-q4_k_m.gguf \
-p "解释一下 KV Cache" \
-n 200 \
--gpu-layers 99 \
-c 8192
关键参数:
-
--gpu-layers 99:把多少层放 GPU(全放就是 99 / -1) -
-c 8192:上下文长度 -
-t 8:CPU 线程数
4.4 llama.cpp 启动 OpenAI 兼容 server
./llama-server \
-m qwen3-7b-instruct-q4_k_m.gguf \
--port 8080 \
--gpu-layers 99 \
-c 8192 \
--host 0.0.0.0
调用:
curl http://localhost:8080/v1/chat/completions ...
五、MLX:Apple Silicon 的「秘密武器」
5.1 MLX 是什么
MLX 是 Apple 在 2023 年底开源的机器学习框架,专为 Apple Silicon(M1/M2/M3/M4) 优化。
它对大模型部署的意义:
-
比 llama.cpp 在 Apple 平台快 30-50%
-
内置统一内存模型(CPU + GPU 共享)
-
支持 4-bit 量化(精度比 Q4_K_M 略好)
-
Python 接口,开发友好
实测对比(M3 Max 64GB 上跑 Qwen3-32B Q4):
|
框架 |
速度 (tok/s) |
|
llama.cpp Metal |
22 |
| MLX | 34
⭐ |
|
Ollama |
21 |
M 系列 Mac 用户应该首选 MLX。
5.2 实战
# 安装
pip install mlx-lm
# 跑模型(自动下载 4-bit 量化版)
mlx_lm.generate \
--model mlx-community/Qwen3-32B-Instruct-4bit \
--prompt "你好,介绍一下你自己" \
--max-tokens 200
# OpenAI 兼容 server
mlx_lm.server \
--model mlx-community/Qwen3-32B-Instruct-4bit \
--port 8000
MLX 模型库:HuggingFace 的 mlx-community 组织提供大量 MLX 优化版本。
5.3 MLX 的工程优势
-
统一内存:M 系列芯片 CPU 和 GPU 共享同一块内存,省去 PCIe 复制
-
Metal 后端:直接调用 Apple Metal API
-
Python 友好:写代码体验和 PyTorch 类似
-
MLX-LM 一键部署:和 Ollama 体验类似
六、实战:3 个典型本地化场景
6.1 场景 1:配置 VS Code / Cursor 用本地模型
目标:用 Qwen3-Coder 替代 GitHub Copilot,零成本 + 数据不出本地。
步骤:(1) 启动 Ollama 服务:
ollama pull qwen3-coder:14b
ollama serve
-
VS Code 装 Continue 插件:https://continue.dev
-
配置
~/.continue/config.json:
{
"models":[{
"title":"Local Qwen3 Coder",
"provider":"ollama",
"model":"qwen3-coder:14b",
"apiBase":"http://localhost:11434"
}],
"tabAutocompleteModel":{
"title":"Local Tab Autocomplete",
"provider":"ollama",
"model":"qwen3-coder:1.5b"
}
}
-
4. 重启 VS Code,按
Ctrl+L打开聊天,按Tab触发自动补全。
性价比:
-
替代 Copilot (月和20/月)
-
数据完全本地
-
单次硬件投入 ~$2K(4090 主机或 M3 Mac)
-
一年回本
6.2 场景 2:搭一个小团队内网 LLM 服务
目标:10 人小团队用本地 LLM 替代 ChatGPT,数据合规、零月费。
架构:
团队员工 ──> 内网 Web UI (Open WebUI)
↓
Ollama 服务 (本地服务器)
↓
4090 / A100 GPU
步骤:
-
1服务器准备(一台带 4090 / A100 的 Linux 机器):
# 安装 Ollama
curl -fsSL https://ollama.com/install.sh | sh
# 拉模型
ollama pull qwen3:32b-instruct-q4_K_M
-
2开 systemd 服务(让 Ollama 监听 0.0.0.0):
# /etc/systemd/system/ollama.service
sudo systemctl edit ollama.service
# 添加环境变量
[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"
sudo systemctl restart ollama
-
3. 部署 Open WebUI(开源 ChatGPT 风格界面):
docker run -d -p 3000:8080 \
-e OLLAMA_BASE_URL=http://localhost:11434 \
-v open-webui:/app/backend/data \
--name open-webui \
ghcr.io/open-webui/open-webui:main
-
4. 访问 http://serverIP:3000,注册账号,开始对话。
特性:
-
支持多用户(带账号管理)
-
内置 RAG(上传文档作为知识库)
-
多模型切换
-
完全开源免费
6.3 场景 3:手机端跑大模型
目标:在 iPhone / Android 上跑大模型,完全离线。
方案:
iOS:使用 MLX Swift
-
App 推荐:MLC Chat(开源)、Private LLM(付费但体验好)
-
推荐模型:Qwen3-1.7B、Phi-4-mini
-
速度:iPhone 15 Pro 跑 1.7B 模型约 20-30 tokens/s
Android:使用 llama.cpp Android 端口
-
App 推荐:MLC Chat、Maid
-
同样推荐 1.7B-3B 规模模型
-
高端 Android 旗舰(骁龙 8 Gen 4)速度类似 iPhone
七、选型决策与避坑
7.1 选型决策树
你的角色 / 需求是什么?
│
├─ 个人开发者,命令行熟悉
│ └─ Ollama ⭐
│
├─ 非技术用户,想要桌面 App
│ └─ LM Studio
│
├─ 极致性能 + 定制(懂底层)
│ └─ llama.cpp 原生
│
├─ Mac M 系列用户,追求性能
│ └─ MLX(mlx-lm 命令行)
│
├─ 团队内网部署
│ └─ Ollama + Open WebUI
│
└─ 手机 / 端侧
└─ MLC Chat / llama.cpp Android
7.2 5 大常见坑
坑 1:选错量化级别
症状:模型跑起来,但效果差/卡。
对策:
-
首选 Q4_K_M——精度/速度的甜蜜点
-
内存够 → Q5_K_M 或 Q8_0
-
极限省内存 → Q3_K_M(不要再低了)
坑 2:上下文太长
症状:跑着跑着突然卡 / OOM。
原因:KV Cache 占用太大。
对策:
# Ollama
OLLAMA_NUM_CTX=4096 ollama serve
# llama.cpp
./llama-server -c 4096 ...
不要默认设 32K,先 4K 跑起来再说。
坑 3:CPU 模式忘了启用 GPU
症状:明明有 4090,速度才 5 tokens/s。
对策(llama.cpp):
./llama-server -m model.gguf --gpu-layers 99
^^ 必须设置!
Ollama 通常自动检测,但有时需要:
OLLAMA_GPU=1 ollama serve
坑 4:模型选错语言
症状:跑 Llama 模型,中文回答语法错乱。
对策:
-
中文场景优先:Qwen3 系列、DeepSeek、GLM
-
英文场景:Llama、Phi
-
代码场景:Qwen3-Coder、DeepSeek-Coder
坑 5:拿生产 API 当本地替代
症状:本地模型在某些复杂任务上效果远不如 Claude。
残酷的事实:
-
本地 7B/13B 模型 ≠ Claude / GPT-5
-
本地模型适合:通用对话、简单代码、文档总结
-
本地模型不适合:复杂推理、专业知识问答、多步 Agent
正确认知:本地模型是 API 的补充,不是替代。
八、扩展话题与下一篇预告
8.1 还有哪些值得关注
|
工具 |
特点 |
| Jan |
类似 LM Studio 的开源桌面 App |
| GPT4All |
跨平台开源,含 RAG |
| Msty |
优雅的对话界面 |
| Open WebUI |
Ollama 的官方推荐 Web UI |
| AnythingLLM |
内置文档 RAG 的桌面 App |
| llamafile |
单文件可执行的极致便携方案 |
8.2 性能再榨
如果想从本地硬件再榨性能:
-
vLLM 本地模式:装 vLLM 在本地,性能比 Ollama 高 30-50%
-
TensorRT-LLM Personal:N 卡用户的极致性能(编译麻烦)
-
MLX 微调:直接在 Mac 上微调小模型
8.3 端侧大模型的未来
2026 年端侧大模型的趋势:
-
iPhone 16 Pro / 17 系列:原生大模型 SDK,3-5B 模型流畅
-
Copilot+ PC:Windows 高通 X Elite 笔记本,40 TOPS NPU
-
小模型革命:Phi-5、Qwen3-Tiny 等小模型能力快速接近大模型
👉 详见 系列第 33 篇:端侧大模型。
8.4 下一篇预告
-
第 19 篇:OpenAI 兼容 API 服务化 —— 我们前面反复提到 OpenAI 兼容 API,这一篇会深入讲它的设计、扩展、与多家框架的差异。如果你要做一个 LLM 中台或 Gateway,这一篇必读。
之后是分布式推理(第 20 篇),部署服务化篇就完整收官。
九、结语:让 AI 真正"私有化"
读完本文你应该明白:
-
Ollama 是个人本地化首选——Docker for LLMs 的体验
-
LM Studio 适合非技术用户——纯 GUI 体验
-
llama.cpp 是所有方案的底层——懂它能极致优化
-
MLX 是 Mac 用户的秘密武器——比 llama.cpp 快 30-50%
-
Q4_K_M 是端侧量化的事实标准——精度/速度甜蜜点
-
本地模型 ≠ Claude/GPT——是补充不是替代
参考文献:
更多推荐

所有评论(0)