云 API 还是本地部署?
对比云 API 与自建硬件的总拥有成本。根据预算、隐私需求和性能要求,做出正确的选择。
总拥有成本对比
自建硬件 vs 云 API — 多久回本?
按预算选择硬件
从迷你 PC 到企业工作站 — 选择你的档位
Detailed Specs
Detailed Specs
Detailed Specs
Detailed Specs
模型兼容性矩阵
哪些开源模型可以在什么硬件上跑?
| 模型 | 入门级 | 主流 | Halo | 工作站 |
|---|---|---|---|---|
| Phi-4 Mini | ||||
| Gemma 4 E4B | ||||
| Llama 4 Scout 8B | ||||
| Mistral Small 4 | ||||
| Qwen 3.5 27B | ||||
| DeepSeek R1 Distill 32B | ||||
| Gemma 4 31B Dense | ||||
| Llama 4 Scout | ||||
| Qwen 3.5 397B | ||||
| Llama 4 Maverick | ||||
| DeepSeek V4 R1 | ||||
| GLM-5 |
质量对比指与前沿云模型(GPT-4o、Claude 3.7 Sonnet)在推理和编程任务上的对比。实际表现因量化级别和硬件配置而异。
你是否适合本地部署?
匹配你的身份到正确的路径
本地 AI 软件栈
LLM 工具
Install & Usage
curl -fsSL https://ollama.com/install.sh | sh # macOS/Linux
winget install Ollama.Ollama # Windows
# Docker 替代方案:
docker pull ollama/ollama启动服务,然后通过 CLI 或 REST API(http://localhost:11434)拉取并运行模型。
ollama pull llama3.1:8b
ollama run llama3.1:8b
ollama serve # 启动 API 服务
ollama list # 显示已安装的模型模型存储:/usr/share/ollama/.ollama (Linux)、~/.ollama (macOS/Windows)。设置 OLLAMA_HOST=0.0.0.0:11434 可网络访问。OLLAMA_MAX_VRAM 限制 GPU 显存占用;OLLAMA_NUM_PARALLEL 控制并发请求数。
Install & Usage
# 从 https://lmstudio.ai/ 下载安装包
# macOS: brew install --cask lm-studio
# Windows: winget install LMStudio.LMStudio打开 GUI,在应用内从 HuggingFace 浏览模型,下载后即可聊天,或启动 :1234 端口上的兼容 OpenAI 的本地服务器。
lms server start # CLI 服务器(需先通过应用安装 lms)
lms ls # 列出已下载的模型
lms boot # 快速启动 GUI设置推理端口(默认 1234)。可按模型选择 GPU offload 层数。模型存储于 ~/.cache/lm-studio/models。跨平台支持 macOS、Windows、Linux。
Install & Usage
# 从 https://lemonadeai.com/ 下载
# Windows 安装包;Linux 请直接使用 ROCm
pip install lemonade-sdk启动 Lemonade GUI,选择模型包(如 Ryzen AIoptimized),点击运行。在 :8000 端口提供兼容 OpenAI 的服务器。
lemonade-server serve # 启动 API
lemonade pull llama3.1-8b-ryzenai
lemonade devices # 列出可用加速器可选择 NPU / GPU / iGPU 计算目标。在 GUI 中配置上下文长度和 batch size。与 Ryzen AI Max+ 395 halo 硬件搭配最佳。
Install & Usage
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp && make GGML_CUDA=1 # Linux+NVIDIA
# 或预编译版:brew install llama.cpp # macOS
# Windows:从 GitHub 下载 release zip编译二进制文件,下载 GGUF 模型,然后用 ./llama-cli -m model.gguf 运行。提供服务器模式,在 :8080 端口提供兼容 OpenAI 的 API。
./llama-cli -m model.gguf -p "Hello" -n 512
./llama-server -m model.gguf --port 8080 --n-gpu-layers 99
./llama-bench -m model.gguf用 --n-gpu-layers 控制 CPU/GPU 分配。--flash-attn 提升内存效率。--ctx-size 设置上下文长度。-ngl 99 完全 offload 到 GPU。编译选项:GGML_CUDA、GGML_ROCM、GGML_METAL、GGML_VULKAN。
Install & Usage
pip install vllm # 需要 CUDA 12.1+ 和 Python 3.9+
# 或用 Docker:
docker pull vllm/vllm-openai:latest用 --model 启动兼容 OpenAI 的服务器,然后向 /v1/chat/completions 发送请求。支持多 GPU 张量并行。
vllm serve meta-llama/Llama-3.1-8B-Instruct --port 8000
python -m vllm.entrypoints.openai.api_server --model Qwen/Qwen3-32B --tensor-parallel-size 2
curl http://localhost:8000/v1/models--tensor-parallel-size N 多 GPU 并行。--quantization awq/gptq。--max-model-len 设置上下文。--gpu-memory-utilization 0.9。--enable-lora 提供 LoRA 服务。
Install & Usage
docker run -d -p 3000:8080 \
-e OPENAI_API_BASE_URL=http://host.docker.internal:11434/v1 \
-v open-webui:/app/backend/data \
--name open-webui ghcr.io/open-webui/open-webui:main浏览器打开 http://localhost:3000,注册管理员账号,即可与已注册到 Ollama 或通过 OpenAI API 的任何模型对话。
docker logs -f open-webui
docker restart open-webui
# 非 Docker 安装:pip install open-webui && open-webuiWEBUI_AUTH=true 启用用户账户。配置 RAG 需 embedding 模型 + ChromaDB。Docker→主机访问用 OLLAMA_BASE_URL=http://host.docker.internal:11434。
部署指南
按硬件档位选择适合的部署方案
# 1. 拉取并运行 Ollama
docker run -d \
--gpus all \
--name ollama \
-v ollama:/root/.ollama \
-p 11434:11434 \
ollama/ollama
# 2. 拉取适合 12GB 显存的模型
docker exec -it ollama ollama pull llama3.1:8b
# 3.(可选)加装 Open WebUI 提供聊天界面
docker run -d -p 3000:8080 \
-e OPENAI_API_BASE_URL=http://host.docker.internal:11434/v1 \
-v open-webui:/app/backend/data \
--name open-webui \
ghcr.io/open-webui/open-webui:main# 1. 安装 NVIDIA 驱动 (Ubuntu/Debian)
sudo apt update && sudo apt install -y nvidia-driver-550
sudo reboot
# 2. 安装 CUDA Toolkit 12.x
wget https://developer.download.nvidia.com/compute/cuda/12.5.0/local_installers/cuda_12.5.0_555.85_linux.run
sudo sh cuda_12.5.0_555.85_linux.run
# 3. 安装 Ollama
curl -fsSL https://ollama.com/install.sh | sh
# 4. 拉取并运行模型
ollama pull llama3.1:8b
ollama run llama3.1:8b入门级(RTX 4060 12GB)优化: • 使用 Q4_K_M 量化 — 8B 占 6GB,13B 占 9GB • 关闭浏览器/GUI 应用释放显存(显示需 1-2GB) • 设置 --ctx-size 4096 限制上下文内存 • 13B 模型:用 --n-gpu-layers 28(部分 offload) • 如需完全 GPU offload 13B,可考虑 Q3_K_M • NVMe SSD 必备 — HDD 加载模型需数分钟 • 最低 32GB RAM,CPU offload 场景建议 64GB
性能基准测试
不同硬件档位和模型下的实际 tokens/秒
| 模型 | 量化 | 入门 (RTX 4060) | 主流 (RTX 4090) | Halo (RyAI Max+ 395) | 工作站 (2×4090) |
|---|---|---|---|---|---|
| Llama 3.1 8B | Q4_K_M | 45 tok/s | 120 tok/s | 85 tok/s | 200 tok/s |
| Qwen3 32B | Q4_K_M | — | 35 tok/s | 28 tok/s | 70 tok/s |
| Llama 3.3 70B | Q4_K_M | — | 8 tok/s (offload) | 15 tok/s | 30 tok/s |
| DeepSeek R1 671B | Q4 MoE | — | — | 5 tok/s | 12 tok/s |
| Qwen3 235B | Q4 MoE | — | — | 18 tok/s | 35 tok/s |
量化影响:质量 vs 速度
量化级别之间的权衡(基于 Llama 3.3 70B,RTX 4090)
| Level | VRAM | Speed | Quality |
|---|---|---|---|
| FP16 (16-bit) | 140 GB | N/A(无法装入) | 100% 基准 |
| Q8 (8-bit) | 70 GB | N/A(单卡无法装入) | 约 FP16 的 99% |
| Q6 (6-bit) | 53 GB | N/A(多 GPU) | 约 FP16 的 98% |
| Q5_K_M (5-bit) | 44 GB | 12 tok/s(offload) | 约 FP16 的 97% |
| Q4_K_M (4-bit) | 40 GB | 8 tok/s(部分 offload) | 约 FP16 的 95% |
| Q3_K_M (3-bit) | 31 GB | 18 tok/s | 约 FP16 的 90% |
| Q2_K (2-bit) | 23 GB | 25 tok/s | 约 FP16 的 80% |
基准基于 llama.cpp 在 2026 年 6 月驱动下测量。实际速度因提示长度、batch size 和系统配置有 ±20% 浮动。'—' 表示无法运行或不实际(<1 tok/s)。
安全与远程访问
通过适当的鉴权和加密安全地暴露你的本地 AI
安全隧道(零配置)
无需开端口即可远程访问本地 AI 的最简方式
curl -fsSL https://tailscale.com/install.sh | shtailscale up # 通过浏览器认证
# 你的机器现在拥有 100.x.x.x IP,可从其他设备访问curl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64 -o /usr/local/bin/cloudflared && chmod +x /usr/local/bin/cloudflaredcloudflared tunnel login # 认证
cloudflared tunnel create my-ai
cloudflared tunnel route dns ai.yourdomain.com my-ai
cloudflared tunnel run my-ai带 HTTPS 的反向代理
在单域名上以 TLS 暴露多个 AI 服务
# /etc/nginx/sites-available/ai.conf
server {
listen 443 ssl http2;
server_name ai.yourdomain.com;
ssl_certificate /etc/letsencrypt/live/ai.yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/ai.yourdomain.com/privkey.pem;
# Ollama API
location /api/ {
proxy_pass http://127.0.0.1:11434;
proxy_set_header Host $host;
proxy_buffering off; # 流式响应必备
}
# Open WebUI
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
}
# 基础鉴权
auth_basic 'Restricted';
auth_basic_user_file /etc/nginx/.htpasswd;
}# 获取免费 SSL 证书
sudo certbot --nginx -d ai.yourdomain.com
# 自动续期:
sudo certbot renew --dry-run防火墙规则
锁定你的 AI 服务器以防止未授权访问
# 仅允许 SSH、HTTP、HTTPS 和 Tailscale
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 11434/tcp # 仅在已有反向代理 + 鉴权时
sudo ufw enable多用户访问控制
安全地与团队共享本地 AI
docker run -d -p 3000:8080 -e WEBUI_AUTH=true -e OPENAI_API_BASE_URL=http://host.docker.internal:11434/v1 -v open-webui:/app/backend/data --name open-webui ghcr.io/open-webui/open-webui:main设置环境变量:ENABLE_LDAP=true, LDAP_SERVER_HOST=ldap.yourcorp.com, LDAP_BIND_DN=..., LDAP_BIND_PASSWORD=...常见问题排查
本地 AI 最常见问题的解决方案
1. 验证 nvidia-smi 可用:nvidia-smi
2. 安装 CUDA 12.x:https://developer.nvidia.com/cuda-downloads
3. 设置 LD_LIBRARY_PATH=/usr/local/cuda/lib64
4. Docker:使用 --gpus all 或 nvidia-container-toolkit1. 验证:rocminfo | grep gfx
2. Ryzen AI Max+ 395 需 ROCm 6.1+
3. 设置 HSA_OVERRIDE_GFX_VERSION=11.0.0
4. Docker:使用 rocm/pytorch:latest 镜像1. 使用更低量化:ollama run llama3.1:8b-q4_0
2. 减少上下文:--ctx-size 4096
3. 关闭其他 GPU 应用(浏览器、显示)
4. 使用 CPU offload:--n-gpu-layers 201. 检查 GPU 利用率:nvidia-smi -l 1
2. 若 GPU 空闲:模型未上 GPU。用 --n-gpu-layers 99
3. 若 VRAM 已满但慢:尝试更小 batch 或上下文
4. CPU 推理:用 AVX2/AVX512 编译的 llama.cpp1. 减少 prompt 处理:更小上下文
2. 使用 flash attention:--flash-attn
3. 预热:curl http://localhost:11434/api/generate -d '{"model":"llama3.1","prompt":"warmup"}'1. 检查可用模型:ollama list
2. 重新拉取:ollama pull llama3.1:8b
3. HuggingFace:设置 HF_HOME 或用 --cache-dir
4. 中国用户:设置 HF_ENDPOINT=https://hf-mirror.com1. 校验 checksum:ollama show llama3.1:8b
2. 重新下载:ollama rm llama3.1:8b && ollama pull llama3.1:8b
3. 检查磁盘空间:每个模型 4-40 GB1. 检查 Ollama 是否运行:systemctl status ollama
2. 设置 OLLAMA_HOST=0.0.0.0:11434 开启网络访问
3. 检查防火墙:sudo ufw allow 11434
4. Docker:使用 -p 11434:114341. 在 Nginx 中禁用代理缓冲:proxy_buffering off
2. 使用 HTTP/2:listen 443 ssl http2
3. 检查网络延迟:ping + traceroute
4. Cloudflare:禁用 /api/ 路径缓存- GPU 驱动已更新(nvidia-smi 显示 CUDA 12.x)
- 模型完全加载到 GPU(nvidia-smi 显示 VRAM 占用 >90%)
- 使用 Q4_K_M 量化(速度/质量良好平衡)
- 启用 flash attention(llama.cpp 用 --flash-attn)
- 上下文大小合适(聊天 4096-8192,长文档 32768)
- 无其他 GPU 进程运行(关闭浏览器、游戏)
- 电源足够(RTX 4090 需 850W+)
- 散热充足(负载下 GPU 温度 <80°C)
- 存储使用 NVMe SSD(不要用 SATA/HDD 加载模型)
- llama.cpp/vLLM/Ollama 为最新版本
模型管理
下载、切换和组织你的本地模型库
下载模型
获取开源模型的多种来源
# 列出可用模型
ollama list
# 拉取模型(自动选择最佳量化)
ollama pull llama3.1:8b
ollama pull qwen3:32b
ollama pull deepseek-r1:671b
# 拉取特定量化版本
ollama pull llama3.1:8b-q4_0
ollama pull llama3.1:8b-q8_0# 安装 huggingface-cli
pip install huggingface_hub
# 下载 GGUF 模型
huggingface-cli download bartowski/Llama-3.3-70B-Instruct-GGUF Q4_K_M/Llama-3.3-70B-Instruct-Q4_K_M.gguf --local-dir ./models
# 带鉴权下载(gated 模型)
huggingface-cli login
huggingface-cli download meta-llama/Llama-3.3-70B-Instruct# 设置镜像端点
export HF_ENDPOINT=https://hf-mirror.com
# 然后正常使用 huggingface-cli
huggingface-cli download Qwen/Qwen3-32B-Instruct-GGUFpip install modelscope
modelscope download --model Qwen/Qwen3-32B-Instruct-GGUF存储管理
模型文件很大 — 提前规划磁盘使用
- Ollama: /usr/share/ollama/.ollama/models (Linux) 或 ~/.ollama/models
- HuggingFace: ~/.cache/huggingface/hub
- llama.cpp: 用 -m 参数指定的位置
- vLLM: ~/.cache/huggingface/hub(使用 HF 缓存)
# 检查模型存储占用
du -sh ~/.ollama/models/
du -sh ~/.cache/huggingface/
# 删除未使用的 Ollama 模型
ollama rm old-model-name
# 清理 HuggingFace 缓存
huggingface-cli delete-cache
# 将模型存储迁移到更大硬盘
export OLLAMA_MODELS=/mnt/nvme/ollama/models在模型间切换
运行多个模型,在 VRAM 中换入换出
# 并发运行多个模型
ollama run llama3.1:8b &
ollama run qwen3:32b &
# 每个都占用 VRAM — 用 nvidia-smi 监控
# API:每个请求指定模型
curl http://localhost:11434/api/chat -d {"model":"llama3.1","messages":[...]}
curl http://localhost:11434/api/chat -d {"model":"qwen3:32b","messages":[...]}# vLLM:每个服务器实例运行一个模型
python -m vllm.entrypoints.openai.api_server --model Qwen3-32B --port 8000 &
python -m vllm.entrypoints.openai.api_server --model Llama-3.3-70B --port 8001 &
# 按端口路由 — 用 Nginx 做负载均衡硬件价格和模型能力数据截止 2026 年 6 月。实际表现因工作负载、量化级别和系统配置而异。云 API 成本基于典型使用模式的估算。