alookdlna投屏t
17.07MB · 2026-04-04
诸神缄默不语-个人技术博文与视频目录
本地部署LLM的优势:
本地部署LLM的劣势:
本文主要考虑的是在你自己的电脑上运行LLM推理服务,但是下文会介绍的llama.cpp、vllm等工具事实上在企业级生产服务中也很常用。功能不仅局限于个人消费级使用。
另外本文介绍的是从“别人发布的开源大模型”到“在本地部署起LLM推理服务并进行调用”的这个过程。
文中除了用GUI界面的LM Studio和Jan之外都主要通过命令行来部署服务。
事实上还有很多像cherry studio、ChatBot乃至于OpenClaw之类的工具,可以用来将你在本地部署的LLM服务(当然也可以调用云端的大模型API)来放到一个对话框中,让你能够通过图形界面(比如一个像ChatGPT官网那样的)来与LLM对话,甚至访问你的知识库、文件系统,帮你完成工作。
类似这样的更多任务请待后续博文分解。
本系列不会更新微调、预训练、强化学习相关内容,因为 (1) 我觉得需要这些内容的读者应该不太算是小白了吧。(2) 问就是无脑建议选llama-factory
(本篇也会持续更新的)
@[toc]
| 工具 | 一句话定位 | 最佳场景 | 上手难度 |
|---|---|---|---|
| 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文档:docs.vllm.ai/en/stable/g…
核心定位: 以最少的配置成本跑起来。Ollama 把模型管理抽象成了极简的 CLI,一条命令就能完成下载、运行、API 暴露全过程。
优点:
ollama pull llama3 即可拉取模型,ollama run 直接对话,几乎没有学习曲线。 端点,LangChain、Semantic Kernel 等框架开箱即用。缺点:
核心定位: 一个纯 C/C++ 实现的 LLM 推理引擎,通过量化技术把大模型“压缩”到可以在普通 CPU 上运行的程度。
优点:
缺点:
核心定位: 专为高并发 LLM 服务设计的企业级推理引擎,由 UC Berkeley 开发,Anyscale、IBM、Databricks 等公司在生产环境使用。
优点:
缺点:
核心定位: 一款带有精美 GUI 的桌面应用,让你像使用普通软件一样浏览、下载、运行本地 LLM。
优点:
缺点:
这是“从零到 ChatGPT”最快的方式。
安装(macOS):
brew install ollama
Windows/Linux 用户请前往 ollama.com 下载安装包。
拉取并运行模型:
# 拉取模型(自动下载最新版本)
ollama pull llama4
# 直接对话
ollama run llama4 "用 Python 实现一个快速排序"
# 如果运行`ollama run llama4`将开始交互式对话
# 启动 API 服务(默认后台运行)
ollama serve
通过 API 调用:
curl -d '{
"model": "llama4",
"prompt": "为什么本地运行 LLM 更安全?",
"stream": false
}'
Ollama 默认暴露 OpenAI 兼容端点 ,你的 LangChain 或 AutoGen 代码可以直接对接。
这里的参数格式就跟OpenAI的接口一致。
模型管理:
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
# Create a named model from the Modelfile
ollama create codereview -f Modelfile.codereview
# Run it
ollama run codereview
即便你手头只有一台老旧笔记本,llama.cpp 也能让它跑起大模型。
编译安装:
git clone
cd llama.cpp
make -j # CPU 版本,简单粗暴
# 如果有 NVIDIA GPU,启用 CUDA:
make LLAMA_CUDA=1 -j
获取量化模型(GGUF 格式):
# 从 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/
运行推理:
# 基础推理
./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官方推荐用uv安装,可以参考:docs.vllm.ai/en/stable/g…
离线批处理推理:
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.ch@t()函数然后传OpenAI格式的参数)
命令行方式启动 OpenAI 兼容 API 服务: huggingface模型:
vllm serve meta-llama/Llama-4-Scout-17B-16E-Instruct
--quantization awq
--max-model-len 8192
--port 8000
启动后,你的应用可以直接用 OpenAI SDK 访问本地服务:
from openai import OpenAI
client = OpenAI(base_url="http://localhost:8000/v1", api_key="your-api-key")
response = client.ch@t.completions.create(
model="meta-llama/Llama-2-7b-ch@t-hf",
messages=[{"role": "user", "content": "你好!"}]
)
print(response.choices[0].message.content)
这是最简单的方式,全程不需要敲任何代码。
步骤 1:安装 访问 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 指向 即可。
根据你的实际需求,这里有一条清晰的决策路径:
开始
│
├─ 你是开发者,想快速集成到自己的应用?
│ └─ 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 服务器数据不可直接比较。
数据来源:EVAL #001: The Great LLM Inference Engine Showdown — vLLM vs TGI vs TensorRT-LLM vs SGLang vs llama.cpp vs Ollama • Buttondown
本地运行 LLM 已经从“能不能跑”进化到了“怎么跑更好”。今天的工具生态已经足够成熟,无论你的技术背景如何、硬件条件怎样,都能找到适合自己的解决方案。
不过,一个务实的提醒:本地 8B 参数模型在复杂推理任务上依然无法匹敌 GPT-4o 或 Claude 3.5 Sonnet。如果你的业务依赖顶级的推理能力,云服务仍然不可替代。反之,如果你注重数据隐私、希望控制长期成本、或者需要离线运行能力,本地部署就是当前的最优解。
选择合适的工具,让你的数据留在你的机器上,让 AI 能力为你所用,而不是成为另一笔持续的支出。