大语言模型 (LLM) 本地部署实战
本篇将介绍如何在 Linux 系统上部署本地大语言模型,涵盖 Ollama 和 llama.cpp 两种主流方案,并提供 Arch、Fedora、Debian/Ubuntu 等发行版的详细安装指南。
为什么选择本地部署?
| 特性 | 本地部署 | 云端 API |
|---|---|---|
| 隐私安全 | ✅ 数据完全本地 | ❌ 数据上传服务器 |
| 使用成本 | ✅ 一次性硬件投入 | ❌ 按token计费 |
| 网络要求 | ✅ 离线可用 | ❌ 需要稳定网络 |
| 响应速度 | ✅ 取决于本地硬件 | ⚠️ 受网络延迟影响 |
| 模型质量 | ⚠️ 受硬件限制 | ✅ 可访问最强模型 |
本地部署适合:隐私敏感场景、频繁使用、预算有限、网络受限等场景。
方案一:Ollama - 最简单的部署方案
Ollama 是目前最友好的本地 LLM 部署工具,提供一键安装、自动模型管理、RESTful API 等特性。
安装方法
所有 Linux 发行版都可以使用官方安装脚本:
curl -fsSL https://ollama.com/install.sh | sh一键安装脚本会使用系统包管理器安装预编译包,适合快速体验。生产环境建议使用发行版专用方法。
Arch 用户可以通过 AUR 安装 Ollama:
# 使用 yay(推荐)
yay -S ollama
# 或使用 paru
paru -S ollama
# 手动从 AUR 安装
git clone https://aur.archlinux.org/ollama.git
cd ollama
makepkg -si安装完成后启动并启用服务:
sudo systemctl enable --now ollamaFedora 官方提供了 RPM 包,直接使用 dnf 安装:
# 安装 Ollama
sudo dnf install ollama
# 启动服务
sudo systemctl enable --now ollama如果仓库中没有 Ollama,可以添加官方 COPR 仓库:
sudo dnf copr enable atim/ollama
sudo dnf install ollamaDebian 和 Ubuntu 系列可以使用官方 apt 仓库:
# 1. 添加 Ollama GPG 密钥
curl -fsSL https://ollama.com/download/gpg-pubkey | sudo gpg --dearmor -o /usr/share/keyrings/ollama-archive-keyring.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/ollama-archive-keyring.gpg] https://ollama.com/download stable main" | \
sudo tee /etc/apt/sources.list.d/ollama.list
# 2. 更新并安装
sudo apt update
sudo apt install ollama对于 Ubuntu 用户,也可以下载 .deb 包直接安装:
wget https://ollama.com/download/ollama-linux-amd64.deb
sudo dpkg -i ollama-linux-amd64.deb首次运行与测试
安装完成后,运行一个模型来测试:
# 运行 DeepSeek R1 7B(推荐)
ollama run deepseek-r1:7b
# 或运行 Llama 3.2
ollama run llama3.2
# 交互式对话中输入 /help 查看命令Ollama 常用命令
# 列出已下载的模型
ollama list
# 查看模型信息
ollama show deepseek-r1:7b
# 删除模型
ollama rm deepseek-r1:7b
# 拉取最新模型
ollama pull deepseek-r1:7b
# 查看 Ollama 服务状态
sudo systemctl status ollama
# 查看 API 日志
journalctl -u ollama -f模型选择建议
根据你的硬件选择合适的模型:
| 显存 | 推荐模型 | 参数量 | 用途 |
|---|---|---|---|
| 无显卡(纯CPU) | phi3, qwen2.5<3b>3b> | 3B | 轻量对话、代码补全 |
| 6GB - 8GB | llama3.2<3b>3b>, qwen2.5<7b>7b> | 3B - 7B | 日常对话、写作辅助 |
| 12GB - 16GB | deepseek-r1<7b>7b>, llama3.1<8b>8b> | 7B - 8B | 复杂推理、代码生成 |
| 24GB+ | deepseek-r1<14b>14b>, llama3.1<70b>70b> | 14B+ | 专业任务、高精度需求 |
模型名称后的数字代表参数量,数字越大通常越智能,但也需要更多资源。:7b 表示 70 亿参数版本。
使用 Ollama API
Ollama 默认在 http://localhost:11434 提供 API 服务:
# 测试 API
curl http://localhost:11434/api/generate -d '{
"model": "deepseek-r1:7b",
"prompt": "为什么 Linux 是服务器首选?"
}'
# 流式响应
curl http://localhost:11434/api/chat -d '{
"model": "deepseek-r1:7b",
"messages": [{"role": "user", "content": "解释 systemd 的优势"}],
"stream": true
}'安装 WebUI
推荐使用 Open WebUI 作为 Ollama 的图形界面:
# 使用 Docker(推荐)
docker run -d -p 3000:8080 \
--add-host=host.docker.internal:host-gateway \
-v open-webui:/app/backend/data \
--name open-webui \
ghcr.io/open-webui/open-webui:main访问 http://localhost:3000 即可使用 Web 界面。
方案二:llama.cpp - 极客的极限性能
llama.cpp 是 Georgi Gerganov 开发的纯 C++ LLM 推理引擎,以极致的优化和兼容性著称。
安装方法
# 从 AUR 安装(推荐)
yay -S llama.cpp-git
# 或安装带 CUDA 支持的版本(NVIDIA 显卡)
yay -S llama.cpp-cuda-git
# 或安装带 ROCm 支持的版本(AMD 显卡)
yay -S llama.cpp-hip-git# 从源码编译
sudo dnf install git cmake gcc-c++ make
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
cmake -B build
cmake --build build -j$(nproc)
sudo cmake --install build
# 如果有 NVIDIA 显卡,安装 CUDA 支持后:
cmake -B build -DLLAMA_CUBLAS=on
cmake --build build -j$(nproc)# 安装依赖
sudo apt install git build-essential cmake
# 克隆仓库
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
# 编译(基础版本)
cmake -B build
cmake --build build -j$(nproc)
# NVIDIA 显卡用户启用 CUDA 加速
cmake -B build -DLLAMA_CUBLAS=on
cmake --build build -j$(nproc)
# AMD 显卡用户启用 ROCm 加速
cmake -B build -DLLAMA_HIPBLAS=on
cmake --build build -j$(nproc)下载 GGUF 格式模型
llama.cpp 使用 GGUF (GPT-Generated Unified Format) 模型:
# 创建模型目录
mkdir -p ~/models/llm
cd ~/models/llm
# 使用 huggingface-cli 下载(推荐)
pip install huggingface-cli
huggingface-cli download \
microsoft/Phi-3-mini-4k-instruct-gguf \
Phi-3-mini-4k-instruct-q4.gguf \
--local-dir .
# 或直接 wget 下载模型
wget https://huggingface.co/microsoft/Phi-3-mini-4k-instruct-gguf/resolve/main/Phi-3-mini-4k-instruct-q4.gguf运行推理
# 交互模式
./build/bin/llama-cli \
-m Phi-3-mini-4k-instruct-q4.gguf \
-p "解释 Linux 的一切都是文件的哲学" \
-n 512 \
-ngl 99 # 使用 GPU 层数(NVIDIA/AMD)
# 聊天模式
./build/bin/llama-cli \
-m Phi-3-mini-4k-instruct-q4.gguf \
--color \
-i \
-p "User: 你好,介绍一下 Linux\nAssistant:"
# 启动服务器
./build/bin/llama-server \
-m Phi-3-mini-4k-instruct-q4.gguf \
--port 8080 \
-ngl 99性能优化建议
- 量化选择:Q4_K_M 是质量和速度的最佳平衡点
- GPU 分层:使用
-ngl 99将所有层卸载到 GPU - 批处理:增加
-b 512提高吞吐量 - 线程数:设置
-t $(nproc)使用全部 CPU 核心
对比与选择
Ollama vs llama.cpp
| 特性 | Ollama | llama.cpp |
|---|---|---|
| 安装难度 | ⭐ 极简单 | ⭐⭐⭐ 需编译 |
| 用户体验 | ⭐⭐⭐⭐⭐ 开箱即用 | ⭐⭐ 命令行为主 |
| 性能优化 | ⭐⭐⭐ 自动优化 | ⭐⭐⭐⭐⭐ 极致调优 |
| 模型格式 | 自定义 GGUF | 标准 GGUF |
| API 支持 | ⭐⭐⭐⭐⭐ OpenAI 兼容 | ⭐⭐⭐ 简单 REST |
| 适合场景 | 日常使用、快速上手 | 极限性能、定制需求 |
新手推荐:从 Ollama 开始,简单够用。 进阶用户:使用 llama.cpp 深度定制,榨干硬件性能。
系统要求与优化
最低配置
| 组件 | 最低要求 | 推荐配置 |
|---|---|---|
| CPU | 4 核心线程 | 8+ 核心,支持 AVX2 |
| 内存 | 8GB | 16GB+ |
| 显卡 | 无 | NVIDIA RTX 3060+ / AMD RX 6000+ |
| 存储 | 20GB 可用空间 | 50GB+ SSD |
系统优化
# NVIDIA 用户安装 NVIDIA 驱动
sudo pacman -S nvidia
# AMD 用户安装 AMDGPU 驱动
sudo pacman -S xf86-video-amdgpu
# 设置 GPU 性能模式(NVIDIA)
sudo nvidia-smi -pm 1
sudo nvidia-smi -pl 250 # 设置功耗限制(W)# NVIDIA 用户安装驱动
sudo dnf install nvidia-driver
# AMD 用户安装驱动
sudo dnf install mesa-dri-drivers
# 设置 GPU 性能模式(NVIDIA)
sudo nvidia-smi -pm 1
sudo nvidia-smi -pl 250# Ubuntu 用户安装 NVIDIA 驱动
sudo apt install nvidia-driver-535
# Debian 用户安装 NVIDIA 驱动
sudo apt install nvidia-driver
# AMD 用户安装驱动
sudo apt install mesa-vulkan-drivers
# 设置 GPU 性能模式(NVIDIA)
sudo nvidia-smi -pm 1
sudo nvidia-smi -pl 250通用优化(所有发行版):
# 增加文件描述符限制
echo "* soft nofile 65536" | sudo tee -a /etc/security/limits.conf
echo "* hard nofile 65536" | sudo tee -a /etc/security/limits.conf常见问题
Q: Ollama 服务启动失败?
A: 检查日志 journalctl -u ollama -n 50,常见原因包括端口被占用、权限问题。
Q: 模型运行很慢?
A: 确认 GPU 加速已启用,使用 ollama show 查看模型配置。
Q: 内存不足?
A: 使用更小的模型或更高量化的版本(如 Q2、Q3)。
Q: 如何卸载?
# Ollama
yay -R ollama
# llama.cpp
yay -R llama.cpp-git # 或对应的变体# Ollama
sudo dnf remove ollama
# llama.cpp(源码编译)
sudo rm -rf /usr/local/bin/llama-*# Ollama
sudo apt remove ollama
# llama.cpp(源码编译)
sudo rm -rf /usr/local/bin/llama-*下一步
- 安装 Open WebUI 获得更好的交互体验
- 尝试不同的模型找到最适合你的
- 集成到你的日常工作流(代码助手、写作工具)
- 探索 RAG(检索增强生成)构建知识库