本地部署大模型:Ollama + Open WebUI 搭建私有 AI 助手
不花一分钱 API 费用,不用担心数据泄露,在自己电脑上跑一个媲美 ChatGPT 的 AI 助手。
公司的代码和文档不能发给外部 AI 服务?API 费用太高?网络环境不允许访问海外 API?这些都是我当初研究本地部署的原因。好消息是,2026 年的开源大模型已经足够好用,8B 参数的模型在消费级显卡上就能流畅运行,效果远超两年前的 GPT-3.5。
说实话,本地跑大模型最大的门槛不是技术,是心理预期。如果你期望本地模型达到 Claude 或 GPT-4o 的水平,那肯定会失望。但如果你只是需要一个「足够好」的代码补全、文档问答、翻译工具,本地模型完全够用,而且速度可能比 API 还快。
1. 硬件要求:你的电脑能跑多大的模型?
| 配置 | 可用模型 | 体验 |
|---|---|---|
| 8GB 显存(RTX 3060 等) | 7-8B 参数模型(Q4 量化) | 流畅,约 30-50 token/s |
| 12GB 显存(RTX 4070 等) | 13-14B 参数模型(Q4 量化) | 流畅,效果明显更好 |
| 24GB 显存(RTX 4090 等) | 30-34B 参数模型(Q4 量化) | 接近 GPT-3.5 水平 |
| Apple Silicon 16GB+ | 7-14B 参数模型 | 统一内存架构,体验不错 |
没有独立显卡?别担心,Ollama 也支持纯 CPU 推理,只是速度会慢很多(约 5-10 token/s)。对于不着急的批处理任务、离线翻译等场景,完全够用。Apple Silicon 的 M1/M2/M3 芯片因为统一内存架构,CPU 推理速度也相当可观。
2. 安装 Ollama:一行命令搞定
安装
# macOS / Linux
curl -fsSL https://ollama.com/install.sh | sh
# Windows
# 直接从 https://ollama.com 下载安装包
# 验证安装
ollama --version下载并运行模型
# 下载并运行 Llama 3.1 8B(推荐入门)
ollama run llama3.1
# 下载 Qwen 2.5 14B(中文效果更好)
ollama run qwen2.5:14b
# 代码专用模型
ollama run deepseek-coder-v2:16b
# 查看已下载的模型
ollama list
# 删除不需要的模型
ollama rm llama3.1通过 API 调用
Ollama 默认在 localhost:11434 提供 OpenAI 兼容的 API,意味着你可以用任何 OpenAI SDK 来调用本地模型:
import OpenAI from 'openai'
const client = new OpenAI({
baseURL: 'http://localhost:11434/v1',
apiKey: 'ollama', // Ollama 不需要真实 API key
})
const response = await client.chat.completions.create({
model: 'qwen2.5:14b',
messages: [
{ role: 'user', content: '用 TypeScript 写一个防抖函数' },
],
})
console.log(response.choices[0].message.content)3. 推荐模型:不同场景选不同模型
通用对话
Llama 3.1 8B — Meta 出品,各语言表现均衡,社区生态最好。
Qwen 2.5 14B — 阿里出品,中文理解能力最强,推荐中文场景首选。
代码生成
DeepSeek Coder V2 16B — 代码补全和生成的专项冠军,支持 300+ 种编程语言。
CodeLlama 13B — Meta 基于 Llama 微调的代码模型,轻量够用。
小而快(嵌入式/低资源)
Phi-3 Mini 3.8B — 微软出品,3.8B 参数但效果逼近 7B 模型,适合资源有限的环境。
Gemma 2 2B — Google 出品,2B 参数的小模型,适合简单任务。
4. Open WebUI:给本地模型加上好看的界面
命令行聊天总归不方便。Open WebUI 是一个开源的 ChatGPT 风格 Web 界面,支持连接 Ollama,功能非常完善。
用 Docker 一键部署
# 确保 Ollama 已经在运行
# 然后启动 Open WebUI
docker run -d \
--name open-webui \
-p 3000:8080 \
-e OLLAMA_BASE_URL=http://host.docker.internal:11434 \
-v open-webui:/app/backend/data \
--restart always \
ghcr.io/open-webui/open-webui:main
# 打开浏览器访问 http://localhost:3000
# 首次使用需要注册一个管理员账号Open WebUI 的实用功能
- 多模型切换:在对话中随时切换不同的本地模型
- 文档上传:上传 PDF/文档,模型基于文档内容回答(内置 RAG)
- 对话历史:完整的聊天记录管理,支持搜索
- 自定义系统提示:为不同场景设置不同的 System Prompt
- 多用户支持:支持团队内部署,每人独立的对话空间
- API 代理:同时连接本地 Ollama 和云端 API(OpenAI 等)
5. 实际使用场景
场景 1:敏感代码审查
公司的核心业务代码不能发送到外部服务。用本地部署的 DeepSeek Coder 做代码审查和重构建议,数据完全不出局域网。
场景 2:内部文档问答
配合 Open WebUI 的 RAG 功能,上传公司的技术文档、API 文档、运维手册,新同事入职可以直接向 AI 提问,不用翻文档海。
场景 3:离线开发环境
出差、地铁上、没有网络的时候,本地模型依然可用。我在飞机上用 Ollama + Qwen 写了一整个 composable,落地后直接提交。
场景 4:学习和实验
想了解 AI 应用开发但不想花钱?本地模型是最好的实验平台。RAG、Agent、Function Calling 等功能 Ollama 都支持,零成本练习。
6. 性能调优小贴士
使用量化模型:Q4_K_M 量化是性能和质量的最佳平衡点,显存占用减半但效果损失很小。Ollama 默认就是这个量化等级。
调整上下文长度:默认的 context window 越大越占显存。如果不需要很长的对话,可以在 Modelfile 中设置 num_ctx 2048 来节省资源。
GPU 层数分配:通过 OLLAMA_NUM_GPU 环境变量控制有多少层放在 GPU 上。显存不够的话可以只放一部分,其余用 CPU 计算。
相关阅读
部署好本地模型后,可以用 RAG 技术让它理解你的文档,参考 RAG 技术入门。想了解如何更好地与 AI 沟通,推荐 Prompt Engineering 实用指南。