全部文章

本地 LLM 部署指南

使用 Ollama、vLLM、LM Studio 在本地运行大语言模型

目录 55 节

本地 LLM 部署指南

在本地运行大语言模型,保护隐私、降低成本、提升响应速度。

这页适合作为“本地大模型系统部署入口”。真正决定部署体验的,通常不是模型名本身,而是你准备走桌面交互、开发 API、批量推理,还是长期自托管服务。

先按用途选方案

  • 个人桌面体验:Ollama / LM Studio
  • 高性能推理服务:vLLM
  • 轻量本地实验:llama.cpp
  • 想快速接 OpenAI 兼容 API:优先 Ollama 或 vLLM
  • 想少折腾先验证可行性:先上 7B 级别模型

为什么选择本地部署

优势

  • 隐私保护:数据不离开本地设备
  • 成本控制:无 API 调用费用
  • 离线可用:无需网络连接
  • 低延迟:本地推理更快
  • 定制化:可微调模型

劣势

  • 硬件要求:需要较强的 GPU/CPU
  • 模型质量:小模型能力有限
  • 维护成本:需要自己管理

硬件要求

最低配置(7B 模型)

  • CPU:8 核心以上
  • 内存:16GB RAM
  • 存储:50GB 可用空间
  • GPU:可选,但推荐

推荐配置(13B-34B 模型)

  • CPU:16 核心以上
  • 内存:32GB RAM
  • GPU:NVIDIA RTX 3060 12GB / 4060 Ti 16GB
  • 存储:100GB SSD

高端配置(70B+ 模型)

  • CPU:32 核心以上
  • 内存:64GB+ RAM
  • GPU:NVIDIA RTX 4090 24GB / A100 40GB
  • 存储:200GB+ NVMe SSD

Ollama(推荐入门)

安装

# Windows
winget install Ollama.Ollama

# macOS
brew install ollama

# Linux
curl -fsSL https://ollama.com/install.sh | sh

基本使用

# 运行模型
ollama run llama3.2

# 运行中文优化模型
ollama run qwen2.5:7b

# 运行代码模型
ollama run deepseek-coder:6.7b

# 列出已下载模型
ollama list

# 删除模型
ollama rm llama3.2

推荐模型

模型大小用途内存需求
qwen2.5:7b4.7GB通用中文8GB
llama3.2:3b2GB轻量对话4GB
deepseek-coder:6.7b3.8GB代码生成8GB
mistral:7b4.1GB通用英文8GB
phi3:3.8b2.3GB快速推理4GB
qwen2.5:14b9GB高质量中文16GB
codellama:13b7.4GB代码专家16GB

API 使用

# 启动服务(默认端口 11434)
ollama serve

# 测试 API
curl http://localhost:11434/api/generate -d '{
  "model": "qwen2.5:7b",
  "prompt": "你好,介绍一下自己"
}'

集成到 AI 代理

nanobot 配置

{
  "providers": {
    "ollama": {
      "apiKey": "ollama",
      "apiBase": "http://localhost:11434/v1"
    }
  },
  "model": "qwen2.5:7b"
}

OpenClaw 配置

{
  "model": {
    "provider": "openai",
    "apiBase": "http://localhost:11434/v1",
    "apiKey": "ollama",
    "model": "qwen2.5:7b"
  }
}

自定义模型

创建 Modelfile:

FROM qwen2.5:7b

PARAMETER temperature 0.7
PARAMETER top_p 0.9
PARAMETER top_k 40

SYSTEM """
你是一个专业的 Python 编程助手,擅长:
- 代码审查和优化
- Bug 修复
- 最佳实践建议
"""

构建模型:

ollama create python-expert -f Modelfile
ollama run python-expert

vLLM(高性能推理)

安装

# 使用 pip
pip install vllm

# 或使用 Docker
docker pull vllm/vllm-openai:latest

启动服务器

# 基本启动
vllm serve Qwen/Qwen2.5-7B-Instruct

# 指定 GPU
vllm serve Qwen/Qwen2.5-7B-Instruct --gpu-memory-utilization 0.9

# 多 GPU
vllm serve Qwen/Qwen2.5-14B-Instruct --tensor-parallel-size 2

# 量化加速
vllm serve Qwen/Qwen2.5-7B-Instruct --quantization awq

Docker 部署

docker run -d \
  --name vllm \
  --gpus all \
  -p 8000:8000 \
  vllm/vllm-openai:latest \
  --model Qwen/Qwen2.5-7B-Instruct

性能优化

# 启用 PagedAttention
vllm serve model --enable-paged-attention

# 调整批处理大小
vllm serve model --max-num-batched-tokens 8192

# 启用前缀缓存
vllm serve model --enable-prefix-caching

LM Studio(图形界面)

安装

下载:lmstudio.ai

特点

  • 图形化界面,易于使用
  • 内置模型市场
  • 支持 GGUF 格式
  • 本地 API 服务器

使用流程

  1. 打开 LM Studio
  2. 搜索并下载模型(如 Qwen2.5-7B-GGUF)
  3. 加载模型到聊天界面
  4. 或启动本地服务器(端口 1234)

API 集成

{
  "providers": {
    "lmstudio": {
      "apiKey": "lm-studio",
      "apiBase": "http://localhost:1234/v1"
    }
  },
  "model": "qwen2.5-7b-instruct"
}

llama.cpp(轻量级)

编译安装

git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
make

# 启用 CUDA(NVIDIA GPU)
make LLAMA_CUDA=1

# 启用 Metal(Apple Silicon)
make LLAMA_METAL=1

下载模型

从 Hugging Face 下载 GGUF 格式模型:

# 使用 huggingface-cli
huggingface-cli download Qwen/Qwen2.5-7B-Instruct-GGUF \
  qwen2.5-7b-instruct-q4_k_m.gguf

运行模型

# 交互模式
./llama-cli -m models/qwen2.5-7b-instruct-q4_k_m.gguf -p "你好"

# 服务器模式
./llama-server -m models/qwen2.5-7b-instruct-q4_k_m.gguf \
  --host 0.0.0.0 --port 8080

量化模型

# 转换为 GGUF
python convert-hf-to-gguf.py models/Qwen2.5-7B-Instruct

# 量化
./llama-quantize models/qwen2.5-7b-f16.gguf \
  models/qwen2.5-7b-q4_k_m.gguf Q4_K_M

模型量化

量化级别对比

量化大小质量速度推荐场景
F16100%最佳评测基准
Q8_050%优秀高质量需求
Q5_K_M35%良好平衡选择
Q4_K_M25%可用很快日常使用
Q3_K_M20%较差极快资源受限

使用建议

  • 16GB 内存:Q4_K_M 量化的 7B 模型
  • 32GB 内存:Q5_K_M 量化的 13B 模型
  • 64GB 内存:Q4_K_M 量化的 34B 模型

性能对比

推理速度(tokens/s)

工具7B 模型13B 模型备注
Ollama30-5015-25易用性最佳
vLLM80-12040-60性能最强
LM Studio25-4012-20图形界面
llama.cpp40-7020-35轻量级

测试环境:RTX 4090 24GB

实战案例

案例 1:本地代码助手

配置

# 下载代码模型
ollama pull deepseek-coder:6.7b

# 启动服务
ollama serve

集成到 VS Code: 安装 Continue 插件,配置:

{
  "models": [
    {
      "title": "DeepSeek Coder",
      "provider": "ollama",
      "model": "deepseek-coder:6.7b"
    }
  ]
}

案例 2:私有知识库问答

架构

文档 → 向量化(Embedding)→ 向量数据库(Chroma)
                                    ↓
用户提问 → 检索相关文档 → 本地 LLM 生成答案

实现

from langchain.vectorstores import Chroma
from langchain.embeddings import OllamaEmbeddings
from langchain.llms import Ollama

# 初始化
embeddings = OllamaEmbeddings(model="qwen2.5:7b")
vectorstore = Chroma(embedding_function=embeddings)
llm = Ollama(model="qwen2.5:7b")

# 添加文档
vectorstore.add_texts(["文档内容..."])

# 查询
docs = vectorstore.similarity_search("问题")
answer = llm(f"根据以下内容回答:{docs}\n\n问题:...")

案例 3:离线翻译服务

# 使用专门的翻译模型
ollama pull aya:8b

# 创建翻译助手
ollama create translator -f - <<EOF
FROM aya:8b
SYSTEM "你是专业翻译,将输入翻译为中文"
EOF

# 使用
echo "Hello, world!" | ollama run translator

故障排除

内存不足

# 减少上下文长度
ollama run qwen2.5:7b --ctx-size 2048

# 使用更小的模型
ollama run qwen2.5:3b

GPU 未被使用

# 检查 CUDA
nvidia-smi

# 强制使用 GPU
CUDA_VISIBLE_DEVICES=0 ollama serve

推理速度慢

# 启用 Flash Attention
vllm serve model --enable-flash-attention

# 增加批处理
vllm serve model --max-num-seqs 256

模型推荐

中文对话

  1. Qwen2.5-7B:阿里通义千问,中文能力强
  2. GLM-4-9B:智谱 AI,对话流畅
  3. Yi-6B:零一万物,性能均衡

代码生成

  1. DeepSeek-Coder-6.7B:代码专家
  2. CodeLlama-13B:Meta 代码模型
  3. StarCoder2-7B:多语言支持

轻量级

  1. Phi-3-3.8B:微软小模型,性能出色
  2. Llama3.2-3B:Meta 轻量版
  3. Gemma-2B:Google 小模型

推荐部署顺序

建议按这个顺序推进:

  1. 先确认硬件和磁盘预算
  2. 先跑一个小模型
  3. 再决定是否升级到更大模型
  4. 再接 UI、API、RAG 或代理工具
  5. 最后再做并发、监控和长期服务化

常见问题

跑得动但不好用

很多时候不是“本地模型不行”,而是:

  • 模型太小
  • 量化过重
  • 任务不适合本地小模型
  • 提示词和工作流没有调整

显存不够怎么办

先考虑:

  • 换更小模型
  • 用更高量化版本
  • 优先 CPU / 混合推理接受更慢速度
  • 不要一开始就追 70B 级别

本地部署是不是一定比云 API 省钱

不一定。如果你只是偶尔用、机器本身不强、还要花很多时间维护,云 API 反而更省心。

风险提醒

  • 模型和素材会吃掉大量磁盘,目录管理要提前规划
  • 本地服务若暴露到局域网或公网,要补鉴权和访问限制
  • 先验证场景价值,再逐步追加硬件投入

延伸阅读

参考链接

阅读建议
  • - 先读标题和摘要,再结合目录决定从哪个章节开始精读。
  • - 看到具体命令、配置或步骤时,尽量在自己的环境里同步验证。
  • - 如果你只是快速查资料,可先看目录和相关文档,再决定是否深入全文。
适合谁看
  • - 希望把零散经验整理成长期可复用工作流的人
  • - 正在使用 AI 工具、Agent 或自动化工作流的人
  • - 希望阅读时顺手建立自己的操作清单或收藏体系的人
执行前检查
  • - 先浏览标题、摘要和目录,带着问题阅读会更高效
  • - 确认模型供应商、API Key、CLI 工具链与本地资源是否已准备好
  • - 如果页面里提到相关文档,尽量一起打开对照,效果通常更完整
同类内容
← 上一篇本地 AI 模型部署